summaryrefslogtreecommitdiff
path: root/asn1/h235
diff options
context:
space:
mode:
authorTomas Kukosa <tomas.kukosa@siemens.com>2006-05-15 06:32:01 +0000
committerTomas Kukosa <tomas.kukosa@siemens.com>2006-05-15 06:32:01 +0000
commit726820fd03ae031586a41e39984b8e9013060f4a (patch)
treee213642c064de0d888d37546e1fa89d202991509 /asn1/h235
parentaada0116b7c65f6ea0b54c6375efd604c8be9874 (diff)
downloadwireshark-726820fd03ae031586a41e39984b8e9013060f4a.tar.gz
updated to H.235.0:09/2005 and H.235.8:09/2005
svn path=/trunk/; revision=18157
Diffstat (limited to 'asn1/h235')
-rw-r--r--asn1/h235/H235-SECURITY-MESSAGES.asn185
-rw-r--r--asn1/h235/H235-SRTP.asn59
-rw-r--r--asn1/h235/Makefile.nmake4
-rw-r--r--asn1/h235/h235-exp.cnf12
-rw-r--r--asn1/h235/h235.cnf5
-rw-r--r--asn1/h235/packet-h235-template.c1
6 files changed, 193 insertions, 73 deletions
diff --git a/asn1/h235/H235-SECURITY-MESSAGES.asn b/asn1/h235/H235-SECURITY-MESSAGES.asn
index 882236722e..a6655ddae4 100644
--- a/asn1/h235/H235-SECURITY-MESSAGES.asn
+++ b/asn1/h235/H235-SECURITY-MESSAGES.asn
@@ -1,21 +1,21 @@
--
-- Taken from ITU ASN.1 database
--- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h235/2003-amd1/H235-SECURITY-MESSAGES.asn
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h235.0/2005/H235-SECURITY-MESSAGES.asn
--
-- Features unbacked with ASN.1 to Ethereal compiler was commented out
--
-
--- Module H235-SECURITY-MESSAGES (H.235:08/2003)
+-- 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
+TimeStamp ::= INTEGER(1..4294967295) -- seconds since 00:00
+-- 1/1/1970 UTC
RandomVal ::= INTEGER -- 32-bit Integer
Password ::= BMPString(SIZE (1..128))
@@ -30,7 +30,7 @@ NonStandardParameter ::= SEQUENCE {
}
-- if local octet representations of these bit strings are used they shall
--- utilize standard Network Octet ordering (e.g. Big Endian)
+-- 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
@@ -39,8 +39,10 @@ DHset ::= SEQUENCE {
}
ECpoint ::=
- SEQUENCE -- uncompressed (x, y) affine coordinate representation of an elliptic curve point
- {
+ 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,
...
@@ -51,71 +53,80 @@ ECKASDH ::=
{
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.
+ 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).
+ 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).--
+ 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).
+ 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).
+ 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.
+ 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).
+ 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).--
+ 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).
+ 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).
+ 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
+ SEQUENCE -- parameters for elliptic curve digital signature
+
+ -- algorithm
+ {
+ r BIT STRING(SIZE (0..511)), -- This field contains the
- -- ECGDSA digital signature.
- s
- BIT STRING
- (SIZE (0..511))-- This field contains the representation of the s component of the--
- -- ECGDSA digital signature.
+ -- 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 {
@@ -139,40 +150,61 @@ AuthenticationMechanism ::= CHOICE {
tls NULL,
nonStandard NonStandardParameter, -- something else.
...,
- authenticationBES AuthenticationBES -- user authentication for BES
+ 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,
+ 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
+ eckasdhkey ECKASDH OPTIONAL, -- elliptic curve Key Agreement
- -- Hellman Analogue (ECKAS-DH)
- sendersID Identifier OPTIONAL,
- h235Key H235Key OPTIONAL -- central distributed key in V3
+ -- 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...
+-- 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 ECGDSASignature
+ signature BIT STRING -- could be an RSA or an ASN.1 coded ECGDSA Signature
}(CONSTRAINED BY { -- Verify or Sign Certificate --})
ENCRYPTED{ToBeEncrypted} ::= SEQUENCE {
@@ -197,9 +229,9 @@ IV16 ::= OCTET STRING(SIZE (16)) -- initial value for 128-bit block ciphers
-- needed by receiving end of signature.
Params ::= SEQUENCE {
ranInt INTEGER OPTIONAL, -- some integer value
- iv8 IV8 OPTIONAL, -- 8 octet initialization vector
+ iv8 IV8 OPTIONAL, -- 8-octet initialization vector
...,
- iv16 IV16 OPTIONAL, -- 16 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
}
@@ -248,15 +280,16 @@ CryptoToken ::= CHOICE {
}
-- 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
+-- 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
+ 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 end points
+ secureSharedSecret V3KeySyncMaterial -- for H.235 V3 endpoints
}
KeySignedMaterial ::= SEQUENCE {
@@ -295,15 +328,25 @@ KeySyncMaterial ::= SEQUENCE {
--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
- ...
+ 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
diff --git a/asn1/h235/H235-SRTP.asn b/asn1/h235/H235-SRTP.asn
new file mode 100644
index 0000000000..151c4e8c98
--- /dev/null
+++ b/asn1/h235/H235-SRTP.asn
@@ -0,0 +1,59 @@
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h235.8/2005/H235-SRTP.asn
+--
+-- Features unbacked with ASN.1 to Ethereal compiler was commented out
+--
+
+-- 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/asn1/h235/Makefile.nmake b/asn1/h235/Makefile.nmake
index 030a3cfa42..e521711e23 100644
--- a/asn1/h235/Makefile.nmake
+++ b/asn1/h235/Makefile.nmake
@@ -13,9 +13,9 @@ all: generate_dissector
generate_dissector: $(DISSECTOR_FILES)
-$(DISSECTOR_FILES): ../../tools/asn2eth.py H235-SECURITY-MESSAGES.asn packet-$(PROTOCOL_NAME)-template.c packet-$(PROTOCOL_NAME)-template.h $(PROTOCOL_NAME).cnf
+$(DISSECTOR_FILES): ../../tools/asn2eth.py H235-SECURITY-MESSAGES.asn H235-SRTP.asn packet-$(PROTOCOL_NAME)-template.c packet-$(PROTOCOL_NAME)-template.h $(PROTOCOL_NAME).cnf
!IFDEF PYTHON
- $(PYTHON) ../../tools/asn2eth.py -X -e -p $(PROTOCOL_NAME) -c $(PROTOCOL_NAME).cnf -s packet-$(PROTOCOL_NAME)-template H235-SECURITY-MESSAGES.asn
+ $(PYTHON) ../../tools/asn2eth.py -e -p $(PROTOCOL_NAME) -c $(PROTOCOL_NAME).cnf -s packet-$(PROTOCOL_NAME)-template H235-SECURITY-MESSAGES.asn H235-SRTP.asn
!ELSE
@echo Error: You need Python to use asn2eth.py
@exit 1
diff --git a/asn1/h235/h235-exp.cnf b/asn1/h235/h235-exp.cnf
index c5bc2a4aec..d9864d3f0a 100644
--- a/asn1/h235/h235-exp.cnf
+++ b/asn1/h235/h235-exp.cnf
@@ -1,3 +1,13 @@
+# Do not modify this file.
+# It is created automatically by the ASN.1 to Ethereal dissector compiler
+# .\h235-exp.cnf
+# ../../tools/asn2eth.py -e -p h235 -c h235.cnf -s packet-h235-template H235-SECURITY-MESSAGES.asn H235-SRTP.asn
+
+#.MODULE
+H235-SECURITY-MESSAGES h235
+H235-SRTP h235
+#.END
+
#.TYPE_ATTR
TimeStamp TYPE = FT_ABSOLUTE_TIME DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0
AuthenticationMechanism TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(h235_AuthenticationMechanism_vals) BITMASK = 0
@@ -6,5 +16,7 @@ SIGNEDxxx TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL
ENCRYPTEDxxx TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0
HASHEDxxx TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0
CryptoToken TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(h235_CryptoToken_vals) BITMASK = 0
+SrtpCryptoCapability TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0
+SrtpKeys TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0
#.END
diff --git a/asn1/h235/h235.cnf b/asn1/h235/h235.cnf
index 88abce10d9..3eccc7173a 100644
--- a/asn1/h235/h235.cnf
+++ b/asn1/h235/h235.cnf
@@ -4,6 +4,8 @@
# $Id$
+#.INCLUDE ../h225/h225-exp.cnf
+
#.EXPORTS
SIGNEDxxx
@@ -14,6 +16,9 @@ ClearToken
CryptoToken
AuthenticationMechanism
+SrtpCryptoCapability
+SrtpKeys
+
#.OMIT_ASSIGNMENT
ECGDSASignature
diff --git a/asn1/h235/packet-h235-template.c b/asn1/h235/packet-h235-template.c
index e57458401b..faea4c4e28 100644
--- a/asn1/h235/packet-h235-template.c
+++ b/asn1/h235/packet-h235-template.c
@@ -36,6 +36,7 @@
#include "packet-per.h"
#include "packet-h235.h"
+#include "packet-h225.h"
#define PNAME "H235-SECURITY-MESSAGES"
#define PSNAME "H.235"