IEEE 1609.2: Update asn1 descriptions and add CAMP
This commit is contained in:
parent
4258c3a02f
commit
1d9ba7de54
@ -17,7 +17,9 @@ set( EXT_ASN_FILE_LIST
|
||||
|
||||
set( ASN_FILE_LIST
|
||||
IEEE1609dot2BaseTypes.asn
|
||||
IEEE1609dot2DataTypes.asn
|
||||
Ieee1609Dot2CrlBaseTypes.asn
|
||||
Ieee1609Dot2Crl.asn
|
||||
Ieee1609Dot2.asn
|
||||
IEEE1609dot12.asn
|
||||
)
|
||||
|
||||
|
@ -1,9 +1,10 @@
|
||||
-- https://standards.ieee.org/products-programs/regauth/psid/public/
|
||||
IEEE1609dot12
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::= BEGIN
|
||||
IMPORTS
|
||||
Psid
|
||||
FROM IEEE1609dot2BaseTypes {iso(1) identified-organization(3) ieee(111)
|
||||
FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111)
|
||||
standards-association-numbered-series-standards(2) wave-stds(1609)
|
||||
dot2(2) base(1) base-types(2)}
|
||||
;
|
||||
@ -63,13 +64,12 @@ psid-road-and-lane-topology-service Psid ::= 138
|
||||
psid-infrastructure-to-vehicle-information-service Psid ::= 139 -- ISO-19321-ETSI-TS-103-301
|
||||
psid-traffic-light-control-requests-service Psid ::= 140 -- ISO-19091-ETSI-TS-103-301
|
||||
psid-geonetworking-management-communications Psid ::= 141 -- ETSI-EN-302-636-4-1
|
||||
psid-certificate-revocation-list-application Psid ::= 256 -- IEEEE Std 1609.2 CAMP
|
||||
psid-traffic-light-control-status-service Psid ::= 637 -- ISO-19091-ETSI-TS-103-301
|
||||
psid-collective-perception-service Psid ::= 639 -- ETSI-TS-103-324
|
||||
|
||||
-- 0x8e to 0xFF 0p80-09 to 0p80-7F Not allocated
|
||||
|
||||
psid-certificate-revocation-list-application Psid ::= 256 -- CAMP
|
||||
|
||||
-- 0x01-01 to 0x3E-7F 0p80-81 to 0pBD-FF Not allocated
|
||||
-- 0x3E-80 to 0x40-1F 0pBE-00 to 0pBF-9F Reserved IEEE P1609 WG 416
|
||||
-- 0x40-20 to 0x40-5F 0pBF-A0 to 0pBF-DF Private used IEEE P1609 WG 64
|
||||
|
@ -1,269 +1,286 @@
|
||||
IEEE1609dot2BaseTypes {iso(1) identified-organization(3) ieee(111)
|
||||
standards-association-numbered-series-standards(2) wave-stds(1609)
|
||||
dot2(2) base(1) base-types(2) major-version-2(2)}
|
||||
--***************************************************************************--
|
||||
-- IEEE Std 1609.2: Base Data Types --
|
||||
--***************************************************************************--
|
||||
|
||||
-- Minor version: 1
|
||||
Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111)
|
||||
standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2)
|
||||
base(1) base-types(2) major-version-2(2) minor-version-4(4)}
|
||||
|
||||
--
|
||||
--********************************************************************
|
||||
-- IEEE P1609.2 Base Data Types
|
||||
--
|
||||
--********************************************************************
|
||||
DEFINITIONS AUTOMATIC TAGS ::= BEGIN
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::= BEGIN
|
||||
|
||||
EXPORTS ALL;
|
||||
--***************************************************************************--
|
||||
-- Integer Types --
|
||||
--***************************************************************************--
|
||||
|
||||
Uint3 ::= INTEGER (0..7)
|
||||
|
||||
-- ------------------------------------------------------------------
|
||||
--
|
||||
-- Integers
|
||||
--
|
||||
-- ------------------------------------------------------------------
|
||||
Uint8 ::= INTEGER (0..255)
|
||||
|
||||
Uint16 ::= INTEGER (0..65535)
|
||||
|
||||
Uint3 ::= INTEGER (0..7) -- (hex) 07
|
||||
Uint8 ::= INTEGER (0..255) -- (hex) ff
|
||||
Uint16 ::= INTEGER (0..65535) -- (hex) ff ff
|
||||
Uint32 ::= INTEGER (0..4294967295)--<LONGLONG>-- -- (hex) ff ff ff ff
|
||||
Uint64 ::= INTEGER (0..18446744073709551615) -- (hex) ff ff ff ff ff ff ff ff
|
||||
Uint32 ::= INTEGER (0..4294967295)
|
||||
|
||||
Uint64 ::= INTEGER (0..18446744073709551615)
|
||||
|
||||
SequenceOfUint8 ::= SEQUENCE OF Uint8
|
||||
|
||||
SequenceOfUint8 ::= SEQUENCE OF Uint8
|
||||
SequenceOfUint16 ::= SEQUENCE OF Uint16
|
||||
|
||||
-- ------------------------------------------------------------------
|
||||
--
|
||||
-- OCTET STRING types
|
||||
--
|
||||
-- ------------------------------------------------------------------
|
||||
|
||||
--***************************************************************************--
|
||||
-- OCTET STRING Types --
|
||||
--***************************************************************************--
|
||||
|
||||
Opaque ::= OCTET STRING
|
||||
|
||||
|
||||
HashedId10 ::= OCTET STRING (SIZE(10))
|
||||
HashedId8 ::= OCTET STRING (SIZE(8))
|
||||
HashedId3 ::= OCTET STRING (SIZE(3))
|
||||
HashedId3 ::= OCTET STRING (SIZE(3))
|
||||
|
||||
SequenceOfHashedId3 ::= SEQUENCE OF HashedId3
|
||||
|
||||
HashedId8 ::= OCTET STRING (SIZE(8))
|
||||
|
||||
-- ------------------------------------------------------------------
|
||||
--
|
||||
-- Time
|
||||
--
|
||||
-- ------------------------------------------------------------------
|
||||
HashedId10 ::= OCTET STRING (SIZE(10))
|
||||
|
||||
HashedId32 ::= OCTET STRING (SIZE(32))
|
||||
|
||||
HashedId48 ::= OCTET STRING(SIZE(48))
|
||||
|
||||
|
||||
--***************************************************************************--
|
||||
-- Time Structures --
|
||||
--***************************************************************************--
|
||||
|
||||
Time32 ::= Uint32
|
||||
|
||||
Time64 ::= Uint64
|
||||
|
||||
ValidityPeriod ::= SEQUENCE {
|
||||
start Time32,
|
||||
duration Duration
|
||||
ValidityPeriod ::= SEQUENCE {
|
||||
start Time32,
|
||||
duration Duration
|
||||
}
|
||||
|
||||
Duration ::= CHOICE {
|
||||
microseconds Uint16,
|
||||
milliseconds Uint16,
|
||||
seconds Uint16,
|
||||
minutes Uint16,
|
||||
hours Uint16,
|
||||
sixtyHours Uint16,
|
||||
years Uint16
|
||||
Duration ::= CHOICE {
|
||||
microseconds Uint16,
|
||||
milliseconds Uint16,
|
||||
seconds Uint16,
|
||||
minutes Uint16,
|
||||
hours Uint16,
|
||||
sixtyHours Uint16,
|
||||
years Uint16
|
||||
}
|
||||
|
||||
-- ------------------------------------------------------------------
|
||||
--
|
||||
-- Location
|
||||
--
|
||||
-- ------------------------------------------------------------------
|
||||
|
||||
--***************************************************************************--
|
||||
-- Location Structures --
|
||||
--***************************************************************************--
|
||||
|
||||
GeographicRegion ::= CHOICE {
|
||||
circularRegion CircularRegion,
|
||||
rectangularRegion SequenceOfRectangularRegion,
|
||||
polygonalRegion PolygonalRegion,
|
||||
identifiedRegion SequenceOfIdentifiedRegion,
|
||||
...
|
||||
GeographicRegion ::= CHOICE {
|
||||
circularRegion CircularRegion,
|
||||
rectangularRegion SequenceOfRectangularRegion,
|
||||
polygonalRegion PolygonalRegion,
|
||||
identifiedRegion SequenceOfIdentifiedRegion,
|
||||
...
|
||||
}
|
||||
|
||||
CircularRegion ::= SEQUENCE {
|
||||
center TwoDLocation,
|
||||
radius Uint16
|
||||
CircularRegion ::= SEQUENCE {
|
||||
center TwoDLocation,
|
||||
radius Uint16
|
||||
}
|
||||
|
||||
RectangularRegion ::= SEQUENCE {
|
||||
northWest TwoDLocation,
|
||||
southEast TwoDLocation
|
||||
RectangularRegion ::= SEQUENCE {
|
||||
northWest TwoDLocation,
|
||||
southEast TwoDLocation
|
||||
}
|
||||
|
||||
SequenceOfRectangularRegion ::= SEQUENCE OF RectangularRegion
|
||||
|
||||
PolygonalRegion ::= SEQUENCE SIZE(3..MAX) OF TwoDLocation
|
||||
PolygonalRegion ::= SEQUENCE SIZE (3..MAX) OF TwoDLocation
|
||||
|
||||
TwoDLocation ::= SEQUENCE {
|
||||
latitude Latitude,
|
||||
longitude Longitude
|
||||
TwoDLocation ::= SEQUENCE {
|
||||
latitude Latitude,
|
||||
longitude Longitude
|
||||
}
|
||||
|
||||
IdentifiedRegion ::= CHOICE {
|
||||
countryOnly CountryOnly,
|
||||
countryAndRegions CountryAndRegions,
|
||||
countryAndSubregions CountryAndSubregions,
|
||||
...
|
||||
IdentifiedRegion ::= CHOICE {
|
||||
countryOnly UnCountryId,
|
||||
countryAndRegions CountryAndRegions,
|
||||
countryAndSubregions CountryAndSubregions,
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
SequenceOfIdentifiedRegion ::= SEQUENCE OF IdentifiedRegion
|
||||
|
||||
CountryOnly ::= Uint16
|
||||
UnCountryId ::= Uint16
|
||||
|
||||
CountryAndRegions ::= SEQUENCE {
|
||||
countryOnly CountryOnly,
|
||||
regions SequenceOfUint8
|
||||
CountryOnly ::= UnCountryId
|
||||
|
||||
CountryAndRegions ::= SEQUENCE {
|
||||
countryOnly UnCountryId,
|
||||
regions SequenceOfUint8
|
||||
}
|
||||
|
||||
CountryAndSubregions ::= SEQUENCE {
|
||||
country CountryOnly,
|
||||
regionAndSubregions SequenceOfRegionAndSubregions
|
||||
CountryAndSubregions ::= SEQUENCE {
|
||||
countryOnly UnCountryId,
|
||||
regionAndSubregions SequenceOfRegionAndSubregions
|
||||
}
|
||||
|
||||
RegionAndSubregions ::= SEQUENCE {
|
||||
region Uint8,
|
||||
subregions SequenceOfUint16
|
||||
RegionAndSubregions ::= SEQUENCE {
|
||||
region Uint8,
|
||||
subregions SequenceOfUint16
|
||||
}
|
||||
|
||||
SequenceOfRegionAndSubregions ::= SEQUENCE OF RegionAndSubregions
|
||||
|
||||
ThreeDLocation ::= SEQUENCE {
|
||||
latitude Latitude,
|
||||
longitude Longitude,
|
||||
elevation Elevation
|
||||
ThreeDLocation ::= SEQUENCE {
|
||||
latitude Latitude,
|
||||
longitude Longitude,
|
||||
elevation Elevation
|
||||
}
|
||||
|
||||
Latitude ::= NinetyDegreeInt
|
||||
Longitude ::= OneEightyDegreeInt
|
||||
Elevation ::= ElevInt
|
||||
|
||||
NinetyDegreeInt ::= INTEGER {
|
||||
min (-900000000),
|
||||
max (900000000),
|
||||
unknown (900000001)
|
||||
Longitude ::= OneEightyDegreeInt
|
||||
|
||||
Elevation ::= Uint16
|
||||
|
||||
NinetyDegreeInt ::= INTEGER {
|
||||
min (-900000000),
|
||||
max (900000000),
|
||||
unknown (900000001)
|
||||
} (-900000000..900000001)
|
||||
|
||||
KnownLatitude ::= NinetyDegreeInt (min..max) -- Minus 90deg to +90deg in microdegree intervals
|
||||
KnownLatitude ::= NinetyDegreeInt (min..max)
|
||||
|
||||
UnknownLatitude ::= NinetyDegreeInt (unknown)
|
||||
|
||||
OneEightyDegreeInt ::= INTEGER {
|
||||
min (-1799999999),
|
||||
max (1800000000),
|
||||
unknown (1800000001)
|
||||
|
||||
OneEightyDegreeInt ::= INTEGER {
|
||||
min (-1799999999),
|
||||
max (1800000000),
|
||||
unknown (1800000001)
|
||||
} (-1799999999..1800000001)
|
||||
|
||||
KnownLongitude ::= OneEightyDegreeInt (min..max)
|
||||
|
||||
UnknownLongitude ::= OneEightyDegreeInt (unknown)
|
||||
|
||||
ElevInt ::= Uint16 -- Range is from -4096 to 61439 in units of one-tenth of a meter
|
||||
|
||||
-- ------------------------------------------------------------------
|
||||
--
|
||||
-- Crypto
|
||||
--
|
||||
-- ------------------------------------------------------------------
|
||||
|
||||
Signature ::= CHOICE {
|
||||
ecdsaNistP256Signature EcdsaP256Signature,
|
||||
ecdsaBrainpoolP256r1Signature EcdsaP256Signature,
|
||||
...,
|
||||
ecdsaBrainpoolP384r1Signature EcdsaP384Signature
|
||||
--***************************************************************************--
|
||||
-- Crypto Structures --
|
||||
--***************************************************************************--
|
||||
|
||||
Signature ::= CHOICE {
|
||||
ecdsaNistP256Signature EcdsaP256Signature,
|
||||
ecdsaBrainpoolP256r1Signature EcdsaP256Signature,
|
||||
...,
|
||||
ecdsaBrainpoolP384r1Signature EcdsaP384Signature,
|
||||
ecdsaNistP384Signature EcdsaP384Signature,
|
||||
sm2Signature EcsigP256Signature
|
||||
}
|
||||
|
||||
EcdsaP256Signature ::= SEQUENCE {
|
||||
rSig EccP256CurvePoint,
|
||||
sSig OCTET STRING (SIZE (32))
|
||||
EcdsaP256Signature ::= SEQUENCE {
|
||||
rSig EccP256CurvePoint,
|
||||
sSig OCTET STRING (SIZE (32))
|
||||
}
|
||||
|
||||
EcdsaP384Signature ::= SEQUENCE {
|
||||
rSig EccP384CurvePoint,
|
||||
sSig OCTET STRING (SIZE (48))
|
||||
EcdsaP384Signature ::= SEQUENCE {
|
||||
rSig EccP384CurvePoint,
|
||||
sSig OCTET STRING (SIZE (48))
|
||||
}
|
||||
|
||||
EccP256CurvePoint ::= CHOICE {
|
||||
x-only OCTET STRING (SIZE (32)),
|
||||
fill NULL, -- consistency with 1363 / X9.62
|
||||
compressed-y-0 OCTET STRING (SIZE (32)),
|
||||
compressed-y-1 OCTET STRING (SIZE (32)),
|
||||
uncompressedP256 SEQUENCE {
|
||||
x OCTET STRING (SIZE (32)),
|
||||
y OCTET STRING (SIZE (32))
|
||||
}
|
||||
EcsigP256Signature ::= SEQUENCE {
|
||||
rSig OCTET STRING (SIZE (32)),
|
||||
sSig OCTET STRING (SIZE (32))
|
||||
}
|
||||
|
||||
EccP384CurvePoint::= CHOICE {
|
||||
x-only OCTET STRING (SIZE (48)),
|
||||
fill NULL, -- consistency w 1363 / X9.62
|
||||
compressed-y-0 OCTET STRING (SIZE (48)),
|
||||
compressed-y-1 OCTET STRING (SIZE (48)),
|
||||
uncompressedP384 SEQUENCE {
|
||||
x OCTET STRING (SIZE (48)),
|
||||
y OCTET STRING (SIZE (48))
|
||||
}
|
||||
EccP256CurvePoint::= CHOICE {
|
||||
x-only OCTET STRING (SIZE (32)),
|
||||
fill NULL,
|
||||
compressed-y-0 OCTET STRING (SIZE (32)),
|
||||
compressed-y-1 OCTET STRING (SIZE (32)),
|
||||
uncompressedP256 SEQUENCE {
|
||||
x OCTET STRING (SIZE (32)),
|
||||
y OCTET STRING (SIZE (32))
|
||||
}
|
||||
}
|
||||
|
||||
EccP384CurvePoint::= CHOICE {
|
||||
x-only OCTET STRING (SIZE (48)),
|
||||
fill NULL,
|
||||
compressed-y-0 OCTET STRING (SIZE (48)),
|
||||
compressed-y-1 OCTET STRING (SIZE (48)),
|
||||
uncompressedP384 SEQUENCE {
|
||||
x OCTET STRING (SIZE (48)),
|
||||
y OCTET STRING (SIZE (48))
|
||||
}
|
||||
}
|
||||
|
||||
SymmAlgorithm ::= ENUMERATED {
|
||||
aes128Ccm,
|
||||
...,
|
||||
sm4Ccm
|
||||
}
|
||||
|
||||
HashAlgorithm ::= ENUMERATED {
|
||||
sha256,
|
||||
...,
|
||||
sha384,
|
||||
sm3
|
||||
}
|
||||
|
||||
EciesP256EncryptedKey ::= SEQUENCE {
|
||||
v EccP256CurvePoint,
|
||||
c OCTET STRING (SIZE (16)),
|
||||
t OCTET STRING (SIZE (16))
|
||||
}
|
||||
|
||||
EcencP256EncryptedKey ::= SEQUENCE {
|
||||
v EccP256CurvePoint,
|
||||
c OCTET STRING (SIZE (16)),
|
||||
t OCTET STRING (SIZE (32))
|
||||
}
|
||||
|
||||
|
||||
SymmAlgorithm ::= ENUMERATED {
|
||||
aes128Ccm,
|
||||
...
|
||||
EncryptionKey ::= CHOICE {
|
||||
public PublicEncryptionKey,
|
||||
symmetric SymmetricEncryptionKey
|
||||
}
|
||||
|
||||
HashAlgorithm ::= ENUMERATED {
|
||||
sha256,
|
||||
...,
|
||||
sha384
|
||||
PublicEncryptionKey ::= SEQUENCE {
|
||||
supportedSymmAlg SymmAlgorithm,
|
||||
publicKey BasePublicEncryptionKey
|
||||
}
|
||||
|
||||
EciesP256EncryptedKey ::= SEQUENCE {
|
||||
v EccP256CurvePoint,
|
||||
c OCTET STRING (SIZE (16)),
|
||||
t OCTET STRING (SIZE (16))
|
||||
BasePublicEncryptionKey ::= CHOICE {
|
||||
eciesNistP256 EccP256CurvePoint,
|
||||
eciesBrainpoolP256r1 EccP256CurvePoint,
|
||||
...,
|
||||
ecencSm2 EccP256CurvePoint
|
||||
}
|
||||
|
||||
EncryptionKey ::= CHOICE {
|
||||
public PublicEncryptionKey,
|
||||
symmetric SymmetricEncryptionKey
|
||||
PublicVerificationKey ::= CHOICE {
|
||||
ecdsaNistP256 EccP256CurvePoint,
|
||||
ecdsaBrainpoolP256r1 EccP256CurvePoint,
|
||||
... ,
|
||||
ecdsaBrainpoolP384r1 EccP384CurvePoint,
|
||||
ecdsaNistP384 EccP384CurvePoint,
|
||||
ecsigSm2 EccP256CurvePoint
|
||||
}
|
||||
|
||||
PublicEncryptionKey ::= SEQUENCE {
|
||||
supportedSymmAlg SymmAlgorithm,
|
||||
publicKey BasePublicEncryptionKey
|
||||
SymmetricEncryptionKey ::= CHOICE {
|
||||
aes128Ccm OCTET STRING(SIZE(16)),
|
||||
...,
|
||||
sm4Ccm OCTET STRING(SIZE(16))
|
||||
}
|
||||
|
||||
BasePublicEncryptionKey ::= CHOICE {
|
||||
eciesNistP256 EccP256CurvePoint,
|
||||
eciesBrainpoolP256r1 EccP256CurvePoint,
|
||||
...
|
||||
}
|
||||
|
||||
PublicVerificationKey ::= CHOICE {
|
||||
ecdsaNistP256 EccP256CurvePoint,
|
||||
ecdsaBrainpoolP256r1 EccP256CurvePoint,
|
||||
...,
|
||||
ecdsaBrainpoolP384r1 EccP384CurvePoint
|
||||
}
|
||||
--***************************************************************************--
|
||||
-- PSID / ITS-AID --
|
||||
--***************************************************************************--
|
||||
|
||||
SymmetricEncryptionKey ::= CHOICE {
|
||||
aes128Ccm OCTET STRING(SIZE(16)),
|
||||
...
|
||||
}
|
||||
|
||||
-- ------------------------------------------------------------------
|
||||
--
|
||||
-- PSID / ITS-AID
|
||||
--
|
||||
-- ------------------------------------------------------------------
|
||||
|
||||
|
||||
PsidSsp ::= SEQUENCE {
|
||||
psid Psid,
|
||||
ssp ServiceSpecificPermissions OPTIONAL
|
||||
PsidSsp ::= SEQUENCE {
|
||||
psid Psid,
|
||||
ssp ServiceSpecificPermissions OPTIONAL
|
||||
}
|
||||
|
||||
SequenceOfPsidSsp ::= SEQUENCE OF PsidSsp
|
||||
@ -272,64 +289,90 @@ Psid ::= INTEGER (0..MAX)
|
||||
|
||||
SequenceOfPsid ::= SEQUENCE OF Psid
|
||||
|
||||
ServiceSpecificPermissions ::= CHOICE {
|
||||
opaque OCTET STRING (SIZE(0..MAX)),
|
||||
...,
|
||||
bitmapSsp BitmapSsp
|
||||
ServiceSpecificPermissions ::= CHOICE {
|
||||
opaque OCTET STRING (SIZE(0..MAX)),
|
||||
...,
|
||||
bitmapSsp BitmapSsp
|
||||
}
|
||||
|
||||
BitmapSsp ::= OCTET STRING (SIZE(0..31))
|
||||
|
||||
PsidSspRange ::= SEQUENCE {
|
||||
psid Psid,
|
||||
sspRange SspRange OPTIONAL
|
||||
PsidSspRange ::= SEQUENCE {
|
||||
psid Psid,
|
||||
sspRange SspRange OPTIONAL
|
||||
}
|
||||
|
||||
SequenceOfPsidSspRange ::= SEQUENCE OF PsidSspRange
|
||||
|
||||
SspRange ::= CHOICE {
|
||||
opaque SequenceOfOctetString,
|
||||
all NULL,
|
||||
... ,
|
||||
bitmapSspRange BitmapSspRange
|
||||
}
|
||||
|
||||
BitmapSspRange ::= SEQUENCE {
|
||||
sspValue OCTET STRING (SIZE(1..32)),
|
||||
sspBitmask OCTET STRING (SIZE(1..32))
|
||||
SspRange ::= CHOICE {
|
||||
opaque SequenceOfOctetString,
|
||||
all NULL,
|
||||
...,
|
||||
bitmapSspRange BitmapSspRange
|
||||
}
|
||||
|
||||
SequenceOfOctetString ::= SEQUENCE (SIZE (0..MAX)) OF
|
||||
OCTET STRING (SIZE(0..MAX))
|
||||
BitmapSspRange ::= SEQUENCE {
|
||||
sspValue OCTET STRING (SIZE(1..32)),
|
||||
sspBitmask OCTET STRING (SIZE(1..32))
|
||||
}
|
||||
|
||||
SequenceOfOctetString ::=
|
||||
SEQUENCE (SIZE (0..MAX)) OF OCTET STRING (SIZE(0..MAX))
|
||||
|
||||
|
||||
-- ------------------------------------------------------------------
|
||||
--
|
||||
-- Goes in certs
|
||||
--
|
||||
-- ------------------------------------------------------------------
|
||||
--***************************************************************************--
|
||||
-- Certificate Components --
|
||||
--***************************************************************************--
|
||||
|
||||
SubjectAssurance ::= OCTET STRING (SIZE(1))
|
||||
|
||||
CrlSeries ::= Uint16
|
||||
|
||||
|
||||
-- ------------------------------------------------------------------
|
||||
--
|
||||
-- Pseudonym Linkage
|
||||
--
|
||||
-- ------------------------------------------------------------------
|
||||
|
||||
--***************************************************************************--
|
||||
-- Pseudonym Linkage --
|
||||
--***************************************************************************--
|
||||
|
||||
IValue ::= Uint16
|
||||
|
||||
Hostname ::= UTF8String (SIZE(0..255))
|
||||
|
||||
LinkageValue ::= OCTET STRING (SIZE(9))
|
||||
GroupLinkageValue ::= SEQUENCE {
|
||||
jValue OCTET STRING (SIZE(4)),
|
||||
value OCTET STRING (SIZE(9))
|
||||
|
||||
GroupLinkageValue ::= SEQUENCE {
|
||||
jValue OCTET STRING (SIZE(4)),
|
||||
value OCTET STRING (SIZE(9))
|
||||
}
|
||||
|
||||
LaId ::= OCTET STRING (SIZE(2))
|
||||
|
||||
LaId ::= OCTET STRING (SIZE(2))
|
||||
|
||||
SequenceOfLinkageSeed ::= SEQUENCE OF LinkageSeed
|
||||
|
||||
LinkageSeed ::= OCTET STRING (SIZE(16))
|
||||
|
||||
END
|
||||
--***************************************************************************--
|
||||
-- Information Object Classes and Sets --
|
||||
--***************************************************************************--
|
||||
|
||||
CERT-EXT-TYPE ::= CLASS {
|
||||
&id ExtId,
|
||||
&App,
|
||||
&Issue,
|
||||
&Req
|
||||
} WITH SYNTAX {ID &id APP &App ISSUE &Issue REQUEST &Req}
|
||||
|
||||
EXT-TYPE ::= CLASS {
|
||||
&extId ExtId,
|
||||
&ExtContent
|
||||
} WITH SYNTAX {&ExtContent IDENTIFIED BY &extId}
|
||||
|
||||
Extension {EXT-TYPE : ExtensionTypes} ::= SEQUENCE {
|
||||
id EXT-TYPE.&extId({ExtensionTypes}),
|
||||
content EXT-TYPE.&ExtContent({ExtensionTypes}{@.id})
|
||||
}
|
||||
|
||||
|
||||
ExtId ::= INTEGER(0..255)
|
||||
|
||||
|
||||
END
|
||||
|
418
epan/dissectors/asn1/ieee1609dot2/Ieee1609Dot2.asn
Normal file
418
epan/dissectors/asn1/ieee1609dot2/Ieee1609Dot2.asn
Normal file
@ -0,0 +1,418 @@
|
||||
--***************************************************************************--
|
||||
-- IEEE Std 1609.2 --
|
||||
--***************************************************************************--
|
||||
|
||||
Ieee1609Dot2 {iso(1) identified-organization(3) ieee(111)
|
||||
standards-association-numbered-series-standards(2) wave-stds(1609)
|
||||
dot2(2) base(1) schema(1) major-version-2(2) minor-version-6(6)}
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::= BEGIN
|
||||
|
||||
IMPORTS
|
||||
CERT-EXT-TYPE,
|
||||
CrlSeries,
|
||||
EccP256CurvePoint,
|
||||
EcencP256EncryptedKey,
|
||||
EciesP256EncryptedKey,
|
||||
EncryptionKey,
|
||||
EXT-TYPE,
|
||||
Extension,
|
||||
ExtId,
|
||||
GeographicRegion,
|
||||
GroupLinkageValue,
|
||||
HashAlgorithm,
|
||||
HashedId3,
|
||||
HashedId8,
|
||||
HashedId32,
|
||||
HashedId48,
|
||||
Hostname,
|
||||
IValue,
|
||||
LinkageValue,
|
||||
Opaque,
|
||||
Psid,
|
||||
PsidSsp,
|
||||
PsidSspRange,
|
||||
PublicEncryptionKey,
|
||||
PublicVerificationKey,
|
||||
SequenceOfHashedId3,
|
||||
SequenceOfPsidSsp,
|
||||
SequenceOfPsidSspRange,
|
||||
ServiceSpecificPermissions,
|
||||
Signature,
|
||||
SubjectAssurance,
|
||||
SymmetricEncryptionKey,
|
||||
ThreeDLocation,
|
||||
Time64,
|
||||
Uint3,
|
||||
Uint8,
|
||||
Uint16,
|
||||
Uint32,
|
||||
ValidityPeriod
|
||||
FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111)
|
||||
standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2)
|
||||
base(1) base-types(2) major-version-2(2) minor-version-4(4)}
|
||||
--WITH SUCCESSORS
|
||||
|
||||
EtsiOriginatingHeaderInfoExtension
|
||||
FROM EtsiTs103097ExtensionModule {itu-t(0) identified-organization(4) etsi(0)
|
||||
itsDomain(5) wg5(5) secHeaders(103097) extension(2) major-version-1(1)
|
||||
minor-version-0(0)}
|
||||
--WITH SUCCESSORS
|
||||
;
|
||||
|
||||
--***************************************************************************--
|
||||
-- Secured Data --
|
||||
--***************************************************************************--
|
||||
|
||||
Ieee1609Dot2Data ::= SEQUENCE {
|
||||
protocolVersion Uint8(3),
|
||||
content Ieee1609Dot2Content
|
||||
}
|
||||
|
||||
Ieee1609Dot2Content ::= CHOICE {
|
||||
unsecuredData Opaque,
|
||||
signedData SignedData,
|
||||
encryptedData EncryptedData,
|
||||
signedCertificateRequest Opaque,
|
||||
...,
|
||||
signedX509CertificateRequest Opaque
|
||||
}
|
||||
|
||||
SignedData ::= SEQUENCE {
|
||||
hashId HashAlgorithm,
|
||||
tbsData ToBeSignedData,
|
||||
signer SignerIdentifier,
|
||||
signature Signature
|
||||
}
|
||||
|
||||
ToBeSignedData ::= SEQUENCE {
|
||||
payload SignedDataPayload,
|
||||
headerInfo HeaderInfo
|
||||
}
|
||||
|
||||
SignedDataPayload ::= SEQUENCE {
|
||||
data Ieee1609Dot2Data OPTIONAL,
|
||||
extDataHash HashedData OPTIONAL,
|
||||
...,
|
||||
omitted NULL OPTIONAL
|
||||
} (WITH COMPONENTS {..., data PRESENT} |
|
||||
WITH COMPONENTS {..., extDataHash PRESENT} |
|
||||
WITH COMPONENTS {..., omitted PRESENT})
|
||||
|
||||
|
||||
HashedData::= CHOICE {
|
||||
sha256HashedData HashedId32,
|
||||
...,
|
||||
sha384HashedData HashedId48,
|
||||
sm3HashedData HashedId32
|
||||
}
|
||||
|
||||
HeaderInfo ::= SEQUENCE {
|
||||
psid Psid,
|
||||
generationTime Time64 OPTIONAL,
|
||||
expiryTime Time64 OPTIONAL,
|
||||
generationLocation ThreeDLocation OPTIONAL,
|
||||
p2pcdLearningRequest HashedId3 OPTIONAL,
|
||||
missingCrlIdentifier MissingCrlIdentifier OPTIONAL,
|
||||
encryptionKey EncryptionKey OPTIONAL,
|
||||
...,
|
||||
inlineP2pcdRequest SequenceOfHashedId3 OPTIONAL,
|
||||
requestedCertificate Certificate OPTIONAL,
|
||||
pduFunctionalType PduFunctionalType OPTIONAL,
|
||||
contributedExtensions ContributedExtensionBlocks OPTIONAL
|
||||
}
|
||||
|
||||
MissingCrlIdentifier ::= SEQUENCE {
|
||||
cracaId HashedId3,
|
||||
crlSeries CrlSeries,
|
||||
...
|
||||
}
|
||||
|
||||
PduFunctionalType ::= INTEGER (0..255)
|
||||
|
||||
tlsHandshake PduFunctionalType ::= 1
|
||||
iso21177ExtendedAuth PduFunctionalType ::= 2
|
||||
iso21177SessionExtension PduFunctionalType ::= 3
|
||||
|
||||
|
||||
ContributedExtensionBlocks ::= SEQUENCE (SIZE(1..MAX)) OF
|
||||
ContributedExtensionBlock
|
||||
|
||||
IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION ::= CLASS {
|
||||
&id HeaderInfoContributorId UNIQUE,
|
||||
&Extn
|
||||
} WITH SYNTAX {&Extn IDENTIFIED BY &id}
|
||||
|
||||
ContributedExtensionBlock ::= SEQUENCE {
|
||||
contributorId IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION.&id({
|
||||
Ieee1609Dot2HeaderInfoContributedExtensions
|
||||
}),
|
||||
extns SEQUENCE (SIZE(1..MAX)) OF
|
||||
IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION.&Extn({
|
||||
Ieee1609Dot2HeaderInfoContributedExtensions
|
||||
}{@.contributorId})
|
||||
}
|
||||
|
||||
|
||||
Ieee1609Dot2HeaderInfoContributedExtensions
|
||||
IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION ::= {
|
||||
{Ieee1609ContributedHeaderInfoExtension IDENTIFIED BY
|
||||
ieee1609HeaderInfoContributorId} |
|
||||
{EtsiOriginatingHeaderInfoExtension IDENTIFIED BY
|
||||
etsiHeaderInfoContributorId},
|
||||
...
|
||||
}
|
||||
|
||||
HeaderInfoContributorId ::= INTEGER (0..255)
|
||||
|
||||
ieee1609HeaderInfoContributorId HeaderInfoContributorId ::= 1
|
||||
etsiHeaderInfoContributorId HeaderInfoContributorId ::= 2
|
||||
|
||||
|
||||
SignerIdentifier ::= CHOICE {
|
||||
digest HashedId8,
|
||||
certificate SequenceOfCertificate,
|
||||
self NULL,
|
||||
...
|
||||
}
|
||||
|
||||
Countersignature ::= Ieee1609Dot2Data (WITH COMPONENTS {...,
|
||||
content (WITH COMPONENTS {...,
|
||||
signedData (WITH COMPONENTS {...,
|
||||
tbsData (WITH COMPONENTS {...,
|
||||
payload (WITH COMPONENTS {...,
|
||||
data ABSENT,
|
||||
extDataHash PRESENT
|
||||
}),
|
||||
headerInfo(WITH COMPONENTS {...,
|
||||
generationTime PRESENT,
|
||||
expiryTime ABSENT,
|
||||
generationLocation ABSENT,
|
||||
p2pcdLearningRequest ABSENT,
|
||||
missingCrlIdentifier ABSENT,
|
||||
encryptionKey ABSENT
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
--***************************************************************************--
|
||||
-- Encrypted Data --
|
||||
--***************************************************************************--
|
||||
|
||||
EncryptedData ::= SEQUENCE {
|
||||
recipients SequenceOfRecipientInfo,
|
||||
ciphertext SymmetricCiphertext
|
||||
}
|
||||
|
||||
RecipientInfo ::= CHOICE {
|
||||
pskRecipInfo PreSharedKeyRecipientInfo,
|
||||
symmRecipInfo SymmRecipientInfo,
|
||||
certRecipInfo PKRecipientInfo,
|
||||
signedDataRecipInfo PKRecipientInfo,
|
||||
rekRecipInfo PKRecipientInfo
|
||||
}
|
||||
|
||||
SequenceOfRecipientInfo ::= SEQUENCE OF RecipientInfo
|
||||
|
||||
PreSharedKeyRecipientInfo ::= HashedId8
|
||||
|
||||
SymmRecipientInfo ::= SEQUENCE {
|
||||
recipientId HashedId8,
|
||||
encKey SymmetricCiphertext
|
||||
}
|
||||
|
||||
PKRecipientInfo ::= SEQUENCE {
|
||||
recipientId HashedId8,
|
||||
encKey EncryptedDataEncryptionKey
|
||||
}
|
||||
|
||||
EncryptedDataEncryptionKey ::= CHOICE {
|
||||
eciesNistP256 EciesP256EncryptedKey,
|
||||
eciesBrainpoolP256r1 EciesP256EncryptedKey,
|
||||
...,
|
||||
ecencSm2256 EcencP256EncryptedKey
|
||||
}
|
||||
|
||||
SymmetricCiphertext ::= CHOICE {
|
||||
aes128ccm One28BitCcmCiphertext,
|
||||
...,
|
||||
sm4Ccm One28BitCcmCiphertext
|
||||
}
|
||||
|
||||
One28BitCcmCiphertext ::= SEQUENCE {
|
||||
nonce OCTET STRING (SIZE (12)),
|
||||
ccmCiphertext Opaque
|
||||
}
|
||||
|
||||
Aes128CcmCiphertext ::= One28BitCcmCiphertext
|
||||
|
||||
--***************************************************************************--
|
||||
-- Certificates and other Security Management --
|
||||
--***************************************************************************--
|
||||
|
||||
Certificate ::=
|
||||
CertificateBase (ImplicitCertificate | ExplicitCertificate)
|
||||
|
||||
TestCertificate ::= Certificate
|
||||
|
||||
SequenceOfCertificate ::= SEQUENCE OF Certificate
|
||||
|
||||
CertificateBase ::= SEQUENCE {
|
||||
version Uint8(3),
|
||||
type CertificateType,
|
||||
issuer IssuerIdentifier,
|
||||
toBeSigned ToBeSignedCertificate,
|
||||
signature Signature OPTIONAL
|
||||
}
|
||||
|
||||
CertificateType ::= ENUMERATED {
|
||||
explicit,
|
||||
implicit,
|
||||
...
|
||||
}
|
||||
|
||||
ImplicitCertificate ::= CertificateBase (WITH COMPONENTS {...,
|
||||
type(implicit),
|
||||
toBeSigned(WITH COMPONENTS {...,
|
||||
verifyKeyIndicator(WITH COMPONENTS {reconstructionValue})
|
||||
}),
|
||||
signature ABSENT
|
||||
})
|
||||
|
||||
ExplicitCertificate ::= CertificateBase (WITH COMPONENTS {...,
|
||||
type(explicit),
|
||||
toBeSigned (WITH COMPONENTS {...,
|
||||
verifyKeyIndicator(WITH COMPONENTS {verificationKey})
|
||||
}),
|
||||
signature PRESENT
|
||||
})
|
||||
|
||||
IssuerIdentifier ::= CHOICE {
|
||||
sha256AndDigest HashedId8,
|
||||
self HashAlgorithm,
|
||||
...,
|
||||
sha384AndDigest HashedId8,
|
||||
sm3AndDigest HashedId8
|
||||
}
|
||||
|
||||
ToBeSignedCertificate ::= SEQUENCE {
|
||||
id CertificateId,
|
||||
cracaId HashedId3,
|
||||
crlSeries CrlSeries,
|
||||
validityPeriod ValidityPeriod,
|
||||
region GeographicRegion OPTIONAL,
|
||||
assuranceLevel SubjectAssurance OPTIONAL,
|
||||
appPermissions SequenceOfPsidSsp OPTIONAL,
|
||||
certIssuePermissions SequenceOfPsidGroupPermissions OPTIONAL,
|
||||
certRequestPermissions SequenceOfPsidGroupPermissions OPTIONAL,
|
||||
canRequestRollover NULL OPTIONAL,
|
||||
encryptionKey PublicEncryptionKey OPTIONAL,
|
||||
verifyKeyIndicator VerificationKeyIndicator,
|
||||
...,
|
||||
flags BIT STRING {usesCubk (0)} (SIZE (8)) OPTIONAL,
|
||||
appExtensions SequenceOfAppExtensions,
|
||||
certIssueExtensions SequenceOfCertIssueExtensions,
|
||||
certRequestExtension SequenceOfCertRequestExtensions
|
||||
}
|
||||
(WITH COMPONENTS { ..., appPermissions PRESENT} |
|
||||
WITH COMPONENTS { ..., certIssuePermissions PRESENT} |
|
||||
WITH COMPONENTS { ..., certRequestPermissions PRESENT})
|
||||
|
||||
CertificateId ::= CHOICE {
|
||||
linkageData LinkageData,
|
||||
name Hostname,
|
||||
binaryId OCTET STRING(SIZE(1..64)),
|
||||
none NULL,
|
||||
...
|
||||
}
|
||||
|
||||
LinkageData ::= SEQUENCE {
|
||||
iCert IValue,
|
||||
linkage-value LinkageValue,
|
||||
group-linkage-value GroupLinkageValue OPTIONAL
|
||||
}
|
||||
|
||||
EndEntityType ::=
|
||||
BIT STRING {app (0), enrol (1) } (SIZE (8)) --(ALL EXCEPT {})
|
||||
|
||||
PsidGroupPermissions ::= SEQUENCE {
|
||||
subjectPermissions SubjectPermissions,
|
||||
minChainLength INTEGER DEFAULT 1,
|
||||
chainLengthRange INTEGER DEFAULT 0,
|
||||
eeType EndEntityType DEFAULT {app}
|
||||
}
|
||||
|
||||
SequenceOfPsidGroupPermissions ::= SEQUENCE OF PsidGroupPermissions
|
||||
|
||||
SubjectPermissions ::= CHOICE {
|
||||
explicit SequenceOfPsidSspRange,
|
||||
all NULL,
|
||||
...
|
||||
}
|
||||
|
||||
VerificationKeyIndicator ::= CHOICE {
|
||||
verificationKey PublicVerificationKey,
|
||||
reconstructionValue EccP256CurvePoint,
|
||||
...
|
||||
}
|
||||
|
||||
Ieee1609ContributedHeaderInfoExtension ::=
|
||||
Extension{{Ieee1609HeaderInfoExtensions}}
|
||||
|
||||
Ieee1609HeaderInfoExtensionId ::= ExtId
|
||||
|
||||
p2pcd8ByteLearningRequestId Ieee1609HeaderInfoExtensionId ::= 1
|
||||
|
||||
Ieee1609HeaderInfoExtensions EXT-TYPE ::= {
|
||||
{HashedId8 IDENTIFIED BY p2pcd8ByteLearningRequestId},
|
||||
...
|
||||
}
|
||||
|
||||
SequenceOfAppExtensions ::= SEQUENCE (SIZE(1..MAX)) OF AppExtension
|
||||
|
||||
SetCertExtensions CERT-EXT-TYPE ::= {
|
||||
instanceOperatingOrganizationCertExtensions,
|
||||
...
|
||||
}
|
||||
|
||||
AppExtension ::= SEQUENCE {
|
||||
id CERT-EXT-TYPE.&id({SetCertExtensions}),
|
||||
content CERT-EXT-TYPE.&App({SetCertExtensions}{@.id})
|
||||
}
|
||||
|
||||
SequenceOfCertIssueExtensions ::=
|
||||
SEQUENCE (SIZE(1..MAX)) OF CertIssueExtension
|
||||
|
||||
CertIssueExtension ::= SEQUENCE {
|
||||
id CERT-EXT-TYPE.&id({SetCertExtensions}),
|
||||
permissions CHOICE {
|
||||
specific CERT-EXT-TYPE.&Issue({SetCertExtensions}{@.id}),
|
||||
all NULL
|
||||
}
|
||||
}
|
||||
|
||||
SequenceOfCertRequestExtensions ::= SEQUENCE (SIZE(1..MAX)) OF CertRequestExtension
|
||||
|
||||
CertRequestExtension ::= SEQUENCE {
|
||||
id CERT-EXT-TYPE.&id({SetCertExtensions}),
|
||||
permissions CHOICE {
|
||||
content CERT-EXT-TYPE.&Req({SetCertExtensions}{@.id}),
|
||||
all NULL
|
||||
}
|
||||
}
|
||||
|
||||
OperatingOrganizationId ::= OBJECT IDENTIFIER
|
||||
|
||||
certExtId-OperatingOrganization ExtId ::= 1
|
||||
|
||||
instanceOperatingOrganizationCertExtensions CERT-EXT-TYPE ::= {
|
||||
ID certExtId-OperatingOrganization
|
||||
APP OperatingOrganizationId
|
||||
ISSUE NULL
|
||||
REQUEST NULL
|
||||
}
|
||||
|
||||
END
|
90
epan/dissectors/asn1/ieee1609dot2/Ieee1609Dot2Crl.asn
Normal file
90
epan/dissectors/asn1/ieee1609dot2/Ieee1609Dot2Crl.asn
Normal file
@ -0,0 +1,90 @@
|
||||
--***************************************************************************--
|
||||
-- IEEE Std 1609.2: CRL Data Types --
|
||||
--***************************************************************************--
|
||||
|
||||
Ieee1609Dot2Crl {iso(1) identified-organization(3) ieee(111)
|
||||
standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2)
|
||||
crl(3) major-version-3(3) minor-version-2(2)}
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::= BEGIN
|
||||
|
||||
IMPORTS
|
||||
Ieee1609Dot2Data
|
||||
FROM Ieee1609Dot2 {iso(1) identified-organization(3) ieee(111)
|
||||
standards-association-numbered-series-standards(2) wave-stds(1609)
|
||||
dot2(2) base(1) schema(1) major-version-2(2) minor-version-6(6)}
|
||||
--WITH SUCCESSORS
|
||||
|
||||
Opaque,
|
||||
Psid
|
||||
FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111)
|
||||
standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2)
|
||||
base(1) base-types(2) major-version-2(2) minor-version-4(4)}
|
||||
--WITH SUCCESSORS
|
||||
|
||||
CrlContents
|
||||
FROM Ieee1609Dot2CrlBaseTypes {iso(1) identified-organization(3) ieee(111)
|
||||
standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2)
|
||||
crl(3) base-types(2) major-version-3(3) minor-version-2(2)}
|
||||
--WITH SUCCESSORS
|
||||
;
|
||||
|
||||
CrlPsid ::= Psid(256)
|
||||
|
||||
--SecuredCrl ::= Ieee1609Dot2Data (WITH COMPONENTS {...,
|
||||
-- content (WITH COMPONENTS {
|
||||
-- signedData (WITH COMPONENTS {...,
|
||||
-- tbsData (WITH COMPONENTS {
|
||||
-- payload (WITH COMPONENTS {...,
|
||||
-- data (WITH COMPONENTS {...,
|
||||
-- content (WITH COMPONENTS {
|
||||
-- unsecuredData (CONTAINING CrlContents)
|
||||
-- })
|
||||
-- })
|
||||
-- }),
|
||||
-- headerInfo (WITH COMPONENTS {...,
|
||||
-- psid (CrlPsid),
|
||||
-- generationTime ABSENT,
|
||||
-- expiryTime ABSENT,
|
||||
-- generationLocation ABSENT,
|
||||
-- p2pcdLearningRequest ABSENT,
|
||||
-- missingCrlIdentifier ABSENT,
|
||||
-- encryptionKey ABSENT
|
||||
-- })
|
||||
-- })
|
||||
-- })
|
||||
-- })
|
||||
--})
|
||||
|
||||
|
||||
SecuredCrl ::= SEQUENCE {
|
||||
content SecuredCrlContent
|
||||
}
|
||||
|
||||
-- content
|
||||
SecuredCrlContent ::= CHOICE {
|
||||
signedData CrlSignedData
|
||||
}
|
||||
|
||||
CrlSignedData ::= SEQUENCE {
|
||||
tbsData CrlToBeSignedData
|
||||
}
|
||||
|
||||
CrlToBeSignedData ::= SEQUENCE {
|
||||
payload CrlSignedDataPayload,
|
||||
headerInfo HeaderInfo
|
||||
}
|
||||
|
||||
CrlSignedDataPayload ::= SEQUENCE {
|
||||
data Ieee1609Dot2CrlData OPTIONAL
|
||||
}
|
||||
|
||||
Ieee1609Dot2CrlData ::= SEQUENCE {
|
||||
content Ieee1609Dot2CrlContent
|
||||
}
|
||||
|
||||
Ieee1609Dot2CrlContent ::= CHOICE {
|
||||
unsecuredData CrlContents
|
||||
}
|
||||
|
||||
END
|
165
epan/dissectors/asn1/ieee1609dot2/Ieee1609Dot2CrlBaseTypes.asn
Normal file
165
epan/dissectors/asn1/ieee1609dot2/Ieee1609Dot2CrlBaseTypes.asn
Normal file
@ -0,0 +1,165 @@
|
||||
--***************************************************************************--
|
||||
-- IEEE Std 1609.2: CRL Base Data Types --
|
||||
--***************************************************************************--
|
||||
|
||||
Ieee1609Dot2CrlBaseTypes {iso(1) identified-organization(3) ieee(111)
|
||||
standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2)
|
||||
crl(3) base-types(2) major-version-3(3) minor-version-2(2)}
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::= BEGIN
|
||||
|
||||
IMPORTS
|
||||
CrlSeries,
|
||||
Duration,
|
||||
GeographicRegion,
|
||||
HashedId8,
|
||||
HashedId10,
|
||||
IValue,
|
||||
LaId,
|
||||
LinkageSeed,
|
||||
Opaque,
|
||||
Psid,
|
||||
SequenceOfLinkageSeed,
|
||||
Signature,
|
||||
Time32,
|
||||
Uint3,
|
||||
Uint8,
|
||||
Uint16,
|
||||
Uint32,
|
||||
ValidityPeriod
|
||||
FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111)
|
||||
standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2)
|
||||
base(1) base-types(2) major-version-2(2) minor-version-4(4)}
|
||||
--WITH SUCCESSORS
|
||||
;
|
||||
|
||||
CrlContents ::= SEQUENCE {
|
||||
version Uint8 (1),
|
||||
crlSeries CrlSeries,
|
||||
crlCraca HashedId8,
|
||||
issueDate Time32,
|
||||
nextCrl Time32,
|
||||
priorityInfo CrlPriorityInfo,
|
||||
typeSpecific TypeSpecificCrlContents
|
||||
}
|
||||
|
||||
CrlPriorityInfo ::= SEQUENCE {
|
||||
priority Uint8 OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
TypeSpecificCrlContents ::= CHOICE {
|
||||
fullHashCrl ToBeSignedHashIdCrl,
|
||||
deltaHashCrl ToBeSignedHashIdCrl,
|
||||
fullLinkedCrl ToBeSignedLinkageValueCrl,
|
||||
deltaLinkedCrl ToBeSignedLinkageValueCrl,
|
||||
...,
|
||||
fullLinkedCrlWithAlg ToBeSignedLinkageValueCrlWithAlgIdentifier,
|
||||
deltaLinkedCrlWithAlg ToBeSignedLinkageValueCrlWithAlgIdentifier
|
||||
}
|
||||
|
||||
ToBeSignedHashIdCrl ::= SEQUENCE {
|
||||
crlSerial Uint32,
|
||||
entries SequenceOfHashBasedRevocationInfo,
|
||||
...
|
||||
}
|
||||
|
||||
SequenceOfHashBasedRevocationInfo ::=
|
||||
SEQUENCE OF HashBasedRevocationInfo
|
||||
|
||||
HashBasedRevocationInfo ::= SEQUENCE {
|
||||
id HashedId10,
|
||||
expiry Time32,
|
||||
...
|
||||
}
|
||||
|
||||
ToBeSignedLinkageValueCrl ::= SEQUENCE {
|
||||
iRev IValue,
|
||||
indexWithinI Uint8,
|
||||
individual SequenceOfJMaxGroup OPTIONAL,
|
||||
groups SequenceOfGroupCrlEntry OPTIONAL,
|
||||
...,
|
||||
groupsSingleSeed SequenceOfGroupSingleSeedCrlEntry OPTIONAL
|
||||
} (WITH COMPONENTS {..., individual PRESENT} |
|
||||
WITH COMPONENTS {..., groups PRESENT} |
|
||||
WITH COMPONENTS {..., groupsSingleSeed PRESENT})
|
||||
|
||||
SequenceOfJMaxGroup ::= SEQUENCE OF JMaxGroup
|
||||
|
||||
JMaxGroup ::= SEQUENCE {
|
||||
jmax Uint8,
|
||||
contents SequenceOfLAGroup,
|
||||
...
|
||||
}
|
||||
|
||||
SequenceOfLAGroup ::= SEQUENCE OF LAGroup
|
||||
|
||||
LAGroup ::= SEQUENCE {
|
||||
la1Id LaId,
|
||||
la2Id LaId,
|
||||
contents SequenceOfIMaxGroup,
|
||||
...
|
||||
}
|
||||
|
||||
SequenceOfIMaxGroup ::= SEQUENCE OF IMaxGroup
|
||||
|
||||
IMaxGroup ::= SEQUENCE {
|
||||
iMax Uint16,
|
||||
contents SequenceOfIndividualRevocation,
|
||||
...,
|
||||
singleSeed SequenceOfLinkageSeed OPTIONAL
|
||||
}
|
||||
|
||||
SequenceOfIndividualRevocation ::=
|
||||
SEQUENCE (SIZE(0..MAX)) OF IndividualRevocation
|
||||
|
||||
IndividualRevocation ::= SEQUENCE {
|
||||
linkageSeed1 LinkageSeed,
|
||||
linkageSeed2 LinkageSeed,
|
||||
...
|
||||
}
|
||||
|
||||
SequenceOfGroupCrlEntry ::= SEQUENCE OF GroupCrlEntry
|
||||
|
||||
GroupCrlEntry ::= SEQUENCE {
|
||||
iMax Uint16,
|
||||
la1Id LaId,
|
||||
linkageSeed1 LinkageSeed,
|
||||
la2Id LaId,
|
||||
linkageSeed2 LinkageSeed,
|
||||
...
|
||||
}
|
||||
|
||||
ToBeSignedLinkageValueCrlWithAlgIdentifier ::= SEQUENCE {
|
||||
iRev IValue,
|
||||
indexWithinI Uint8,
|
||||
seedEvolution SeedEvolutionFunctionIdentifier,
|
||||
lvGeneration LvGenerationFunctionIdentifier,
|
||||
individual SequenceOfJMaxGroup OPTIONAL,
|
||||
groups SequenceOfGroupCrlEntry OPTIONAL,
|
||||
groupsSingleSeed SequenceOfGroupSingleSeedCrlEntry OPTIONAL,
|
||||
...
|
||||
} (WITH COMPONENTS {..., individual PRESENT} |
|
||||
WITH COMPONENTS {..., groups PRESENT} |
|
||||
WITH COMPONENTS {..., groupsSingleSeed PRESENT})
|
||||
|
||||
SequenceOfGroupSingleSeedCrlEntry ::=
|
||||
SEQUENCE OF GroupSingleSeedCrlEntry
|
||||
|
||||
GroupSingleSeedCrlEntry ::= SEQUENCE {
|
||||
iMax Uint16,
|
||||
laId LaId,
|
||||
linkageSeed LinkageSeed
|
||||
}
|
||||
|
||||
ExpansionAlgorithmIdentifier ::= ENUMERATED {
|
||||
sha256ForI-aesForJ,
|
||||
sm3ForI-sm4ForJ,
|
||||
...
|
||||
}
|
||||
|
||||
SeedEvolutionFunctionIdentifier ::= NULL
|
||||
|
||||
LvGenerationFunctionIdentifier ::= NULL
|
||||
|
||||
END
|
@ -6,6 +6,7 @@ OER
|
||||
#.END
|
||||
|
||||
#.MODULE
|
||||
Ieee1609Dot2BaseTypes ieee1609dot2
|
||||
#.MODULE_IMPORT
|
||||
|
||||
#.EXPORTS ONLY_VALS WS_DLL
|
||||
@ -18,7 +19,7 @@ Psid
|
||||
|
||||
#.PDU
|
||||
Ieee1609Dot2Data
|
||||
|
||||
SecuredCrl
|
||||
#.NO_EMIT
|
||||
|
||||
#.NO_EMIT ONLY_VALS
|
||||
@ -30,16 +31,21 @@ OneEightyDegreeInt
|
||||
TestCertificate
|
||||
Countersignature
|
||||
ExplicitCertificate
|
||||
HashedId10
|
||||
ImplicitCertificate
|
||||
KnownLatitude
|
||||
KnownLongitude
|
||||
LaId
|
||||
LinkageSeed
|
||||
SequenceOfPsid
|
||||
Uint3
|
||||
UnknownLatitude
|
||||
UnknownLongitude
|
||||
OperatingOrganizationId
|
||||
Ieee1609HeaderInfoExtensionId
|
||||
Ieee1609ContributedHeaderInfoExtension
|
||||
Aes128CcmCiphertext
|
||||
CrlPsid
|
||||
ExpansionAlgorithmIdentifier
|
||||
Extension
|
||||
CountryOnly
|
||||
|
||||
#.TYPE_RENAME
|
||||
|
||||
@ -73,7 +79,6 @@ EncryptedDataEncryptionKey/eciesBrainpoolP256r1 edekEciesBrainpoolP256r1
|
||||
#.TYPE_ATTR
|
||||
NinetyDegreeInt DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ieee1609dot2_NinetyDegreeInt_fmt)
|
||||
OneEightyDegreeInt DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ieee1609dot2_OneEightyDegreeInt_fmt)
|
||||
ElevInt DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ieee1609dot2_ElevInt_fmt)
|
||||
Time32 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ieee1609dot2_Time32_fmt)
|
||||
Time64 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ieee1609dot2_Time64_fmt)
|
||||
|
||||
@ -180,7 +185,7 @@ psid-peer-to-peer-distribution-of-security-management-information Psid
|
||||
psid-traffic-light-manoeuver-service Psid
|
||||
psid-road-and-lane-topology-service Psid
|
||||
psid-infrastructure-to-vehicle-information-service Psid
|
||||
psid-traffic-light-control-service Psid
|
||||
psid-traffic-light-control-requests-service Psid
|
||||
psid-geonetworking-management-communications Psid
|
||||
psid-certificate-revocation-list-application Psid
|
||||
psid-collective-perception-service Psid
|
||||
|
@ -92,13 +92,6 @@ ieee1609dot2_OneEightyDegreeInt_fmt(gchar *s, guint32 v)
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
ieee1609dot2_ElevInt_fmt(gchar *s, guint32 v)
|
||||
{
|
||||
// Range is from -4096 to 61439 in units of one-tenth of a meter
|
||||
gint32 alt = (gint32)v - 4096;
|
||||
snprintf(s, ITEM_LABEL_LENGTH, "%.2fm (%u)", alt * 0.1, v);
|
||||
}
|
||||
|
||||
static void
|
||||
ieee1609dot2_Time32_fmt(gchar *s, guint32 v)
|
||||
@ -151,11 +144,13 @@ void proto_register_ieee1609dot2(void) {
|
||||
"ATS-AID/PSID based dissector for Service Specific Permissions (SSP)", proto_ieee1609dot2, FT_UINT32, BASE_HEX);
|
||||
}
|
||||
|
||||
|
||||
void proto_reg_handoff_ieee1609dot2(void) {
|
||||
dissector_add_string("media_type", "application/x-its", proto_ieee1609dot2_handle);
|
||||
dissector_add_string("media_type", "application/x-its-request", proto_ieee1609dot2_handle);
|
||||
dissector_add_string("media_type", "application/x-its-response", proto_ieee1609dot2_handle);
|
||||
|
||||
dissector_add_uint("ieee1609dot2.psid", psid_certificate_revocation_list_application, create_dissector_handle(dissect_SecuredCrl_PDU, proto_ieee1609dot2));
|
||||
//dissector_add_uint_range_with_preference("udp.port", "56000,56001", proto_ieee1609dot2_handle);
|
||||
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,7 @@
|
||||
/* Do not modify this file. Changes will be overwritten. */
|
||||
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
|
||||
/* packet-ieee1609dot2.h */
|
||||
/* asn2wrs.py -L -p ieee1609dot2 -c ./ieee1609dot2.cnf -s ./packet-ieee1609dot2-template -D . -O ../.. IEEE1609dot2BaseTypes.asn IEEE1609dot2DataTypes.asn IEEE1609dot12.asn */
|
||||
/* asn2wrs.py -L -p ieee1609dot2 -c ./ieee1609dot2.cnf -s ./packet-ieee1609dot2-template -D . -O ../.. IEEE1609dot2BaseTypes.asn Ieee1609Dot2CrlBaseTypes.asn Ieee1609Dot2Crl.asn Ieee1609Dot2.asn IEEE1609dot12.asn */
|
||||
|
||||
/* packet-IEEE1609dot2.h
|
||||
* Routines for IEEE 1609.2
|
||||
@ -19,6 +19,7 @@
|
||||
|
||||
#include "ws_symbol_export.h"
|
||||
|
||||
#define p2pcd8ByteLearningRequestId 1
|
||||
|
||||
typedef enum _Psid_enum {
|
||||
psid_system = 0,
|
||||
@ -76,9 +77,9 @@ typedef enum _Psid_enum {
|
||||
psid_infrastructure_to_vehicle_information_service = 139,
|
||||
psid_traffic_light_control_requests_service = 140,
|
||||
psid_geonetworking_management_communications = 141,
|
||||
psid_certificate_revocation_list_application = 256,
|
||||
psid_traffic_light_control_status_service = 637,
|
||||
psid_collective_perception_service = 639,
|
||||
psid_certificate_revocation_list_application = 256,
|
||||
psid_vehicle_initiated_distress_notivication = 16514,
|
||||
psid_fast_service_advertisement_protocol = 2113664,
|
||||
psid_its_station_internal_management_communications_protocol = 2113665,
|
||||
|
@ -37,14 +37,17 @@ static int hf_oer_optional_field_bit = -1;
|
||||
static int hf_oer_class = -1;
|
||||
static int hf_oer_tag = -1;
|
||||
static int hf_oer_length_determinant = -1;
|
||||
static int hf_oer_extension_present_bit = -1;
|
||||
static int hf_oer_extension_present_bit;
|
||||
static int hf_oer_open_type_length = -1;
|
||||
|
||||
/* Initialize the subtree pointers */
|
||||
static int ett_oer = -1;
|
||||
static int ett_oer_sequence_of_item = -1;
|
||||
static int ett_oer_open_type = -1;
|
||||
|
||||
static expert_field ei_oer_not_decoded_yet = EI_INIT;
|
||||
static expert_field ei_oer_undecoded = EI_INIT;
|
||||
static expert_field ei_oer_open_type = EI_INIT;
|
||||
|
||||
/* whether the OER helpers should put the internal OER fields into the tree or not. */
|
||||
static gboolean display_internal_oer_fields = FALSE;
|
||||
@ -795,6 +798,54 @@ dissect_oer_choice(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *
|
||||
return offset;
|
||||
}
|
||||
|
||||
/* 21 Encoding of object identifier values
|
||||
* The encoding of an object identifier value shall consist of a length determinant (see 8.6) followed by a series of octets,
|
||||
* which are the contents octets of BER encoding of the object identifier value (see Rec. ITU-T X.690 | ISO/IEC 8825-1,8.19).
|
||||
*/
|
||||
static guint32
|
||||
dissect_oer_any_oid(tvbuff_t* tvb, guint32 offset, asn1_ctx_t* actx, proto_tree* tree, int hf_index, tvbuff_t** value_tvb,
|
||||
gboolean is_absolute)
|
||||
{
|
||||
guint length;
|
||||
const char* str;
|
||||
header_field_info* hfi;
|
||||
|
||||
DEBUG_ENTRY("dissect_oer_any_oid");
|
||||
|
||||
offset = dissect_oer_length_determinant(tvb, offset, actx, tree, hf_oer_length_determinant, &length);
|
||||
|
||||
actx->created_item = NULL;
|
||||
hfi = proto_registrar_get_nth(hf_index);
|
||||
if ((is_absolute && hfi->type == FT_OID) || (!is_absolute && hfi->type == FT_REL_OID)) {
|
||||
actx->created_item = proto_tree_add_item(tree, hf_index, tvb, offset, length, ENC_BIG_ENDIAN);
|
||||
}
|
||||
else if (FT_IS_STRING(hfi->type)) {
|
||||
str = oid_encoded2string(actx->pinfo->pool, tvb_get_ptr(tvb, offset, length), length);
|
||||
actx->created_item = proto_tree_add_string(tree, hf_index, tvb, offset, length, str);
|
||||
if (actx->created_item) {
|
||||
/* see if we know the name of this oid */
|
||||
str = oid_resolved_from_encoded(actx->pinfo->pool, tvb_get_ptr(tvb, offset, length), length);
|
||||
if (str) {
|
||||
proto_item_append_text(actx->created_item, " (%s)", str);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
DISSECTOR_ASSERT_NOT_REACHED();
|
||||
}
|
||||
|
||||
if (value_tvb)
|
||||
*value_tvb = tvb_new_subset_length(tvb, offset, length);
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
guint32
|
||||
dissect_oer_object_identifier(tvbuff_t* tvb, guint32 offset, asn1_ctx_t* actx, proto_tree* tree, int hf_index, tvbuff_t** value_tvb)
|
||||
{
|
||||
return dissect_oer_any_oid(tvb, offset, actx, tree, hf_index, value_tvb, TRUE);
|
||||
}
|
||||
|
||||
/* 27 Encoding of values of the restricted character string types
|
||||
* 27.1 The encoding of a restricted character string type depends on whether the type is a known-multiplier character
|
||||
* string type or not. The following types are known-multiplier character string types:
|
||||
@ -836,6 +887,60 @@ dissect_oer_UTF8String(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tr
|
||||
|
||||
}
|
||||
|
||||
/* 30 Encoding of open type values
|
||||
*NOTE – An open type is an ASN.1 type that can take any abstract value of any ASN.1 type. Each value of an open type consists
|
||||
* of:
|
||||
* a) a contained type; and
|
||||
* b) a value of the contained type.
|
||||
* The encoding of an open type value shall consist of a length determinant (see 8.6) followed by a series of octets, which
|
||||
* are the encoding of the value of the contained type.
|
||||
*/
|
||||
|
||||
static guint32
|
||||
dissect_oer_open_type_internal(tvbuff_t* tvb, guint32 offset, asn1_ctx_t* actx, proto_tree* tree, int hf_index, void* type_cb, asn1_cb_variant variant)
|
||||
{
|
||||
int type_length, start_offset;
|
||||
tvbuff_t* val_tvb = NULL;
|
||||
proto_tree* subtree = tree;
|
||||
|
||||
start_offset = offset;
|
||||
|
||||
|
||||
offset = dissect_oer_length_determinant(tvb, offset, actx, tree, hf_oer_open_type_length, &type_length);
|
||||
val_tvb = tvb_new_subset_length(tvb, offset, type_length);
|
||||
|
||||
actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0, type_length, ENC_BIG_ENDIAN);
|
||||
subtree = proto_item_add_subtree(actx->created_item, ett_oer_open_type);
|
||||
|
||||
if (variant == CB_NEW_DISSECTOR) {
|
||||
add_new_data_source(actx->pinfo, val_tvb, "OCTET STRING");
|
||||
}
|
||||
|
||||
if (type_cb) {
|
||||
switch (variant) {
|
||||
case CB_ASN1_ENC:
|
||||
((oer_type_fn)type_cb)(val_tvb, 0, actx, tree, hf_index);
|
||||
break;
|
||||
case CB_NEW_DISSECTOR:
|
||||
/* Pas actx->private_data as "data" to the called function */
|
||||
((dissector_t)type_cb)(val_tvb, actx->pinfo, subtree, actx->private_data);
|
||||
break;
|
||||
case CB_DISSECTOR_HANDLE:
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
actx->created_item = proto_tree_add_expert(tree, actx->pinfo, &ei_oer_open_type, tvb, start_offset, offset - start_offset);
|
||||
}
|
||||
|
||||
return offset;
|
||||
}
|
||||
guint32
|
||||
dissect_oer_open_type(tvbuff_t* tvb, guint32 offset, asn1_ctx_t* actx, proto_tree* tree, int hf_index, oer_type_fn type_cb)
|
||||
{
|
||||
return dissect_oer_open_type_internal(tvb, offset, actx, tree, hf_index, (void*)type_cb, CB_ASN1_ENC);
|
||||
}
|
||||
|
||||
/*--- proto_register_oer ----------------------------------------------*/
|
||||
void proto_register_oer(void) {
|
||||
|
||||
@ -865,6 +970,11 @@ void proto_register_oer(void) {
|
||||
{ "Extension Present Bit", "oer.extension_present_bit",
|
||||
FT_UINT8, BASE_DEC, VALS(oer_extension_present_bit_vals), 0x00,
|
||||
NULL, HFILL } },
|
||||
{ &hf_oer_open_type_length,
|
||||
{ "Open Type Length", "oer.open_type_length",
|
||||
FT_UINT32, BASE_DEC, NULL, 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
|
||||
};
|
||||
|
||||
@ -872,6 +982,7 @@ void proto_register_oer(void) {
|
||||
static gint *ett[] = {
|
||||
&ett_oer,
|
||||
&ett_oer_sequence_of_item,
|
||||
&ett_oer_open_type,
|
||||
};
|
||||
|
||||
module_t *oer_module;
|
||||
@ -889,6 +1000,8 @@ void proto_register_oer(void) {
|
||||
{ "oer.not_decoded_yet", PI_UNDECODED, PI_WARN, "Not decoded yet", EXPFILL }},
|
||||
{ &ei_oer_undecoded,
|
||||
{ "oer.error.undecoded", PI_UNDECODED, PI_WARN, "OER: Something unknown here", EXPFILL } },
|
||||
{ &ei_oer_open_type,
|
||||
{ "oer.open_type.unknown", PI_PROTOCOL, PI_WARN, "Unknown Open Type", EXPFILL }},
|
||||
};
|
||||
|
||||
expert_oer = expert_register_protocol(proto_oer);
|
||||
|
@ -71,7 +71,7 @@ WS_DLL_PUBLIC guint32 dissect_oer_constrained_sequence_of(tvbuff_t *tvb, guint32
|
||||
|
||||
//WS_DLL_PUBLIC guint32 dissect_oer_set_of(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *parent_tree, int hf_index, gint ett_index, const oer_sequence_t *seq);
|
||||
|
||||
//WS_DLL_PUBLIC guint32 dissect_oer_object_identifier(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, tvbuff_t **value_tvb);
|
||||
WS_DLL_PUBLIC guint32 dissect_oer_object_identifier(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, tvbuff_t **value_tvb);
|
||||
//WS_DLL_PUBLIC guint32 dissect_oer_object_identifier_str(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, const char **value_stringx);
|
||||
|
||||
//WS_DLL_PUBLIC guint32 dissect_oer_relative_oid(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, tvbuff_t **value_tvb);
|
||||
@ -104,7 +104,7 @@ dissect_oer_bit_string(tvbuff_t *tvb, guint32 offset _U_, asn1_ctx_t *actx, prot
|
||||
|
||||
WS_DLL_PUBLIC guint32 dissect_oer_enumerated(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, guint32 root_num, guint32 *value, gboolean has_extension, guint32 ext_num, guint32 *value_map);
|
||||
|
||||
//WS_DLL_PUBLIC guint32 dissect_oer_open_type(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, oer_type_fn type_cb);
|
||||
WS_DLL_PUBLIC guint32 dissect_oer_open_type(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, oer_type_fn type_cb);
|
||||
//WS_DLL_PUBLIC guint32 dissect_oer_open_type_pdu_new(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, dissector_t type_cb);
|
||||
|
||||
//WS_DLL_PUBLIC guint32 dissect_oer_external_type(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, oer_type_fn type_cb);
|
||||
|
@ -849,9 +849,9 @@ class EthCtx:
|
||||
|
||||
#--- eth_import_type --------------------------------------------------------
|
||||
def eth_import_type(self, ident, mod, proto):
|
||||
#print "eth_import_type(ident='%s', mod='%s', prot='%s')" % (ident, mod, proto)
|
||||
#print ("eth_import_type(ident='%s', mod='%s', prot='%s')" % (ident, mod, proto))
|
||||
if ident in self.type:
|
||||
#print "already defined '%s' import=%s, module=%s" % (ident, str(self.type[ident]['import']), self.type[ident].get('module', '-'))
|
||||
#print ("already defined '%s' import=%s, module=%s" % (ident, str(self.type[ident]['import']), self.type[ident].get('module', '-')))
|
||||
if not self.type[ident]['import'] and (self.type[ident]['module'] == mod) :
|
||||
return # OK - already defined
|
||||
elif self.type[ident]['import'] and (self.type[ident]['import'] == mod) :
|
||||
@ -3960,7 +3960,7 @@ class TaggedType (Type):
|
||||
par=(('%(IMPLICIT_TAG)s', '%(ACTX)s', '%(TREE)s', '%(TVB)s', '%(OFFSET)s'),
|
||||
('%(HF_INDEX)s', '%(TAG_CLS)s', '%(TAG_TAG)s', '%(TAG_IMPL)s', '%(TYPE_REF_FN)s',),))
|
||||
else:
|
||||
body = '#error Can not decode %s' % (tname)
|
||||
body = '#error Can not decode tagged_type %s' % (tname)
|
||||
return body
|
||||
|
||||
#--- SqType -----------------------------------------------------------
|
||||
@ -4214,7 +4214,7 @@ class SequenceOfType (SeqOfType):
|
||||
('%(ETT_INDEX)s', '%(TABLE)s',),
|
||||
('%(MIN_VAL)s', '%(MAX_VAL)s','%(EXT)s'),))
|
||||
else:
|
||||
body = '#error Can not decode %s' % (tname)
|
||||
body = '#error Can not decode SequenceOfType %s' % (tname)
|
||||
return body
|
||||
|
||||
|
||||
@ -4271,7 +4271,7 @@ class SetOfType (SeqOfType):
|
||||
('%(ETT_INDEX)s', '%(TABLE)s',),
|
||||
('%(MIN_VAL)s', '%(MAX_VAL)s','%(EXT)s',),))
|
||||
else:
|
||||
body = '#error Can not decode %s' % (tname)
|
||||
body = '#error Can not decode SetOfType %s' % (tname)
|
||||
return body
|
||||
|
||||
def mk_tag_str (ctx, cls, typ, num):
|
||||
@ -4350,7 +4350,7 @@ class SequenceType (SeqType):
|
||||
par=(('%(TVB)s', '%(OFFSET)s', '%(ACTX)s', '%(TREE)s', '%(HF_INDEX)s'),
|
||||
('%(ETT_INDEX)s', '%(TABLE)s',),))
|
||||
else:
|
||||
body = '#error Can not decode %s' % (tname)
|
||||
body = '#error Can not decode SequenceType %s' % (tname)
|
||||
return body
|
||||
|
||||
#--- ExtensionAdditionGroup ---------------------------------------------------
|
||||
@ -4384,7 +4384,7 @@ class ExtensionAdditionGroup (SeqType):
|
||||
body = ectx.eth_fn_call('dissect_%(ER)s_sequence_eag', ret='offset',
|
||||
par=(('%(TVB)s', '%(OFFSET)s', '%(ACTX)s', '%(TREE)s', '%(TABLE)s',),))
|
||||
else:
|
||||
body = '#error Can not decode %s' % (tname)
|
||||
body = '#error Can not decode ExtensionAdditionGroup %s' % (tname)
|
||||
return body
|
||||
|
||||
|
||||
@ -4412,7 +4412,7 @@ class SetType (SeqType):
|
||||
par=(('%(TVB)s', '%(OFFSET)s', '%(ACTX)s', '%(TREE)s', '%(HF_INDEX)s'),
|
||||
('%(ETT_INDEX)s', '%(TABLE)s',),))
|
||||
else:
|
||||
body = '#error Can not decode %s' % (tname)
|
||||
body = '#error Can not decode SetType %s' % (tname)
|
||||
return body
|
||||
|
||||
#--- ChoiceType ---------------------------------------------------------------
|
||||
@ -4678,7 +4678,7 @@ class ChoiceType (Type):
|
||||
('%(ETT_INDEX)s', '%(TABLE)s',),
|
||||
('%(VAL_PTR)s',),))
|
||||
else:
|
||||
body = '#error Can not decode %s' % (tname)
|
||||
body = '#error Can not decode ChoiceType %s' % (tname)
|
||||
return body
|
||||
|
||||
#--- ChoiceValue ----------------------------------------------------
|
||||
@ -4813,7 +4813,7 @@ class EnumeratedType (Type):
|
||||
par=(('%(TVB)s', '%(OFFSET)s', '%(ACTX)s', '%(TREE)s', '%(HF_INDEX)s'),
|
||||
('%(ROOT_NUM)s', '%(VAL_PTR)s', '%(EXT)s', '%(EXT_NUM)s', '%(TABLE)s',),))
|
||||
else:
|
||||
body = '#error Can not decode %s' % (tname)
|
||||
body = '#error Can not decode EnumeratedType %s' % (tname)
|
||||
return body
|
||||
|
||||
#--- EmbeddedPDVType -----------------------------------------------------------
|
||||
@ -4843,7 +4843,7 @@ class EmbeddedPDVType (Type):
|
||||
body = ectx.eth_fn_call('dissect_%(ER)s_embedded_pdv', ret='offset',
|
||||
par=(('%(TVB)s', '%(OFFSET)s', '%(ACTX)s', '%(TREE)s', '%(HF_INDEX)s', '%(TYPE_REF_FN)s',),))
|
||||
else:
|
||||
body = '#error Can not decode %s' % (tname)
|
||||
body = '#error Can not decode EmbeddedPDVType %s' % (tname)
|
||||
return body
|
||||
|
||||
#--- ExternalType -----------------------------------------------------------
|
||||
@ -4873,7 +4873,7 @@ class ExternalType (Type):
|
||||
body = ectx.eth_fn_call('dissect_%(ER)s_external_type', ret='offset',
|
||||
par=(('%(TVB)s', '%(OFFSET)s', '%(ACTX)s', '%(TREE)s', '%(HF_INDEX)s', '%(TYPE_REF_FN)s',),))
|
||||
else:
|
||||
body = '#error Can not decode %s' % (tname)
|
||||
body = '#error Can not decode ExternalType %s' % (tname)
|
||||
return body
|
||||
|
||||
#--- OpenType -----------------------------------------------------------
|
||||
@ -4920,11 +4920,11 @@ class OpenType (Type):
|
||||
return pars
|
||||
|
||||
def eth_type_default_body(self, ectx, tname):
|
||||
if (ectx.Per()):
|
||||
if (ectx.Per() or ectx.Oer()):
|
||||
body = ectx.eth_fn_call('dissect_%(ER)s_open_type%(FN_VARIANT)s', ret='offset',
|
||||
par=(('%(TVB)s', '%(OFFSET)s', '%(ACTX)s', '%(TREE)s', '%(HF_INDEX)s', '%(TYPE_REF_FN)s',),))
|
||||
else:
|
||||
body = '#error Can not decode %s' % (tname)
|
||||
body = '#error Can not decode OpenType %s' % (tname)
|
||||
return body
|
||||
|
||||
#--- InstanceOfType -----------------------------------------------------------
|
||||
@ -5333,6 +5333,9 @@ class ObjectIdentifierType (Type):
|
||||
elif (ectx.Per()):
|
||||
body = ectx.eth_fn_call('dissect_%(ER)s_object_identifier%(FN_VARIANT)s', ret='offset',
|
||||
par=(('%(TVB)s', '%(OFFSET)s', '%(ACTX)s', '%(TREE)s', '%(HF_INDEX)s', '%(VAL_PTR)s',),))
|
||||
elif (ectx.Oer()):
|
||||
body = ectx.eth_fn_call('dissect_%(ER)s_object_identifier%(FN_VARIANT)s', ret='offset',
|
||||
par=(('%(TVB)s', '%(OFFSET)s', '%(ACTX)s', '%(TREE)s', '%(HF_INDEX)s', '%(VAL_PTR)s',),))
|
||||
else:
|
||||
body = '#error Can not decode %s' % (tname)
|
||||
return body
|
||||
@ -5418,7 +5421,7 @@ class RelativeOIDType (Type):
|
||||
body = ectx.eth_fn_call('dissect_%(ER)s_relative_oid%(FN_VARIANT)s', ret='offset',
|
||||
par=(('%(TVB)s', '%(OFFSET)s', '%(ACTX)s', '%(TREE)s', '%(HF_INDEX)s', '%(VAL_PTR)s',),))
|
||||
else:
|
||||
body = '#error Can not decode %s' % (tname)
|
||||
body = '#error Can not decode relative_oid %s' % (tname)
|
||||
return body
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user