aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-h235.c
diff options
context:
space:
mode:
authorkukosa <kukosa@f5534014-38df-0310-8fa8-9805f1628bb7>2006-05-15 06:32:01 +0000
committerkukosa <kukosa@f5534014-38df-0310-8fa8-9805f1628bb7>2006-05-15 06:32:01 +0000
commit861ffcf72c72727fd63bbf0d10c3a96babe04230 (patch)
treee213642c064de0d888d37546e1fa89d202991509 /epan/dissectors/packet-h235.c
parent6dc8340808a5be0d1d979547b79109dc64f1e518 (diff)
updated to H.235.0:09/2005 and H.235.8:09/2005
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@18157 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors/packet-h235.c')
-rw-r--r--epan/dissectors/packet-h235.c594
1 files changed, 578 insertions, 16 deletions
diff --git a/epan/dissectors/packet-h235.c b/epan/dissectors/packet-h235.c
index 9270104658..1cc0710498 100644
--- a/epan/dissectors/packet-h235.c
+++ b/epan/dissectors/packet-h235.c
@@ -1,7 +1,7 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Ethereal dissector compiler */
/* .\packet-h235.c */
-/* ../../tools/asn2eth.py -X -e -p h235 -c h235.cnf -s packet-h235-template H235-SECURITY-MESSAGES.asn */
+/* ../../tools/asn2eth.py -e -p h235 -c h235.cnf -s packet-h235-template H235-SECURITY-MESSAGES.asn H235-SRTP.asn */
/* Input file: packet-h235-template.c */
@@ -44,6 +44,7 @@
#include "packet-per.h"
#include "packet-h235.h"
+#include "packet-h225.h"
#define PNAME "H235-SECURITY-MESSAGES"
#define PSNAME "H.235"
@@ -81,6 +82,7 @@ static int hf_h235_ipsec = -1; /* NULL */
static int hf_h235_tls = -1; /* NULL */
static int hf_h235_nonStandard = -1; /* NonStandardParameter */
static int hf_h235_authenticationBES = -1; /* AuthenticationBES */
+static int hf_h235_keyExch = -1; /* OBJECT_IDENTIFIER */
static int hf_h235_tokenOID = -1; /* OBJECT_IDENTIFIER */
static int hf_h235_timeStamp = -1; /* TimeStamp */
static int hf_h235_password = -1; /* Password */
@@ -92,9 +94,18 @@ static int hf_h235_generalID = -1; /* Identifier */
static int hf_h235_eckasdhkey = -1; /* ECKASDH */
static int hf_h235_sendersID = -1; /* Identifier */
static int hf_h235_h235Key = -1; /* H235Key */
+static int hf_h235_profileInfo = -1; /* SEQUENCE_OF_ProfileElement */
+static int hf_h235_profileInfo_item = -1; /* ProfileElement */
+static int hf_h235_elementID = -1; /* INTEGER_0_255 */
+static int hf_h235_paramS = -1; /* Params */
+static int hf_h235_element = -1; /* Element */
+static int hf_h235_octets = -1; /* OCTET_STRING */
+static int hf_h235_integer = -1; /* INTEGER */
+static int hf_h235_bits = -1; /* BIT_STRING */
+static int hf_h235_name = -1; /* BMPString */
+static int hf_h235_flag = -1; /* BOOLEAN */
static int hf_h235_toBeSigned = -1; /* ToBeSigned */
static int hf_h235_algorithmOID = -1; /* OBJECT_IDENTIFIER */
-static int hf_h235_paramS = -1; /* Params */
static int hf_h235_signaturedata = -1; /* BIT_STRING */
static int hf_h235_encryptedData = -1; /* OCTET_STRING */
static int hf_h235_hash = -1; /* BIT_STRING */
@@ -120,9 +131,33 @@ static int hf_h235_encryptedSaltingKey = -1; /* OCTET_STRING */
static int hf_h235_clearSaltingKey = -1; /* OCTET_STRING */
static int hf_h235_paramSsalt = -1; /* Params */
static int hf_h235_keyDerivationOID = -1; /* OBJECT_IDENTIFIER */
+static int hf_h235_genericKeyMaterial = -1; /* OCTET_STRING */
+static int hf_h235_SrtpCryptoCapability_item = -1; /* SrtpCryptoInfo */
+static int hf_h235_cryptoSuite = -1; /* OBJECT_IDENTIFIER */
+static int hf_h235_sessionParams = -1; /* SrtpSessionParameters */
+static int hf_h235_allowMKI = -1; /* BOOLEAN */
+static int hf_h235_SrtpKeys_item = -1; /* SrtpKeyParameters */
+static int hf_h235_masterKey = -1; /* OCTET_STRING */
+static int hf_h235_masterSalt = -1; /* OCTET_STRING */
+static int hf_h235_lifetime = -1; /* T_lifetime */
+static int hf_h235_powerOfTwo = -1; /* INTEGER */
+static int hf_h235_specific = -1; /* INTEGER */
+static int hf_h235_mki = -1; /* T_mki */
+static int hf_h235_length = -1; /* INTEGER_1_128 */
+static int hf_h235_value = -1; /* OCTET_STRING */
+static int hf_h235_kdr = -1; /* INTEGER_0_24 */
+static int hf_h235_unencryptedSrtp = -1; /* BOOLEAN */
+static int hf_h235_unencryptedSrtcp = -1; /* BOOLEAN */
+static int hf_h235_unauthenticatedSrtp = -1; /* BOOLEAN */
+static int hf_h235_fecOrder = -1; /* FecOrder */
+static int hf_h235_windowSizeHint = -1; /* INTEGER_64_65535 */
+static int hf_h235_newParameter = -1; /* SEQUENCE_OF_GenericData */
+static int hf_h235_newParameter_item = -1; /* GenericData */
+static int hf_h235_fecBeforeSrtp = -1; /* NULL */
+static int hf_h235_fecAfterSrtp = -1; /* NULL */
/*--- End of included file: packet-h235-hf.c ---*/
-#line 47 "packet-h235-template.c"
+#line 48 "packet-h235-template.c"
/* Initialize the subtree pointers */
@@ -138,6 +173,9 @@ static gint ett_h235_TypedCertificate = -1;
static gint ett_h235_AuthenticationBES = -1;
static gint ett_h235_AuthenticationMechanism = -1;
static gint ett_h235_ClearToken = -1;
+static gint ett_h235_SEQUENCE_OF_ProfileElement = -1;
+static gint ett_h235_ProfileElement = -1;
+static gint ett_h235_Element = -1;
static gint ett_h235_SIGNEDxxx = -1;
static gint ett_h235_ENCRYPTEDxxx = -1;
static gint ett_h235_HASHEDxxx = -1;
@@ -148,9 +186,18 @@ static gint ett_h235_T_cryptoSignedToken = -1;
static gint ett_h235_T_cryptoHashedToken = -1;
static gint ett_h235_H235Key = -1;
static gint ett_h235_V3KeySyncMaterial = -1;
+static gint ett_h235_SrtpCryptoCapability = -1;
+static gint ett_h235_SrtpCryptoInfo = -1;
+static gint ett_h235_SrtpKeys = -1;
+static gint ett_h235_SrtpKeyParameters = -1;
+static gint ett_h235_T_lifetime = -1;
+static gint ett_h235_T_mki = -1;
+static gint ett_h235_SrtpSessionParameters = -1;
+static gint ett_h235_SEQUENCE_OF_GenericData = -1;
+static gint ett_h235_FecOrder = -1;
/*--- End of included file: packet-h235-ett.c ---*/
-#line 50 "packet-h235-template.c"
+#line 51 "packet-h235-template.c"
static guint32
dissect_xxx_ToBeSigned(tvbuff_t *tvb, guint32 offset, packet_info *pinfo, proto_tree *tree, int hf_index _U_) {
@@ -166,6 +213,9 @@ PER_NOT_DECODED_YET("ToBeSigned");
static int dissect_toBeSigned(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
return dissect_xxx_ToBeSigned(tvb, offset, pinfo, tree, hf_h235_toBeSigned);
}
+static int dissect_newParameter_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h225_GenericData(tvb, offset, pinfo, tree, hf_h235_newParameter_item);
+}
@@ -262,6 +312,9 @@ static int dissect_nonStandardIdentifier(tvbuff_t *tvb, int offset, packet_info
static int dissect_type(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
return dissect_h235_OBJECT_IDENTIFIER(tvb, offset, pinfo, tree, hf_h235_type);
}
+static int dissect_keyExch(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h235_OBJECT_IDENTIFIER(tvb, offset, pinfo, tree, hf_h235_keyExch);
+}
static int dissect_tokenOID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
return dissect_h235_OBJECT_IDENTIFIER(tvb, offset, pinfo, tree, hf_h235_tokenOID);
}
@@ -271,6 +324,9 @@ static int dissect_algorithmOID(tvbuff_t *tvb, int offset, packet_info *pinfo, p
static int dissect_keyDerivationOID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
return dissect_h235_OBJECT_IDENTIFIER(tvb, offset, pinfo, tree, hf_h235_keyDerivationOID);
}
+static int dissect_cryptoSuite(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h235_OBJECT_IDENTIFIER(tvb, offset, pinfo, tree, hf_h235_cryptoSuite);
+}
@@ -287,6 +343,9 @@ static int dissect_data(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tre
static int dissect_certificatedata(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
return dissect_h235_OCTET_STRING(tvb, offset, pinfo, tree, hf_h235_certificatedata);
}
+static int dissect_octets(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h235_OCTET_STRING(tvb, offset, pinfo, tree, hf_h235_octets);
+}
static int dissect_encryptedData(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
return dissect_h235_OCTET_STRING(tvb, offset, pinfo, tree, hf_h235_encryptedData);
}
@@ -305,6 +364,18 @@ static int dissect_encryptedSaltingKey(tvbuff_t *tvb, int offset, packet_info *p
static int dissect_clearSaltingKey(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
return dissect_h235_OCTET_STRING(tvb, offset, pinfo, tree, hf_h235_clearSaltingKey);
}
+static int dissect_genericKeyMaterial(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h235_OCTET_STRING(tvb, offset, pinfo, tree, hf_h235_genericKeyMaterial);
+}
+static int dissect_masterKey(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h235_OCTET_STRING(tvb, offset, pinfo, tree, hf_h235_masterKey);
+}
+static int dissect_masterSalt(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h235_OCTET_STRING(tvb, offset, pinfo, tree, hf_h235_masterSalt);
+}
+static int dissect_value(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h235_OCTET_STRING(tvb, offset, pinfo, tree, hf_h235_value);
+}
static const per_sequence_t NonStandardParameter_sequence[] = {
@@ -528,6 +599,12 @@ static int dissect_ipsec(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
static int dissect_tls(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
return dissect_h235_NULL(tvb, offset, pinfo, tree, hf_h235_tls);
}
+static int dissect_fecBeforeSrtp(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h235_NULL(tvb, offset, pinfo, tree, hf_h235_fecBeforeSrtp);
+}
+static int dissect_fecAfterSrtp(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h235_NULL(tvb, offset, pinfo, tree, hf_h235_fecAfterSrtp);
+}
static const value_string h235_AuthenticationBES_vals[] = {
@@ -564,6 +641,7 @@ const value_string h235_AuthenticationMechanism_vals[] = {
{ 5, "tls" },
{ 6, "nonStandard" },
{ 7, "authenticationBES" },
+ { 8, "keyExch" },
{ 0, NULL }
};
@@ -576,6 +654,7 @@ static const per_choice_t AuthenticationMechanism_choice[] = {
{ 5, "tls" , ASN1_EXTENSION_ROOT , dissect_tls },
{ 6, "nonStandard" , ASN1_EXTENSION_ROOT , dissect_nonStandard },
{ 7, "authenticationBES" , ASN1_NOT_EXTENSION_ROOT, dissect_authenticationBES },
+ { 8, "keyExch" , ASN1_NOT_EXTENSION_ROOT, dissect_keyExch },
{ 0, NULL, 0, NULL }
};
@@ -597,9 +676,18 @@ dissect_h235_INTEGER(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tr
return offset;
}
+static int dissect_integer(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h235_INTEGER(tvb, offset, pinfo, tree, hf_h235_integer);
+}
static int dissect_ranInt(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
return dissect_h235_INTEGER(tvb, offset, pinfo, tree, hf_h235_ranInt);
}
+static int dissect_powerOfTwo(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h235_INTEGER(tvb, offset, pinfo, tree, hf_h235_powerOfTwo);
+}
+static int dissect_specific(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h235_INTEGER(tvb, offset, pinfo, tree, hf_h235_specific);
+}
@@ -661,7 +749,7 @@ static const per_sequence_t ENCRYPTEDxxx_sequence[] = {
int
dissect_h235_ENCRYPTEDxxx(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-#line 48 "h235.cnf"
+#line 53 "h235.cnf"
proto_tree_add_item_hidden(tree, proto_h235, tvb, offset, 0, FALSE);
offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
@@ -688,6 +776,9 @@ dissect_h235_BIT_STRING(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto
return offset;
}
+static int dissect_bits(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h235_BIT_STRING(tvb, offset, pinfo, tree, hf_h235_bits);
+}
static int dissect_signaturedata(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
return dissect_h235_BIT_STRING(tvb, offset, pinfo, tree, hf_h235_signaturedata);
}
@@ -706,7 +797,7 @@ static const per_sequence_t SIGNEDxxx_sequence[] = {
int
dissect_h235_SIGNEDxxx(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-#line 45 "h235.cnf"
+#line 50 "h235.cnf"
proto_tree_add_item_hidden(tree, proto_h235, tvb, offset, 0, FALSE);
offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
@@ -731,6 +822,7 @@ static const per_sequence_t V3KeySyncMaterial_sequence[] = {
{ "clearSaltingKey" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_clearSaltingKey },
{ "paramSsalt" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_paramSsalt },
{ "keyDerivationOID" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_keyDerivationOID },
+ { "genericKeyMaterial" , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_genericKeyMaterial },
{ NULL, 0, 0, NULL }
};
@@ -775,6 +867,123 @@ static int dissect_h235Key(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_
}
+
+static int
+dissect_h235_INTEGER_0_255(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 255U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_elementID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h235_INTEGER_0_255(tvb, offset, pinfo, tree, hf_h235_elementID);
+}
+
+
+
+static int
+dissect_h235_BMPString(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_BMPString(tvb, offset, pinfo, tree, hf_index,
+ NO_BOUND, NO_BOUND);
+
+ return offset;
+}
+static int dissect_name(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h235_BMPString(tvb, offset, pinfo, tree, hf_h235_name);
+}
+
+
+
+static int
+dissect_h235_BOOLEAN(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_boolean(tvb, offset, pinfo, tree, hf_index,
+ NULL, NULL);
+
+ return offset;
+}
+static int dissect_flag(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h235_BOOLEAN(tvb, offset, pinfo, tree, hf_h235_flag);
+}
+static int dissect_allowMKI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h235_BOOLEAN(tvb, offset, pinfo, tree, hf_h235_allowMKI);
+}
+static int dissect_unencryptedSrtp(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h235_BOOLEAN(tvb, offset, pinfo, tree, hf_h235_unencryptedSrtp);
+}
+static int dissect_unencryptedSrtcp(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h235_BOOLEAN(tvb, offset, pinfo, tree, hf_h235_unencryptedSrtcp);
+}
+static int dissect_unauthenticatedSrtp(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h235_BOOLEAN(tvb, offset, pinfo, tree, hf_h235_unauthenticatedSrtp);
+}
+
+
+static const value_string h235_Element_vals[] = {
+ { 0, "octets" },
+ { 1, "integer" },
+ { 2, "bits" },
+ { 3, "name" },
+ { 4, "flag" },
+ { 0, NULL }
+};
+
+static const per_choice_t Element_choice[] = {
+ { 0, "octets" , ASN1_EXTENSION_ROOT , dissect_octets },
+ { 1, "integer" , ASN1_EXTENSION_ROOT , dissect_integer },
+ { 2, "bits" , ASN1_EXTENSION_ROOT , dissect_bits },
+ { 3, "name" , ASN1_EXTENSION_ROOT , dissect_name },
+ { 4, "flag" , ASN1_EXTENSION_ROOT , dissect_flag },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_h235_Element(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_h235_Element, Element_choice,
+ NULL);
+
+ return offset;
+}
+static int dissect_element(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h235_Element(tvb, offset, pinfo, tree, hf_h235_element);
+}
+
+
+static const per_sequence_t ProfileElement_sequence[] = {
+ { "elementID" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_elementID },
+ { "paramS" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_paramS },
+ { "element" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_element },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_h235_ProfileElement(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_h235_ProfileElement, ProfileElement_sequence);
+
+ return offset;
+}
+static int dissect_profileInfo_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h235_ProfileElement(tvb, offset, pinfo, tree, hf_h235_profileInfo_item);
+}
+
+
+static const per_sequence_t SEQUENCE_OF_ProfileElement_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_profileInfo_item },
+};
+
+static int
+dissect_h235_SEQUENCE_OF_ProfileElement(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_h235_SEQUENCE_OF_ProfileElement, SEQUENCE_OF_ProfileElement_sequence_of);
+
+ return offset;
+}
+static int dissect_profileInfo(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h235_SEQUENCE_OF_ProfileElement(tvb, offset, pinfo, tree, hf_h235_profileInfo);
+}
+
+
static const per_sequence_t ClearToken_sequence[] = {
{ "tokenOID" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_tokenOID },
{ "timeStamp" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_timeStamp },
@@ -788,12 +997,13 @@ static const per_sequence_t ClearToken_sequence[] = {
{ "eckasdhkey" , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_eckasdhkey },
{ "sendersID" , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_sendersID },
{ "h235Key" , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h235Key },
+ { "profileInfo" , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_profileInfo },
{ NULL, 0, 0, NULL }
};
int
dissect_h235_ClearToken(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-#line 55 "h235.cnf"
+#line 60 "h235.cnf"
proto_tree_add_item_hidden(tree, proto_h235, tvb, offset, 0, FALSE);
offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
@@ -815,7 +1025,7 @@ static const per_sequence_t HASHEDxxx_sequence[] = {
int
dissect_h235_HASHEDxxx(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-#line 51 "h235.cnf"
+#line 56 "h235.cnf"
proto_tree_add_item_hidden(tree, proto_h235, tvb, offset, 0, FALSE);
offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
@@ -901,7 +1111,7 @@ static const per_choice_t CryptoToken_choice[] = {
int
dissect_h235_CryptoToken(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-#line 59 "h235.cnf"
+#line 64 "h235.cnf"
proto_tree_add_item_hidden(tree, proto_h235, tvb, offset, 0, FALSE);
offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
@@ -912,8 +1122,212 @@ dissect_h235_CryptoToken(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, prot
}
+
+static int
+dissect_h235_INTEGER_0_24(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 24U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_kdr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h235_INTEGER_0_24(tvb, offset, pinfo, tree, hf_h235_kdr);
+}
+
+
+static const per_sequence_t FecOrder_sequence[] = {
+ { "fecBeforeSrtp" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_fecBeforeSrtp },
+ { "fecAfterSrtp" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_fecAfterSrtp },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_h235_FecOrder(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_h235_FecOrder, FecOrder_sequence);
+
+ return offset;
+}
+static int dissect_fecOrder(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h235_FecOrder(tvb, offset, pinfo, tree, hf_h235_fecOrder);
+}
+
+
+
+static int
+dissect_h235_INTEGER_64_65535(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 64U, 65535U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_windowSizeHint(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h235_INTEGER_64_65535(tvb, offset, pinfo, tree, hf_h235_windowSizeHint);
+}
+
+
+static const per_sequence_t SEQUENCE_OF_GenericData_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_newParameter_item },
+};
+
+static int
+dissect_h235_SEQUENCE_OF_GenericData(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_h235_SEQUENCE_OF_GenericData, SEQUENCE_OF_GenericData_sequence_of);
+
+ return offset;
+}
+static int dissect_newParameter(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h235_SEQUENCE_OF_GenericData(tvb, offset, pinfo, tree, hf_h235_newParameter);
+}
+
+
+static const per_sequence_t SrtpSessionParameters_sequence[] = {
+ { "kdr" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_kdr },
+ { "unencryptedSrtp" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_unencryptedSrtp },
+ { "unencryptedSrtcp" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_unencryptedSrtcp },
+ { "unauthenticatedSrtp" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_unauthenticatedSrtp },
+ { "fecOrder" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_fecOrder },
+ { "windowSizeHint" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_windowSizeHint },
+ { "newParameter" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_newParameter },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_h235_SrtpSessionParameters(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_h235_SrtpSessionParameters, SrtpSessionParameters_sequence);
+
+ return offset;
+}
+static int dissect_sessionParams(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h235_SrtpSessionParameters(tvb, offset, pinfo, tree, hf_h235_sessionParams);
+}
+
+
+static const per_sequence_t SrtpCryptoInfo_sequence[] = {
+ { "cryptoSuite" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_cryptoSuite },
+ { "sessionParams" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_sessionParams },
+ { "allowMKI" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_allowMKI },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_h235_SrtpCryptoInfo(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_h235_SrtpCryptoInfo, SrtpCryptoInfo_sequence);
+
+ return offset;
+}
+static int dissect_SrtpCryptoCapability_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h235_SrtpCryptoInfo(tvb, offset, pinfo, tree, hf_h235_SrtpCryptoCapability_item);
+}
+
+
+static const per_sequence_t SrtpCryptoCapability_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_SrtpCryptoCapability_item },
+};
+
+int
+dissect_h235_SrtpCryptoCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_h235_SrtpCryptoCapability, SrtpCryptoCapability_sequence_of);
+
+ return offset;
+}
+
+
+static const value_string h235_T_lifetime_vals[] = {
+ { 0, "powerOfTwo" },
+ { 1, "specific" },
+ { 0, NULL }
+};
+
+static const per_choice_t T_lifetime_choice[] = {
+ { 0, "powerOfTwo" , ASN1_EXTENSION_ROOT , dissect_powerOfTwo },
+ { 1, "specific" , ASN1_EXTENSION_ROOT , dissect_specific },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_h235_T_lifetime(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_h235_T_lifetime, T_lifetime_choice,
+ NULL);
+
+ return offset;
+}
+static int dissect_lifetime(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h235_T_lifetime(tvb, offset, pinfo, tree, hf_h235_lifetime);
+}
+
+
+
+static int
+dissect_h235_INTEGER_1_128(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 1U, 128U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_length(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h235_INTEGER_1_128(tvb, offset, pinfo, tree, hf_h235_length);
+}
+
+
+static const per_sequence_t T_mki_sequence[] = {
+ { "length" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_length },
+ { "value" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_value },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_h235_T_mki(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_h235_T_mki, T_mki_sequence);
+
+ return offset;
+}
+static int dissect_mki(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h235_T_mki(tvb, offset, pinfo, tree, hf_h235_mki);
+}
+
+
+static const per_sequence_t SrtpKeyParameters_sequence[] = {
+ { "masterKey" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_masterKey },
+ { "masterSalt" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_masterSalt },
+ { "lifetime" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lifetime },
+ { "mki" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_mki },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_h235_SrtpKeyParameters(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_h235_SrtpKeyParameters, SrtpKeyParameters_sequence);
+
+ return offset;
+}
+static int dissect_SrtpKeys_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h235_SrtpKeyParameters(tvb, offset, pinfo, tree, hf_h235_SrtpKeys_item);
+}
+
+
+static const per_sequence_t SrtpKeys_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_SrtpKeys_item },
+};
+
+int
+dissect_h235_SrtpKeys(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_h235_SrtpKeys, SrtpKeys_sequence_of);
+
+ return offset;
+}
+
+
/*--- End of included file: packet-h235-fn.c ---*/
-#line 58 "packet-h235-template.c"
+#line 59 "packet-h235-template.c"
/*--- proto_register_h235 ----------------------------------------------*/
@@ -1032,6 +1446,10 @@ void proto_register_h235(void) {
{ "authenticationBES", "h235.authenticationBES",
FT_UINT32, BASE_DEC, VALS(h235_AuthenticationBES_vals), 0,
"AuthenticationMechanism/authenticationBES", HFILL }},
+ { &hf_h235_keyExch,
+ { "keyExch", "h235.keyExch",
+ FT_OID, BASE_NONE, NULL, 0,
+ "AuthenticationMechanism/keyExch", HFILL }},
{ &hf_h235_tokenOID,
{ "tokenOID", "h235.tokenOID",
FT_OID, BASE_NONE, NULL, 0,
@@ -1076,6 +1494,46 @@ void proto_register_h235(void) {
{ "h235Key", "h235.h235Key",
FT_UINT32, BASE_DEC, VALS(h235_H235Key_vals), 0,
"ClearToken/h235Key", HFILL }},
+ { &hf_h235_profileInfo,
+ { "profileInfo", "h235.profileInfo",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "ClearToken/profileInfo", HFILL }},
+ { &hf_h235_profileInfo_item,
+ { "Item", "h235.profileInfo_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "ClearToken/profileInfo/_item", HFILL }},
+ { &hf_h235_elementID,
+ { "elementID", "h235.elementID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "ProfileElement/elementID", HFILL }},
+ { &hf_h235_paramS,
+ { "paramS", "h235.paramS",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "", HFILL }},
+ { &hf_h235_element,
+ { "element", "h235.element",
+ FT_UINT32, BASE_DEC, VALS(h235_Element_vals), 0,
+ "ProfileElement/element", HFILL }},
+ { &hf_h235_octets,
+ { "octets", "h235.octets",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "Element/octets", HFILL }},
+ { &hf_h235_integer,
+ { "integer", "h235.integer",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "Element/integer", HFILL }},
+ { &hf_h235_bits,
+ { "bits", "h235.bits",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "Element/bits", HFILL }},
+ { &hf_h235_name,
+ { "name", "h235.name",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "Element/name", HFILL }},
+ { &hf_h235_flag,
+ { "flag", "h235.flag",
+ FT_BOOLEAN, 8, NULL, 0,
+ "Element/flag", HFILL }},
{ &hf_h235_toBeSigned,
{ "toBeSigned", "h235.toBeSigned",
FT_NONE, BASE_NONE, NULL, 0,
@@ -1084,10 +1542,6 @@ void proto_register_h235(void) {
{ "algorithmOID", "h235.algorithmOID",
FT_OID, BASE_NONE, NULL, 0,
"", HFILL }},
- { &hf_h235_paramS,
- { "paramS", "h235.paramS",
- FT_NONE, BASE_NONE, NULL, 0,
- "", HFILL }},
{ &hf_h235_signaturedata,
{ "signature", "h235.signature",
FT_BYTES, BASE_HEX, NULL, 0,
@@ -1188,9 +1642,105 @@ void proto_register_h235(void) {
{ "keyDerivationOID", "h235.keyDerivationOID",
FT_OID, BASE_NONE, NULL, 0,
"V3KeySyncMaterial/keyDerivationOID", HFILL }},
+ { &hf_h235_genericKeyMaterial,
+ { "genericKeyMaterial", "h235.genericKeyMaterial",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "V3KeySyncMaterial/genericKeyMaterial", HFILL }},
+ { &hf_h235_SrtpCryptoCapability_item,
+ { "Item", "h235.SrtpCryptoCapability_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "SrtpCryptoCapability/_item", HFILL }},
+ { &hf_h235_cryptoSuite,
+ { "cryptoSuite", "h235.cryptoSuite",
+ FT_OID, BASE_NONE, NULL, 0,
+ "SrtpCryptoInfo/cryptoSuite", HFILL }},
+ { &hf_h235_sessionParams,
+ { "sessionParams", "h235.sessionParams",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "SrtpCryptoInfo/sessionParams", HFILL }},
+ { &hf_h235_allowMKI,
+ { "allowMKI", "h235.allowMKI",
+ FT_BOOLEAN, 8, NULL, 0,
+ "SrtpCryptoInfo/allowMKI", HFILL }},
+ { &hf_h235_SrtpKeys_item,
+ { "Item", "h235.SrtpKeys_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "SrtpKeys/_item", HFILL }},
+ { &hf_h235_masterKey,
+ { "masterKey", "h235.masterKey",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "SrtpKeyParameters/masterKey", HFILL }},
+ { &hf_h235_masterSalt,
+ { "masterSalt", "h235.masterSalt",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "SrtpKeyParameters/masterSalt", HFILL }},
+ { &hf_h235_lifetime,
+ { "lifetime", "h235.lifetime",
+ FT_UINT32, BASE_DEC, VALS(h235_T_lifetime_vals), 0,
+ "SrtpKeyParameters/lifetime", HFILL }},
+ { &hf_h235_powerOfTwo,
+ { "powerOfTwo", "h235.powerOfTwo",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "SrtpKeyParameters/lifetime/powerOfTwo", HFILL }},
+ { &hf_h235_specific,
+ { "specific", "h235.specific",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "SrtpKeyParameters/lifetime/specific", HFILL }},
+ { &hf_h235_mki,
+ { "mki", "h235.mki",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "SrtpKeyParameters/mki", HFILL }},
+ { &hf_h235_length,
+ { "length", "h235.length",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "SrtpKeyParameters/mki/length", HFILL }},
+ { &hf_h235_value,
+ { "value", "h235.value",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "SrtpKeyParameters/mki/value", HFILL }},
+ { &hf_h235_kdr,
+ { "kdr", "h235.kdr",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "SrtpSessionParameters/kdr", HFILL }},
+ { &hf_h235_unencryptedSrtp,
+ { "unencryptedSrtp", "h235.unencryptedSrtp",
+ FT_BOOLEAN, 8, NULL, 0,
+ "SrtpSessionParameters/unencryptedSrtp", HFILL }},
+ { &hf_h235_unencryptedSrtcp,
+ { "unencryptedSrtcp", "h235.unencryptedSrtcp",
+ FT_BOOLEAN, 8, NULL, 0,
+ "SrtpSessionParameters/unencryptedSrtcp", HFILL }},
+ { &hf_h235_unauthenticatedSrtp,
+ { "unauthenticatedSrtp", "h235.unauthenticatedSrtp",
+ FT_BOOLEAN, 8, NULL, 0,
+ "SrtpSessionParameters/unauthenticatedSrtp", HFILL }},
+ { &hf_h235_fecOrder,
+ { "fecOrder", "h235.fecOrder",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "SrtpSessionParameters/fecOrder", HFILL }},
+ { &hf_h235_windowSizeHint,
+ { "windowSizeHint", "h235.windowSizeHint",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "SrtpSessionParameters/windowSizeHint", HFILL }},
+ { &hf_h235_newParameter,
+ { "newParameter", "h235.newParameter",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "SrtpSessionParameters/newParameter", HFILL }},
+ { &hf_h235_newParameter_item,
+ { "Item", "h235.newParameter_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "SrtpSessionParameters/newParameter/_item", HFILL }},
+ { &hf_h235_fecBeforeSrtp,
+ { "fecBeforeSrtp", "h235.fecBeforeSrtp",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "FecOrder/fecBeforeSrtp", HFILL }},
+ { &hf_h235_fecAfterSrtp,
+ { "fecAfterSrtp", "h235.fecAfterSrtp",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "FecOrder/fecAfterSrtp", HFILL }},
/*--- End of included file: packet-h235-hfarr.c ---*/
-#line 66 "packet-h235-template.c"
+#line 67 "packet-h235-template.c"
};
/* List of subtrees */
@@ -1208,6 +1758,9 @@ void proto_register_h235(void) {
&ett_h235_AuthenticationBES,
&ett_h235_AuthenticationMechanism,
&ett_h235_ClearToken,
+ &ett_h235_SEQUENCE_OF_ProfileElement,
+ &ett_h235_ProfileElement,
+ &ett_h235_Element,
&ett_h235_SIGNEDxxx,
&ett_h235_ENCRYPTEDxxx,
&ett_h235_HASHEDxxx,
@@ -1218,9 +1771,18 @@ void proto_register_h235(void) {
&ett_h235_T_cryptoHashedToken,
&ett_h235_H235Key,
&ett_h235_V3KeySyncMaterial,
+ &ett_h235_SrtpCryptoCapability,
+ &ett_h235_SrtpCryptoInfo,
+ &ett_h235_SrtpKeys,
+ &ett_h235_SrtpKeyParameters,
+ &ett_h235_T_lifetime,
+ &ett_h235_T_mki,
+ &ett_h235_SrtpSessionParameters,
+ &ett_h235_SEQUENCE_OF_GenericData,
+ &ett_h235_FecOrder,
/*--- End of included file: packet-h235-ettarr.c ---*/
-#line 71 "packet-h235-template.c"
+#line 72 "packet-h235-template.c"
};
/* Register protocol */