diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 20:34:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 20:34:10 +0000 |
commit | e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc (patch) | |
tree | 68cb5ef9081156392f1dd62a00c6ccc1451b93df /epan/dissectors/asn1/h235 | |
parent | Initial commit. (diff) | |
download | wireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.tar.xz wireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.zip |
Adding upstream version 4.2.2.upstream/4.2.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'epan/dissectors/asn1/h235')
-rw-r--r-- | epan/dissectors/asn1/h235/CMakeLists.txt | 44 | ||||
-rw-r--r-- | epan/dissectors/asn1/h235/H235-SECURITY-MESSAGES.asn | 354 | ||||
-rw-r--r-- | epan/dissectors/asn1/h235/H235-SRTP.asn | 58 | ||||
-rw-r--r-- | epan/dissectors/asn1/h235/h235.cnf | 85 | ||||
-rw-r--r-- | epan/dissectors/asn1/h235/packet-h235-template.c | 132 | ||||
-rw-r--r-- | epan/dissectors/asn1/h235/packet-h235-template.h | 18 |
6 files changed, 691 insertions, 0 deletions
diff --git a/epan/dissectors/asn1/h235/CMakeLists.txt b/epan/dissectors/asn1/h235/CMakeLists.txt new file mode 100644 index 00000000..ec467698 --- /dev/null +++ b/epan/dissectors/asn1/h235/CMakeLists.txt @@ -0,0 +1,44 @@ +# CMakeLists.txt +# +# Wireshark - Network traffic analyzer +# By Gerald Combs <gerald@wireshark.org> +# Copyright 1998 Gerald Combs +# +# SPDX-License-Identifier: GPL-2.0-or-later +# + +set( PROTOCOL_NAME h235 ) + +set( PROTO_OPT ) + +set( EXPORT_FILES + ${PROTOCOL_NAME}-exp.cnf +) + +set( EXT_ASN_FILE_LIST +) + +set( ASN_FILE_LIST + H235-SECURITY-MESSAGES.asn + H235-SRTP.asn +) + +set( EXTRA_DIST + ${ASN_FILE_LIST} + packet-${PROTOCOL_NAME}-template.c + packet-${PROTOCOL_NAME}-template.h + ${PROTOCOL_NAME}.cnf +) + +set( SRC_FILES + ${EXTRA_DIST} + ${EXT_ASN_FILE_LIST} +) + +set( A2W_FLAGS ) + +set( EXTRA_CNF + "${CMAKE_CURRENT_BINARY_DIR}/../h225/h225-exp.cnf" +) + +ASN2WRS() diff --git a/epan/dissectors/asn1/h235/H235-SECURITY-MESSAGES.asn b/epan/dissectors/asn1/h235/H235-SECURITY-MESSAGES.asn new file mode 100644 index 00000000..bd88c6d0 --- /dev/null +++ b/epan/dissectors/asn1/h235/H235-SECURITY-MESSAGES.asn @@ -0,0 +1,354 @@ +-- H235-SECURITY-MESSAGES.asn +-- +-- Taken from ITU ASN.1 database +-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h235.0/2005/H235-SECURITY-MESSAGES.asn +-- + +-- Module H235-SECURITY-MESSAGES (H.235.0:09/2005) +H235-SECURITY-MESSAGES DEFINITIONS AUTOMATIC TAGS ::= +BEGIN + +-- EXPORTS All +ChallengeString ::= OCTET STRING(SIZE (8..128)) + +TimeStamp ::= INTEGER(1..4294967295) -- seconds since 00:00 + + +-- 1/1/1970 UTC +RandomVal ::= INTEGER -- 32-bit Integer + +Password ::= BMPString(SIZE (1..128)) + +Identifier ::= BMPString(SIZE (1..128)) + +KeyMaterial ::= BIT STRING(SIZE (1..2048)) + +NonStandardParameter ::= SEQUENCE { + nonStandardIdentifier OBJECT IDENTIFIER, + data OCTET STRING +} + +-- if local octet representations of these bit strings are used they shall +-- utilize standard Network Octet ordering (e.g., Big Endian) +DHset ::= SEQUENCE { + halfkey BIT STRING(SIZE (0..2048)), -- = g^x mod n + modSize BIT STRING(SIZE (0..2048)), -- n + generator BIT STRING(SIZE (0..2048)), -- g + ... +} + +ECpoint ::= + SEQUENCE -- uncompressed (x, y) affine coordinate representation of + + -- an elliptic curve point + { + x BIT STRING(SIZE (0..511)) OPTIONAL, + y BIT STRING(SIZE (0..511)) OPTIONAL, + ... +} + +ECKASDH ::= + CHOICE -- parameters for elliptic curve key agreement scheme Diffie-Hellman + { + eckasdhp + SEQUENCE-- parameters for elliptic curves of prime field-- {public-key + ECpoint, -- This field contains representation of -- + -- the ECKAS-DHp public key value. This field contains the + -- initiator's ECKAS-DHp public key value (aP) when this + -- information element is sent from originator to receiver. This + -- field contains the responder's ECKAS-DHp public key value (bP) + -- when this information element is sent back from receiver to + -- originator. + modulus + BIT STRING + (SIZE (0.. + 511)), -- This field contains -- + -- representation of the ECKAS-DHp public modulus value (p). + base + ECpoint, -- This field contains representation of the -- + -- ECKAS-DHp public base (P). + weierstrassA + BIT STRING + (SIZE (0.. + 511)), -- This field contains -- + -- representation of the ECKAS-DHp Weierstrass coefficient (a). + weierstrassB + BIT STRING + (SIZE (0.. + 511))-- This field contains -- + -- representation of the ECKAS-DHp Weierstrass coefficient (b). + }, + eckasdh2 + SEQUENCE-- parameters for elliptic curves of characteristic 2 -- {public-key + + ECpoint, -- This field contains representation of -- + -- the ECKAS-DH2 public key value. + -- This field contains the initiator's ECKAS-DH2 public key value + -- (aP) when this information element is sent from originator to + -- receiver. This field contains the responder's ECKAS-DH2 public + -- key value (bP) when this information element is sent back from + -- receiver to originator. + fieldSize + + BIT STRING + (SIZE (0.. + 511)), -- This field contains -- + -- representation of the ECKAS-DH2 field size value (m). + base + + ECpoint, -- This field contains representation of the -- + -- ECKAS-DH2 public base (P). + weierstrassA + + BIT STRING + (SIZE (0.. + 511)), -- This field contains -- + -- representation of the ECKAS-DH2 Weierstrass coefficient (a). + weierstrassB + + BIT STRING + (SIZE (0.. + 511))-- This field contains -- + -- representation of the ECKAS-DH2 Weierstrass coefficient (b). + }, + ... +} + +ECGDSASignature ::= + SEQUENCE -- parameters for elliptic curve digital signature + + -- algorithm + { + r BIT STRING(SIZE (0..511)), -- This field contains the + + -- representation of the r component of the ECGDSA digital + -- signature. + s BIT STRING(SIZE (0..511))-- This field contains the -- + -- representation of the s component of the ECGDSA digital + -- signature. +} + +TypedCertificate ::= SEQUENCE { + type OBJECT IDENTIFIER, + certificate OCTET STRING, + ... +} + +AuthenticationBES ::= CHOICE { + default NULL, -- encrypted ClearToken + radius NULL, -- RADIUS-challenge/response + ... +} + +AuthenticationMechanism ::= CHOICE { + dhExch NULL, -- Diffie-Hellman + pwdSymEnc NULL, -- password with symmetric encryption + pwdHash NULL, -- password with hashing + certSign NULL, -- Certificate with signature + ipsec NULL, -- IPSEC based connection + tls NULL, + nonStandard NonStandardParameter, -- something else. + ..., + authenticationBES AuthenticationBES, -- user authentication for BES + keyExch OBJECT IDENTIFIER -- key exchange profile +} + +ClearToken ::= SEQUENCE -- a "token" may contain multiple value types. + { + tokenOID OBJECT IDENTIFIER, + timeStamp TimeStamp OPTIONAL, + password Password OPTIONAL, + dhkey DHset OPTIONAL, + challenge ChallengeString OPTIONAL, + random RandomVal OPTIONAL, + certificate TypedCertificate OPTIONAL, + generalID Identifier OPTIONAL, + nonStandard NonStandardParameter OPTIONAL, + ..., + eckasdhkey ECKASDH OPTIONAL, -- elliptic curve Key Agreement + + -- Scheme-Diffie Hellman Analogue + -- (ECKAS-DH) + sendersID Identifier OPTIONAL, + h235Key H235Key OPTIONAL, -- central distributed key in V3 + profileInfo SEQUENCE OF ProfileElement OPTIONAL -- profile-specific +} + +-- An object identifier should be placed in the tokenOID field when a +-- ClearToken is included directly in a message (as opposed to being +-- encrypted). In all other cases, an application should use the +-- object identifier { 0 0 } to indicate that the tokenOID value is not +-- present. +-- Start all the cryptographic parameterized types here... +-- +ProfileElement ::= SEQUENCE { + elementID INTEGER(0..255), -- element identifier, as defined by + + -- profile + paramS Params OPTIONAL, -- any element-specific parameters + element Element OPTIONAL, -- value in required form + ... +} + +Element ::= CHOICE { + octets OCTET STRING, + integer INTEGER, + bits BIT STRING, + name BMPString, + flag BOOLEAN, + ... +} + +SIGNED{ToBeSigned} ::= SEQUENCE { + toBeSigned ToBeSigned, + algorithmOID OBJECT IDENTIFIER, + paramS Params, -- any "runtime" parameters + signature BIT STRING -- could be an RSA or an ASN.1 coded ECGDSA Signature +}(CONSTRAINED BY { -- Verify or Sign Certificate --}) + +ENCRYPTED{ToBeEncrypted} ::= SEQUENCE { + algorithmOID OBJECT IDENTIFIER, + paramS Params, -- any "runtime" parameters + encryptedData OCTET STRING +}(CONSTRAINED BY { -- Encrypt or Decrypt --ToBeEncrypted}) + +HASHED{ToBeHashed} ::= SEQUENCE { + algorithmOID OBJECT IDENTIFIER, + paramS Params, -- any "runtime" parameters + hash BIT STRING +}(CONSTRAINED BY { -- Hash --ToBeHashed}) + +IV8 ::= OCTET STRING(SIZE (8)) -- initial value for 64-bit block ciphers + + +IV16 ::= OCTET STRING(SIZE (16)) -- initial value for 128-bit block ciphers + + +-- signing algorithm used must select one of these types of parameters +-- needed by receiving end of signature. +Params ::= SEQUENCE { + ranInt INTEGER OPTIONAL, -- some integer value + iv8 IV8 OPTIONAL, -- 8-octet initialization vector + ..., + iv16 IV16 OPTIONAL, -- 16-octet initialization vector + iv OCTET STRING OPTIONAL, -- arbitrary length initialization vector + clearSalt OCTET STRING OPTIONAL -- unencrypted salting key for encryption +} + +EncodedGeneralToken ::= + TYPE-IDENTIFIER.&Type(ClearToken -- general usage token --) + +PwdCertToken ::= + ClearToken(WITH COMPONENTS { + ..., + timeStamp PRESENT, + generalID PRESENT + }) + +EncodedPwdCertToken ::= TYPE-IDENTIFIER.&Type(PwdCertToken) + +CryptoToken ::= CHOICE { + cryptoEncryptedToken + SEQUENCE-- General purpose/application specific token-- {tokenOID + OBJECT + IDENTIFIER, + token + ENCRYPTED + {EncodedGeneralToken} + }, + cryptoSignedToken + SEQUENCE-- General purpose/application specific token-- {tokenOID + OBJECT + IDENTIFIER, + token + SIGNED + {EncodedGeneralToken} + }, + cryptoHashedToken + SEQUENCE-- General purpose/application specific token-- {tokenOID + OBJECT + IDENTIFIER, + hashedVals + ClearToken, + token + HASHED + {EncodedGeneralToken} + }, + cryptoPwdEncr ENCRYPTED{EncodedPwdCertToken}, + ... +} + +-- These allow the passing of session keys within the H.245 OLC structure. +-- They are encoded as standalone ASN.1 and based as an OCTET STRING within +-- H.245 +H235Key ::= + CHOICE -- This is used with the H.245 or ClearToken "h235Key" field + { + secureChannel KeyMaterial, + sharedSecret ENCRYPTED{EncodedKeySyncMaterial}, + certProtectedKey SIGNED{EncodedKeySignedMaterial}, + ..., + secureSharedSecret V3KeySyncMaterial -- for H.235 V3 endpoints +} + +KeySignedMaterial ::= SEQUENCE { + generalId Identifier, -- slave's alias + mrandom RandomVal, -- master's random value + srandom RandomVal OPTIONAL, -- slave's random value + timeStamp TimeStamp OPTIONAL, -- master's timestamp for unsolicited EU + encrptval ENCRYPTED{EncodedKeySyncMaterial} +} + +EncodedKeySignedMaterial ::= TYPE-IDENTIFIER.&Type(KeySignedMaterial) + +H235CertificateSignature ::= SEQUENCE { + certificate TypedCertificate, + responseRandom RandomVal, + requesterRandom RandomVal OPTIONAL, + signature SIGNED{EncodedReturnSig}, + ... +} + +ReturnSig ::= SEQUENCE { + generalId Identifier, -- slave's alias + responseRandom RandomVal, + requestRandom RandomVal OPTIONAL, + certificate TypedCertificate OPTIONAL -- requested certificate +} + +EncodedReturnSig ::= TYPE-IDENTIFIER.&Type(ReturnSig) + +KeySyncMaterial ::= SEQUENCE { + generalID Identifier, + keyMaterial KeyMaterial, + ... +} + +EncodedKeySyncMaterial ::= TYPE-IDENTIFIER.&Type(KeySyncMaterial) + +V3KeySyncMaterial ::= SEQUENCE { + generalID Identifier OPTIONAL, -- peer terminal ID + algorithmOID OBJECT IDENTIFIER OPTIONAL, -- encryption algorithm + paramS Params, -- IV + encryptedSessionKey OCTET STRING OPTIONAL, -- encrypted session key + encryptedSaltingKey OCTET STRING OPTIONAL, -- encrypted media salting + + -- key + clearSaltingKey OCTET STRING OPTIONAL, -- unencrypted media salting + + -- key + paramSsalt Params OPTIONAL, -- IV (and clear salt) for salting + + -- key encryption + keyDerivationOID OBJECT IDENTIFIER OPTIONAL, -- key derivation + + -- method + ..., + genericKeyMaterial OCTET STRING OPTIONAL -- ASN.1-encoded key material-- + -- form is dependent on associated media encryption tag +} + +END -- End of H235-SECURITY-MESSAGES DEFINITIONS + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/epan/dissectors/asn1/h235/H235-SRTP.asn b/epan/dissectors/asn1/h235/H235-SRTP.asn new file mode 100644 index 00000000..1783cd6e --- /dev/null +++ b/epan/dissectors/asn1/h235/H235-SRTP.asn @@ -0,0 +1,58 @@ +-- H235-SRTP.asn +-- +-- Taken from ITU ASN.1 database +-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h235.8/2005/H235-SRTP.asn +-- + +-- Module H235-SRTP (H.235.8:09/2005) +H235-SRTP DEFINITIONS AUTOMATIC TAGS ::= +BEGIN + +IMPORTS GenericData + FROM H323-MESSAGES; + +SrtpCryptoCapability ::= + SEQUENCE OF SrtpCryptoInfo -- used in H.245 genericH235SecurityCapability + +SrtpCryptoInfo ::= SEQUENCE { + cryptoSuite OBJECT IDENTIFIER OPTIONAL, + sessionParams SrtpSessionParameters OPTIONAL, + allowMKI BOOLEAN OPTIONAL, + ... +} + +SrtpKeys ::= SEQUENCE OF SrtpKeyParameters -- used in H.235 V3KeySyncMaterial + +SrtpKeyParameters ::= SEQUENCE { + masterKey OCTET STRING, + masterSalt OCTET STRING, + lifetime CHOICE {powerOfTwo INTEGER, + specific INTEGER, + ...} OPTIONAL, + mki SEQUENCE {length INTEGER(1..128), + value OCTET STRING, + ...} OPTIONAL, + ... +} + +SrtpSessionParameters ::= SEQUENCE { + kdr INTEGER(0..24) OPTIONAL, -- power of 2 + unencryptedSrtp BOOLEAN OPTIONAL, + unencryptedSrtcp BOOLEAN OPTIONAL, + unauthenticatedSrtp BOOLEAN OPTIONAL, + fecOrder FecOrder OPTIONAL, + windowSizeHint INTEGER(64..65535) OPTIONAL, + newParameter SEQUENCE OF GenericData OPTIONAL, + ... +} + +FecOrder ::= SEQUENCE { + fecBeforeSrtp NULL OPTIONAL, + fecAfterSrtp NULL OPTIONAL, + ... +} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/epan/dissectors/asn1/h235/h235.cnf b/epan/dissectors/asn1/h235/h235.cnf new file mode 100644 index 00000000..2de817e2 --- /dev/null +++ b/epan/dissectors/asn1/h235/h235.cnf @@ -0,0 +1,85 @@ +# h235.cnf +# H.235.x conformation file +# 2004 Tomas Kukosa + +#.IMPORT ../h225/h225-exp.cnf + +#.EXPORTS + +SIGNED +ENCRYPTED +HASHED +TimeStamp +ClearToken +CryptoToken +AuthenticationMechanism + +SrtpKeys +#.END + +#.PDU +SrtpCryptoCapability +#.END + +#.OMIT_ASSIGNMENT +ECGDSASignature +H235CertificateSignature + +EncodedGeneralToken +EncodedPwdCertToken +PwdCertToken +EncodedKeySignedMaterial +KeySignedMaterial +EncodedReturnSig +ReturnSig +EncodedKeySyncMaterial +KeySyncMaterial +#.END + +#.FIELD_RENAME + +TypedCertificate/certificate certificatedata +SIGNED/signature signaturedata +CryptoToken/cryptoHashedToken/token hashedToken +CryptoToken/cryptoSignedToken/token signedToken +CryptoToken/cryptoEncryptedToken/token encryptedToken + +#.END + +#.TYPE_ATTR +TimeStamp TYPE = FT_ABSOLUTE_TIME DISPLAY = ABSOLUTE_TIME_LOCAL +#.END + +#.FIELD_ATTR +NonStandardParameter/data TYPE = FT_UINT32 DISPLAY = BASE_DEC +#.END + +#.FN_HDR SIGNED + proto_item *hidden_item; + hidden_item = proto_tree_add_item(tree, proto_h235, tvb, offset>>3, 0, ENC_NA); + proto_item_set_hidden(hidden_item); +#.END +#.FN_HDR ENCRYPTED + proto_item *hidden_item; + hidden_item = proto_tree_add_item(tree, proto_h235, tvb, offset>>3, 0, ENC_NA); + proto_item_set_hidden(hidden_item); +#.END +#.FN_HDR HASHED + proto_item *hidden_item; + hidden_item = proto_tree_add_item(tree, proto_h235, tvb, offset>>3, 0, ENC_NA); + proto_item_set_hidden(hidden_item); +#.END + +#.FN_HDR ClearToken + proto_item *hidden_item; + hidden_item = proto_tree_add_item(tree, proto_h235, tvb, offset>>3, 0, ENC_NA); + proto_item_set_hidden(hidden_item); +#.END + +#.FN_HDR CryptoToken + proto_item *hidden_item; + hidden_item = proto_tree_add_item(tree, proto_h235, tvb, offset>>3, 0, ENC_NA); + proto_item_set_hidden(hidden_item); +#.END + + diff --git a/epan/dissectors/asn1/h235/packet-h235-template.c b/epan/dissectors/asn1/h235/packet-h235-template.c new file mode 100644 index 00000000..4441bbb8 --- /dev/null +++ b/epan/dissectors/asn1/h235/packet-h235-template.c @@ -0,0 +1,132 @@ +/* packet-h235.c + * Routines for H.235 packet dissection + * 2004 Tomas Kukosa + * + * Wireshark - Network traffic analyzer + * By Gerald Combs <gerald@wireshark.org> + * Copyright 1998 Gerald Combs + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "config.h" + +#include <epan/packet.h> +#include <epan/oids.h> +#include <epan/asn1.h> + +#include "packet-per.h" +#include "packet-h235.h" +#include "packet-h225.h" + +#define PNAME "H235-SECURITY-MESSAGES" +#define PSNAME "H.235" +#define PFNAME "h235" + +#define OID_MIKEY "0.0.8.235.0.3.76" +#define OID_MIKEY_PS "0.0.8.235.0.3.72" +#define OID_MIKEY_DHHMAC "0.0.8.235.0.3.73" +#define OID_MIKEY_PK_SIGN "0.0.8.235.0.3.74" +#define OID_MIKEY_DH_SIGN "0.0.8.235.0.3.75" +#define OID_TG "0.0.8.235.0.3.70" +#define OID_SG "0.0.8.235.0.3.71" + +void proto_register_h235(void); +void proto_reg_handoff_h235(void); + +/* Initialize the protocol and registered fields */ +static int proto_h235 = -1; +#include "packet-h235-hf.c" + +/* Initialize the subtree pointers */ +#include "packet-h235-ett.c" + + +static int +dissect_xxx_ToBeSigned(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_) { + dissect_per_not_decoded_yet(tree, actx->pinfo, tvb, "ToBeSigned"); + return offset; +} + +#include "packet-h235-fn.c" + + +/*--- proto_register_h235 ----------------------------------------------*/ +void proto_register_h235(void) { + + /* List of fields */ + static hf_register_info hf[] = { +#include "packet-h235-hfarr.c" + }; + + /* List of subtrees */ + static gint *ett[] = { +#include "packet-h235-ettarr.c" + }; + + /* Register protocol */ + proto_h235 = proto_register_protocol(PNAME, PSNAME, PFNAME); + + /* Register fields and subtrees */ + proto_register_field_array(proto_h235, hf, array_length(hf)); + proto_register_subtree_array(ett, array_length(ett)); + + /* OID names */ + /* H.235.1, Chapter 15, Table 3 */ + /* A */ + oid_add_from_string("all fields in RAS/CS","0.0.8.235.0.1.1"); + oid_add_from_string("all fields in RAS/CS","0.0.8.235.0.2.1"); + /* T */ + oid_add_from_string("ClearToken","0.0.8.235.0.1.5"); + oid_add_from_string("ClearToken","0.0.8.235.0.2.5"); + /* U */ + oid_add_from_string("HMAC-SHA1-96","0.0.8.235.0.1.6"); + oid_add_from_string("HMAC-SHA1-96","0.0.8.235.0.2.6"); + /* H.235.7, Chapter 5, Table 1 */ + oid_add_from_string("MIKEY", OID_MIKEY); + oid_add_from_string("MIKEY-PS", OID_MIKEY_PS); + oid_add_from_string("MIKEY-DHHMAC", OID_MIKEY_DHHMAC); + oid_add_from_string("MIKEY-PK-SIGN", OID_MIKEY_PK_SIGN); + oid_add_from_string("MIKEY-DH-SIGN", OID_MIKEY_DH_SIGN); + /* H.235.7, Chapter 8.5 */ + oid_add_from_string("TG",OID_TG); + /* H.235.7, Chapter 9.5 */ + oid_add_from_string("SG",OID_SG); + /* H.235.8, Chapter 4.2, Table 2 */ + oid_add_from_string("AES_CM_128_HMAC_SHA1_80","0.0.8.235.0.4.91"); + oid_add_from_string("AES_CM_128_HMAC_SHA1_32","0.0.8.235.0.4.92"); + oid_add_from_string("F8_128_HMAC_SHA1_80","0.0.8.235.0.4.93"); +} + + +/*--- proto_reg_handoff_h235 -------------------------------------------*/ +void proto_reg_handoff_h235(void) { + dissector_handle_t mikey_handle; + + mikey_handle = find_dissector("mikey"); + + /* H.235.7, Chapter 7.1, MIKEY operation at "session level" */ + dissector_add_string("h245.gef.content", "GenericCapability/" OID_MIKEY "/nonCollapsing/0", mikey_handle); + dissector_add_string("h245.gef.content", "GenericCapability/" OID_MIKEY_PS "/nonCollapsing/0", mikey_handle); + dissector_add_string("h245.gef.content", "GenericCapability/" OID_MIKEY_DHHMAC "/nonCollapsing/0", mikey_handle); + dissector_add_string("h245.gef.content", "GenericCapability/" OID_MIKEY_PK_SIGN "/nonCollapsing/0", mikey_handle); + dissector_add_string("h245.gef.content", "GenericCapability/" OID_MIKEY_DH_SIGN "/nonCollapsing/0", mikey_handle); + dissector_add_string("h245.gef.content", "EncryptionSync/0", mikey_handle); + /* H.235.7, Chapter 7.2, MIKEY operation at "media level" */ + dissector_add_string("h245.gef.content", "EncryptionSync/76", mikey_handle); + dissector_add_string("h245.gef.content", "EncryptionSync/72", mikey_handle); + dissector_add_string("h245.gef.content", "EncryptionSync/73", mikey_handle); + dissector_add_string("h245.gef.content", "EncryptionSync/74", mikey_handle); + dissector_add_string("h245.gef.content", "EncryptionSync/75", mikey_handle); + dissector_add_string("h245.gef.content", "GenericCapability/" OID_MIKEY "/nonCollapsing/76", mikey_handle); + dissector_add_string("h245.gef.content", "GenericCapability/" OID_MIKEY_PS "/nonCollapsing/72", mikey_handle); + dissector_add_string("h245.gef.content", "GenericCapability/" OID_MIKEY_DHHMAC "/nonCollapsing/73", mikey_handle); + dissector_add_string("h245.gef.content", "GenericCapability/" OID_MIKEY_PK_SIGN "/nonCollapsing/74", mikey_handle); + dissector_add_string("h245.gef.content", "GenericCapability/" OID_MIKEY_DH_SIGN "/nonCollapsing/75", mikey_handle); + + /* H.235.8, Chapter 4.1.2, SrtpCryptoCapability transport */ + dissector_add_string("h245.gef.content", "GenericCapability/0.0.8.235.0.4.90/nonCollapsingRaw", + create_dissector_handle(dissect_SrtpCryptoCapability_PDU, proto_h235)); + +} + diff --git a/epan/dissectors/asn1/h235/packet-h235-template.h b/epan/dissectors/asn1/h235/packet-h235-template.h new file mode 100644 index 00000000..60b889e1 --- /dev/null +++ b/epan/dissectors/asn1/h235/packet-h235-template.h @@ -0,0 +1,18 @@ +/* packet-h235.h + * Routines for H.235 packet dissection + * 2004 Tomas Kukosa + * + * Wireshark - Network traffic analyzer + * By Gerald Combs <gerald@wireshark.org> + * Copyright 1998 Gerald Combs + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef PACKET_H235_H +#define PACKET_H235_H + +#include "packet-h235-exp.h" + +#endif /* PACKET_H235_H */ + |