forked from ttcn3/osmo-ttcn3-hacks
library: add SGP.32 and SGP.22 ASN.1 specification, encoder and templates
This patch adds the eUICC related SGP.32 and SGP.22 ASN.1 specification along with templates and related encoder/decoders (_EncDec.cc). The collection of templates is not comprehensive, which means that there are only templates available for a subset needed to implement testcases for an IPAd. Related: SYS#6563 Change-Id: I9df8caa98aeb6953a738660a758c92249832d780
This commit is contained in:
parent
fca4e4f5d5
commit
08902cf05d
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,619 @@
|
|||
PKIX1Explicit88 { iso(1) identified-organization(3) dod(6) internet(1)
|
||||
security(5) mechanisms(5) pkix(7) id-mod(0) id-pkix1-explicit(18) }
|
||||
|
||||
DEFINITIONS EXPLICIT TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
-- EXPORTS ALL --
|
||||
|
||||
-- IMPORTS NONE --
|
||||
|
||||
-- UNIVERSAL Types defined in 1993 and 1998 ASN.1
|
||||
-- and required by this specification
|
||||
|
||||
-- UniversalString ::= [UNIVERSAL 28] IMPLICIT OCTET STRING
|
||||
-- UniversalString is defined in ASN.1:1993
|
||||
|
||||
-- BMPString ::= [UNIVERSAL 30] IMPLICIT OCTET STRING
|
||||
-- BMPString is the subtype of UniversalString and models
|
||||
-- the Basic Multilingual Plane of ISO/IEC/ITU 10646-1
|
||||
|
||||
-- UTF8String ::= [UNIVERSAL 12] IMPLICIT OCTET STRING
|
||||
-- The content of this type conforms to RFC 2279.
|
||||
|
||||
-- PKIX specific OIDs
|
||||
|
||||
id-pkix OBJECT IDENTIFIER ::=
|
||||
{ iso(1) identified-organization(3) dod(6) internet(1)
|
||||
security(5) mechanisms(5) pkix(7) }
|
||||
|
||||
-- PKIX arcs
|
||||
|
||||
id-pe OBJECT IDENTIFIER ::= { id-pkix 1 }
|
||||
-- arc for private certificate extensions
|
||||
id-qt OBJECT IDENTIFIER ::= { id-pkix 2 }
|
||||
-- arc for policy qualifier types
|
||||
id-kp OBJECT IDENTIFIER ::= { id-pkix 3 }
|
||||
-- arc for extended key purpose OIDS
|
||||
id-ad OBJECT IDENTIFIER ::= { id-pkix 48 }
|
||||
-- arc for access descriptors
|
||||
|
||||
-- policyQualifierIds for Internet policy qualifiers
|
||||
|
||||
id-qt-cps OBJECT IDENTIFIER ::= { id-qt 1 }
|
||||
-- OID for CPS qualifier
|
||||
id-qt-unotice OBJECT IDENTIFIER ::= { id-qt 2 }
|
||||
-- OID for user notice qualifier
|
||||
|
||||
-- access descriptor definitions
|
||||
|
||||
id-ad-ocsp OBJECT IDENTIFIER ::= { id-ad 1 }
|
||||
id-ad-caIssuers OBJECT IDENTIFIER ::= { id-ad 2 }
|
||||
id-ad-timeStamping OBJECT IDENTIFIER ::= { id-ad 3 }
|
||||
id-ad-caRepository OBJECT IDENTIFIER ::= { id-ad 5 }
|
||||
|
||||
-- attribute data types
|
||||
|
||||
Attribute ::= SEQUENCE {
|
||||
type AttributeType,
|
||||
values SET OF AttributeValue }
|
||||
-- at least one value is required
|
||||
|
||||
AttributeType ::= OBJECT IDENTIFIER
|
||||
|
||||
AttributeValue ::= ANY
|
||||
|
||||
AttributeTypeAndValue ::= SEQUENCE {
|
||||
type AttributeType,
|
||||
value AttributeValue }
|
||||
|
||||
-- suggested naming attributes: Definition of the following
|
||||
-- information object set may be augmented to meet local
|
||||
-- requirements. Note that deleting members of the set may
|
||||
-- prevent interoperability with conforming implementations.
|
||||
-- presented in pairs: the AttributeType followed by the
|
||||
-- type definition for the corresponding AttributeValue
|
||||
--Arc for standard naming attributes
|
||||
id-at OBJECT IDENTIFIER ::= { joint-iso-ccitt(2) ds(5) 4 }
|
||||
|
||||
-- Naming attributes of type X520name
|
||||
|
||||
id-at-name AttributeType ::= { id-at 41 }
|
||||
id-at-surname AttributeType ::= { id-at 4 }
|
||||
id-at-givenName AttributeType ::= { id-at 42 }
|
||||
id-at-initials AttributeType ::= { id-at 43 }
|
||||
id-at-generationQualifier AttributeType ::= { id-at 44 }
|
||||
|
||||
X520name ::= CHOICE {
|
||||
teletexString TeletexString (SIZE (1..ub-name)),
|
||||
printableString PrintableString (SIZE (1..ub-name)),
|
||||
universalString UniversalString (SIZE (1..ub-name)),
|
||||
utf8String UTF8String (SIZE (1..ub-name)),
|
||||
bmpString BMPString (SIZE (1..ub-name)) }
|
||||
|
||||
-- Naming attributes of type X520CommonName
|
||||
|
||||
id-at-commonName AttributeType ::= { id-at 3 }
|
||||
|
||||
X520CommonName ::= CHOICE {
|
||||
teletexString TeletexString (SIZE (1..ub-common-name)),
|
||||
printableString PrintableString (SIZE (1..ub-common-name)),
|
||||
universalString UniversalString (SIZE (1..ub-common-name)),
|
||||
utf8String UTF8String (SIZE (1..ub-common-name)),
|
||||
bmpString BMPString (SIZE (1..ub-common-name)) }
|
||||
|
||||
-- Naming attributes of type X520LocalityName
|
||||
|
||||
id-at-localityName AttributeType ::= { id-at 7 }
|
||||
|
||||
X520LocalityName ::= CHOICE {
|
||||
teletexString TeletexString (SIZE (1..ub-locality-name)),
|
||||
printableString PrintableString (SIZE (1..ub-locality-name)),
|
||||
universalString UniversalString (SIZE (1..ub-locality-name)),
|
||||
utf8String UTF8String (SIZE (1..ub-locality-name)),
|
||||
bmpString BMPString (SIZE (1..ub-locality-name)) }
|
||||
|
||||
-- Naming attributes of type X520StateOrProvinceName
|
||||
|
||||
id-at-stateOrProvinceName AttributeType ::= { id-at 8 }
|
||||
|
||||
X520StateOrProvinceName ::= CHOICE {
|
||||
teletexString TeletexString (SIZE (1..ub-state-name)),
|
||||
printableString PrintableString (SIZE (1..ub-state-name)),
|
||||
universalString UniversalString (SIZE (1..ub-state-name)),
|
||||
utf8String UTF8String (SIZE (1..ub-state-name)),
|
||||
bmpString BMPString (SIZE(1..ub-state-name)) }
|
||||
|
||||
-- Naming attributes of type X520OrganizationName
|
||||
|
||||
id-at-organizationName AttributeType ::= { id-at 10 }
|
||||
|
||||
X520OrganizationName ::= CHOICE {
|
||||
teletexString TeletexString
|
||||
(SIZE (1..ub-organization-name)),
|
||||
printableString PrintableString
|
||||
(SIZE (1..ub-organization-name)),
|
||||
universalString UniversalString
|
||||
(SIZE (1..ub-organization-name)),
|
||||
utf8String UTF8String
|
||||
(SIZE (1..ub-organization-name)),
|
||||
bmpString BMPString
|
||||
(SIZE (1..ub-organization-name)) }
|
||||
|
||||
-- Naming attributes of type X520OrganizationalUnitName
|
||||
|
||||
id-at-organizationalUnitName AttributeType ::= { id-at 11 }
|
||||
|
||||
X520OrganizationalUnitName ::= CHOICE {
|
||||
teletexString TeletexString
|
||||
(SIZE (1..ub-organizational-unit-name)),
|
||||
printableString PrintableString
|
||||
(SIZE (1..ub-organizational-unit-name)),
|
||||
universalString UniversalString
|
||||
(SIZE (1..ub-organizational-unit-name)),
|
||||
utf8String UTF8String
|
||||
(SIZE (1..ub-organizational-unit-name)),
|
||||
bmpString BMPString
|
||||
(SIZE (1..ub-organizational-unit-name)) }
|
||||
|
||||
-- Naming attributes of type X520Title
|
||||
|
||||
id-at-title AttributeType ::= { id-at 12 }
|
||||
|
||||
X520Title ::= CHOICE {
|
||||
teletexString TeletexString (SIZE (1..ub-title)),
|
||||
printableString PrintableString (SIZE (1..ub-title)),
|
||||
universalString UniversalString (SIZE (1..ub-title)),
|
||||
utf8String UTF8String (SIZE (1..ub-title)),
|
||||
bmpString BMPString (SIZE (1..ub-title)) }
|
||||
|
||||
-- Naming attributes of type X520dnQualifier
|
||||
|
||||
id-at-dnQualifier AttributeType ::= { id-at 46 }
|
||||
|
||||
X520dnQualifier ::= PrintableString
|
||||
|
||||
-- Naming attributes of type X520countryName (digraph from IS 3166)
|
||||
|
||||
id-at-countryName AttributeType ::= { id-at 6 }
|
||||
|
||||
X520countryName ::= PrintableString (SIZE (2))
|
||||
|
||||
-- Naming attributes of type X520SerialNumber
|
||||
|
||||
id-at-serialNumber AttributeType ::= { id-at 5 }
|
||||
|
||||
X520SerialNumber ::= PrintableString (SIZE (1..ub-serial-number))
|
||||
|
||||
-- Naming attributes of type X520Pseudonym
|
||||
|
||||
id-at-pseudonym AttributeType ::= { id-at 65 }
|
||||
|
||||
X520Pseudonym ::= CHOICE {
|
||||
teletexString TeletexString (SIZE (1..ub-pseudonym)),
|
||||
printableString PrintableString (SIZE (1..ub-pseudonym)),
|
||||
universalString UniversalString (SIZE (1..ub-pseudonym)),
|
||||
utf8String UTF8String (SIZE (1..ub-pseudonym)),
|
||||
bmpString BMPString (SIZE (1..ub-pseudonym)) }
|
||||
|
||||
-- Naming attributes of type DomainComponent (from RFC 2247)
|
||||
|
||||
id-domainComponent AttributeType ::=
|
||||
{ 0 9 2342 19200300 100 1 25 }
|
||||
|
||||
DomainComponent ::= IA5String
|
||||
|
||||
-- Legacy attributes
|
||||
|
||||
pkcs-9 OBJECT IDENTIFIER ::=
|
||||
{ iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 9 }
|
||||
|
||||
id-emailAddress AttributeType ::= { pkcs-9 1 }
|
||||
|
||||
EmailAddress ::= IA5String (SIZE (1..ub-emailaddress-length))
|
||||
|
||||
-- naming data types --
|
||||
|
||||
Name ::= CHOICE { -- only one possibility for now --
|
||||
rdnSequence RDNSequence }
|
||||
|
||||
RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
|
||||
|
||||
DistinguishedName ::= RDNSequence
|
||||
|
||||
RelativeDistinguishedName ::=
|
||||
SET SIZE (1 .. MAX) OF AttributeTypeAndValue
|
||||
|
||||
-- Directory string type --
|
||||
|
||||
DirectoryString ::= CHOICE {
|
||||
teletexString TeletexString (SIZE (1..MAX)),
|
||||
printableString PrintableString (SIZE (1..MAX)),
|
||||
universalString UniversalString (SIZE (1..MAX)),
|
||||
utf8String UTF8String (SIZE (1..MAX)),
|
||||
bmpString BMPString (SIZE (1..MAX)) }
|
||||
|
||||
-- certificate and CRL specific structures begin here
|
||||
|
||||
Certificate ::= SEQUENCE {
|
||||
tbsCertificate TBSCertificate,
|
||||
signatureAlgorithm AlgorithmIdentifier,
|
||||
signature BIT STRING }
|
||||
|
||||
TBSCertificate ::= SEQUENCE {
|
||||
version [0] Version DEFAULT v1,
|
||||
serialNumber CertificateSerialNumber,
|
||||
signature AlgorithmIdentifier,
|
||||
issuer Name,
|
||||
validity Validity,
|
||||
subject Name,
|
||||
subjectPublicKeyInfo SubjectPublicKeyInfo,
|
||||
issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,
|
||||
-- If present, version MUST be v2 or v3
|
||||
subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,
|
||||
-- If present, version MUST be v2 or v3
|
||||
extensions [3] Extensions OPTIONAL
|
||||
-- If present, version MUST be v3 -- }
|
||||
|
||||
Version ::= INTEGER { v1(0), v2(1), v3(2) }
|
||||
|
||||
CertificateSerialNumber ::= INTEGER (0..999999999999999999999999999999999999) -- apply a range to suitable to force asn1c to uses INTEGER_t
|
||||
|
||||
Validity ::= SEQUENCE {
|
||||
notBefore Time,
|
||||
notAfter Time }
|
||||
|
||||
Time ::= CHOICE {
|
||||
utcTime UTCTime,
|
||||
generalTime GeneralizedTime }
|
||||
|
||||
UniqueIdentifier ::= BIT STRING
|
||||
|
||||
SubjectPublicKeyInfo ::= SEQUENCE {
|
||||
algorithm AlgorithmIdentifier,
|
||||
subjectPublicKey BIT STRING }
|
||||
|
||||
Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
|
||||
|
||||
Extension ::= SEQUENCE {
|
||||
extnID OBJECT IDENTIFIER,
|
||||
critical BOOLEAN DEFAULT FALSE,
|
||||
extnValue OCTET STRING }
|
||||
|
||||
-- CRL structures
|
||||
|
||||
CertificateList ::= SEQUENCE {
|
||||
tbsCertList TBSCertList,
|
||||
signatureAlgorithm AlgorithmIdentifier,
|
||||
signature BIT STRING }
|
||||
|
||||
TBSCertList ::= SEQUENCE {
|
||||
version Version OPTIONAL,
|
||||
-- if present, MUST be v2
|
||||
signature AlgorithmIdentifier,
|
||||
issuer Name,
|
||||
thisUpdate Time,
|
||||
nextUpdate Time OPTIONAL,
|
||||
revokedCertificates SEQUENCE OF SEQUENCE {
|
||||
userCertificate CertificateSerialNumber,
|
||||
revocationDate Time,
|
||||
crlEntryExtensions Extensions OPTIONAL
|
||||
-- if present, MUST be v2
|
||||
} OPTIONAL,
|
||||
crlExtensions [0] Extensions OPTIONAL }
|
||||
-- if present, MUST be v2
|
||||
|
||||
-- Version, Time, CertificateSerialNumber, and Extensions were
|
||||
-- defined earlier for use in the certificate structure
|
||||
|
||||
AlgorithmIdentifier ::= SEQUENCE {
|
||||
algorithm OBJECT IDENTIFIER,
|
||||
parameters ANY DEFINED BY algorithm OPTIONAL }
|
||||
-- contains a value of the type
|
||||
-- registered for use with the
|
||||
-- algorithm object identifier value
|
||||
|
||||
-- X.400 address syntax starts here
|
||||
|
||||
ORAddress ::= SEQUENCE {
|
||||
built-in-standard-attributes BuiltInStandardAttributes,
|
||||
built-in-domain-defined-attributes
|
||||
BuiltInDomainDefinedAttributes OPTIONAL,
|
||||
-- see also teletex-domain-defined-attributes
|
||||
extension-attributes ExtensionAttributes OPTIONAL }
|
||||
|
||||
-- Built-in Standard Attributes
|
||||
|
||||
BuiltInStandardAttributes ::= SEQUENCE {
|
||||
country-name CountryName OPTIONAL,
|
||||
administration-domain-name AdministrationDomainName OPTIONAL,
|
||||
network-address [0] IMPLICIT NetworkAddress OPTIONAL,
|
||||
-- see also extended-network-address
|
||||
terminal-identifier [1] IMPLICIT TerminalIdentifier OPTIONAL,
|
||||
private-domain-name [2] PrivateDomainName OPTIONAL,
|
||||
organization-name [3] IMPLICIT OrganizationName OPTIONAL,
|
||||
-- see also teletex-organization-name
|
||||
numeric-user-identifier [4] IMPLICIT NumericUserIdentifier
|
||||
OPTIONAL,
|
||||
personal-name [5] IMPLICIT PersonalName OPTIONAL,
|
||||
-- see also teletex-personal-name
|
||||
organizational-unit-names [6] IMPLICIT OrganizationalUnitNames
|
||||
OPTIONAL }
|
||||
-- see also teletex-organizational-unit-names
|
||||
|
||||
CountryName ::= [APPLICATION 1] CHOICE {
|
||||
x121-dcc-code NumericString
|
||||
(SIZE (ub-country-name-numeric-length)),
|
||||
iso-3166-alpha2-code PrintableString
|
||||
(SIZE (ub-country-name-alpha-length)) }
|
||||
|
||||
AdministrationDomainName ::= [APPLICATION 2] CHOICE {
|
||||
numeric NumericString (SIZE (0..ub-domain-name-length)),
|
||||
printable PrintableString (SIZE (0..ub-domain-name-length)) }
|
||||
|
||||
NetworkAddress ::= X121Address -- see also extended-network-address
|
||||
|
||||
X121Address ::= NumericString (SIZE (1..ub-x121-address-length))
|
||||
|
||||
TerminalIdentifier ::= PrintableString (SIZE
|
||||
(1..ub-terminal-id-length))
|
||||
|
||||
PrivateDomainName ::= CHOICE {
|
||||
numeric NumericString (SIZE (1..ub-domain-name-length)),
|
||||
printable PrintableString (SIZE (1..ub-domain-name-length)) }
|
||||
|
||||
OrganizationName ::= PrintableString
|
||||
(SIZE (1..ub-organization-name-length))
|
||||
-- see also teletex-organization-name
|
||||
|
||||
NumericUserIdentifier ::= NumericString
|
||||
(SIZE (1..ub-numeric-user-id-length))
|
||||
|
||||
PersonalName ::= SET {
|
||||
surname [0] IMPLICIT PrintableString
|
||||
(SIZE (1..ub-surname-length)),
|
||||
given-name [1] IMPLICIT PrintableString
|
||||
(SIZE (1..ub-given-name-length)) OPTIONAL,
|
||||
initials [2] IMPLICIT PrintableString
|
||||
(SIZE (1..ub-initials-length)) OPTIONAL,
|
||||
generation-qualifier [3] IMPLICIT PrintableString
|
||||
(SIZE (1..ub-generation-qualifier-length))
|
||||
OPTIONAL }
|
||||
-- see also teletex-personal-name
|
||||
|
||||
OrganizationalUnitNames ::= SEQUENCE SIZE (1..ub-organizational-units)
|
||||
OF OrganizationalUnitName
|
||||
-- see also teletex-organizational-unit-names
|
||||
|
||||
OrganizationalUnitName ::= PrintableString (SIZE
|
||||
(1..ub-organizational-unit-name-length))
|
||||
|
||||
-- Built-in Domain-defined Attributes
|
||||
|
||||
BuiltInDomainDefinedAttributes ::= SEQUENCE SIZE
|
||||
(1..ub-domain-defined-attributes) OF
|
||||
BuiltInDomainDefinedAttribute
|
||||
|
||||
BuiltInDomainDefinedAttribute ::= SEQUENCE {
|
||||
type PrintableString (SIZE
|
||||
(1..ub-domain-defined-attribute-type-length)),
|
||||
value PrintableString (SIZE
|
||||
(1..ub-domain-defined-attribute-value-length)) }
|
||||
|
||||
-- Extension Attributes
|
||||
|
||||
ExtensionAttributes ::= SET SIZE (1..ub-extension-attributes) OF
|
||||
ExtensionAttribute
|
||||
|
||||
ExtensionAttribute ::= SEQUENCE {
|
||||
extension-attribute-type [0] IMPLICIT INTEGER
|
||||
(0..ub-extension-attributes),
|
||||
extension-attribute-value [1]
|
||||
ANY DEFINED BY extension-attribute-type }
|
||||
|
||||
-- Extension types and attribute values
|
||||
|
||||
common-name INTEGER ::= 1
|
||||
|
||||
CommonName ::= PrintableString (SIZE (1..ub-common-name-length))
|
||||
|
||||
teletex-common-name INTEGER ::= 2
|
||||
|
||||
TeletexCommonName ::= TeletexString (SIZE (1..ub-common-name-length))
|
||||
|
||||
teletex-organization-name INTEGER ::= 3
|
||||
|
||||
TeletexOrganizationName ::=
|
||||
TeletexString (SIZE (1..ub-organization-name-length))
|
||||
|
||||
teletex-personal-name INTEGER ::= 4
|
||||
|
||||
TeletexPersonalName ::= SET {
|
||||
surname [0] IMPLICIT TeletexString
|
||||
(SIZE (1..ub-surname-length)),
|
||||
given-name [1] IMPLICIT TeletexString
|
||||
(SIZE (1..ub-given-name-length)) OPTIONAL,
|
||||
initials [2] IMPLICIT TeletexString
|
||||
(SIZE (1..ub-initials-length)) OPTIONAL,
|
||||
generation-qualifier [3] IMPLICIT TeletexString
|
||||
(SIZE (1..ub-generation-qualifier-length))
|
||||
OPTIONAL }
|
||||
|
||||
teletex-organizational-unit-names INTEGER ::= 5
|
||||
|
||||
TeletexOrganizationalUnitNames ::= SEQUENCE SIZE
|
||||
(1..ub-organizational-units) OF TeletexOrganizationalUnitName
|
||||
|
||||
TeletexOrganizationalUnitName ::= TeletexString
|
||||
(SIZE (1..ub-organizational-unit-name-length))
|
||||
|
||||
pds-name INTEGER ::= 7
|
||||
|
||||
PDSName ::= PrintableString (SIZE (1..ub-pds-name-length))
|
||||
|
||||
physical-delivery-country-name INTEGER ::= 8
|
||||
|
||||
PhysicalDeliveryCountryName ::= CHOICE {
|
||||
x121-dcc-code NumericString (SIZE
|
||||
(ub-country-name-numeric-length)),
|
||||
iso-3166-alpha2-code PrintableString
|
||||
(SIZE (ub-country-name-alpha-length)) }
|
||||
|
||||
postal-code INTEGER ::= 9
|
||||
|
||||
PostalCode ::= CHOICE {
|
||||
numeric-code NumericString (SIZE (1..ub-postal-code-length)),
|
||||
printable-code PrintableString (SIZE (1..ub-postal-code-length)) }
|
||||
|
||||
physical-delivery-office-name INTEGER ::= 10
|
||||
|
||||
PhysicalDeliveryOfficeName ::= PDSParameter
|
||||
|
||||
physical-delivery-office-number INTEGER ::= 11
|
||||
|
||||
PhysicalDeliveryOfficeNumber ::= PDSParameter
|
||||
|
||||
extension-OR-address-components INTEGER ::= 12
|
||||
|
||||
ExtensionORAddressComponents ::= PDSParameter
|
||||
|
||||
physical-delivery-personal-name INTEGER ::= 13
|
||||
|
||||
PhysicalDeliveryPersonalName ::= PDSParameter
|
||||
|
||||
physical-delivery-organization-name INTEGER ::= 14
|
||||
|
||||
PhysicalDeliveryOrganizationName ::= PDSParameter
|
||||
|
||||
extension-physical-delivery-address-components INTEGER ::= 15
|
||||
|
||||
ExtensionPhysicalDeliveryAddressComponents ::= PDSParameter
|
||||
|
||||
unformatted-postal-address INTEGER ::= 16
|
||||
|
||||
UnformattedPostalAddress ::= SET {
|
||||
printable-address SEQUENCE SIZE (1..ub-pds-physical-address-lines)
|
||||
OF PrintableString (SIZE (1..ub-pds-parameter-length))
|
||||
OPTIONAL,
|
||||
teletex-string TeletexString
|
||||
(SIZE (1..ub-unformatted-address-length)) OPTIONAL }
|
||||
|
||||
street-address INTEGER ::= 17
|
||||
|
||||
StreetAddress ::= PDSParameter
|
||||
|
||||
post-office-box-address INTEGER ::= 18
|
||||
|
||||
PostOfficeBoxAddress ::= PDSParameter
|
||||
|
||||
poste-restante-address INTEGER ::= 19
|
||||
|
||||
PosteRestanteAddress ::= PDSParameter
|
||||
|
||||
unique-postal-name INTEGER ::= 20
|
||||
|
||||
UniquePostalName ::= PDSParameter
|
||||
|
||||
local-postal-attributes INTEGER ::= 21
|
||||
|
||||
LocalPostalAttributes ::= PDSParameter
|
||||
|
||||
PDSParameter ::= SET {
|
||||
printable-string PrintableString
|
||||
(SIZE(1..ub-pds-parameter-length)) OPTIONAL,
|
||||
teletex-string TeletexString
|
||||
(SIZE(1..ub-pds-parameter-length)) OPTIONAL }
|
||||
|
||||
extended-network-address INTEGER ::= 22
|
||||
|
||||
ExtendedNetworkAddress ::= CHOICE {
|
||||
e163-4-address SEQUENCE {
|
||||
number [0] IMPLICIT NumericString
|
||||
(SIZE (1..ub-e163-4-number-length)),
|
||||
sub-address [1] IMPLICIT NumericString
|
||||
(SIZE (1..ub-e163-4-sub-address-length))
|
||||
OPTIONAL },
|
||||
psap-address [0] IMPLICIT PresentationAddress }
|
||||
|
||||
PresentationAddress ::= SEQUENCE {
|
||||
pSelector [0] EXPLICIT OCTET STRING OPTIONAL,
|
||||
sSelector [1] EXPLICIT OCTET STRING OPTIONAL,
|
||||
tSelector [2] EXPLICIT OCTET STRING OPTIONAL,
|
||||
nAddresses [3] EXPLICIT SET SIZE (1..MAX) OF OCTET STRING }
|
||||
|
||||
terminal-type INTEGER ::= 23
|
||||
|
||||
TerminalType ::= INTEGER {
|
||||
telex (3),
|
||||
teletex (4),
|
||||
g3-facsimile (5),
|
||||
g4-facsimile (6),
|
||||
ia5-terminal (7),
|
||||
videotex (8) }
|
||||
|
||||
-- Extension Domain-defined Attributes
|
||||
|
||||
teletex-domain-defined-attributes INTEGER ::= 6
|
||||
|
||||
TeletexDomainDefinedAttributes ::= SEQUENCE SIZE
|
||||
(1..ub-domain-defined-attributes) OF TeletexDomainDefinedAttribute
|
||||
|
||||
TeletexDomainDefinedAttribute ::= SEQUENCE {
|
||||
type TeletexString
|
||||
(SIZE (1..ub-domain-defined-attribute-type-length)),
|
||||
value TeletexString
|
||||
(SIZE (1..ub-domain-defined-attribute-value-length)) }
|
||||
|
||||
-- specifications of Upper Bounds MUST be regarded as mandatory
|
||||
-- from Annex B of ITU-T X.411 Reference Definition of MTS Parameter
|
||||
-- Upper Bounds
|
||||
|
||||
-- Upper Bounds
|
||||
ub-name INTEGER ::= 32768
|
||||
ub-common-name INTEGER ::= 64
|
||||
ub-locality-name INTEGER ::= 128
|
||||
ub-state-name INTEGER ::= 128
|
||||
ub-organization-name INTEGER ::= 64
|
||||
ub-organizational-unit-name INTEGER ::= 64
|
||||
ub-title INTEGER ::= 64
|
||||
ub-serial-number INTEGER ::= 64
|
||||
ub-match INTEGER ::= 128
|
||||
ub-emailaddress-length INTEGER ::= 255
|
||||
ub-common-name-length INTEGER ::= 64
|
||||
ub-country-name-alpha-length INTEGER ::= 2
|
||||
ub-country-name-numeric-length INTEGER ::= 3
|
||||
ub-domain-defined-attributes INTEGER ::= 4
|
||||
ub-domain-defined-attribute-type-length INTEGER ::= 8
|
||||
ub-domain-defined-attribute-value-length INTEGER ::= 128
|
||||
ub-domain-name-length INTEGER ::= 16
|
||||
ub-extension-attributes INTEGER ::= 256
|
||||
ub-e163-4-number-length INTEGER ::= 15
|
||||
ub-e163-4-sub-address-length INTEGER ::= 40
|
||||
ub-generation-qualifier-length INTEGER ::= 3
|
||||
ub-given-name-length INTEGER ::= 16
|
||||
ub-initials-length INTEGER ::= 5
|
||||
ub-integer-options INTEGER ::= 256
|
||||
ub-numeric-user-id-length INTEGER ::= 32
|
||||
ub-organization-name-length INTEGER ::= 64
|
||||
ub-organizational-unit-name-length INTEGER ::= 32
|
||||
ub-organizational-units INTEGER ::= 4
|
||||
ub-pds-name-length INTEGER ::= 16
|
||||
ub-pds-parameter-length INTEGER ::= 30
|
||||
ub-pds-physical-address-lines INTEGER ::= 6
|
||||
ub-postal-code-length INTEGER ::= 16
|
||||
ub-pseudonym INTEGER ::= 128
|
||||
ub-surname-length INTEGER ::= 40
|
||||
ub-terminal-id-length INTEGER ::= 24
|
||||
ub-unformatted-address-length INTEGER ::= 180
|
||||
ub-x121-address-length INTEGER ::= 16
|
||||
|
||||
-- Note - upper bounds on string types, such as TeletexString, are
|
||||
-- measured in characters. Excepting PrintableString or IA5String, a
|
||||
-- significantly greater number of octets will be required to hold
|
||||
-- such a value. As a minimum, 16 octets, or twice the specified
|
||||
-- upper bound, whichever is the larger, should be allowed for
|
||||
-- TeletexString. For UTF8String or UniversalString at least four
|
||||
-- times the upper bound should be allowed.
|
||||
|
||||
END
|
|
@ -0,0 +1,213 @@
|
|||
#include "PKIX1Explicit88.hh"
|
||||
|
||||
namespace PKIX1Explicit88__Types {
|
||||
|
||||
using namespace PKIX1Explicit88;
|
||||
|
||||
TTCN_Module PKIX1Explicit88__EncDec("PKIX1Explicit88_EncDec", __DATE__, __TIME__);
|
||||
|
||||
OCTETSTRING enc__X520name(const X520name &msg) {
|
||||
TTCN_Buffer buf;
|
||||
|
||||
buf.clear();
|
||||
msg.encode(X520name_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
return OCTETSTRING(buf.get_len(), buf.get_data());
|
||||
}
|
||||
|
||||
X520name dec__X520name(const OCTETSTRING &stream) {
|
||||
TTCN_Buffer buf;
|
||||
X520name msg;
|
||||
buf.put_os(stream);
|
||||
|
||||
msg.decode(X520name_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
return msg;
|
||||
}
|
||||
|
||||
OCTETSTRING enc__X520CommonName(const X520CommonName &msg) {
|
||||
TTCN_Buffer buf;
|
||||
|
||||
buf.clear();
|
||||
msg.encode(X520CommonName_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
return OCTETSTRING(buf.get_len(), buf.get_data());
|
||||
}
|
||||
|
||||
X520CommonName dec__X520CommonName(const OCTETSTRING &stream) {
|
||||
TTCN_Buffer buf;
|
||||
X520CommonName msg;
|
||||
buf.put_os(stream);
|
||||
|
||||
msg.decode(X520CommonName_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
return msg;
|
||||
}
|
||||
|
||||
OCTETSTRING enc__X520LocalityName(const X520LocalityName &msg) {
|
||||
TTCN_Buffer buf;
|
||||
|
||||
buf.clear();
|
||||
msg.encode(X520LocalityName_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
return OCTETSTRING(buf.get_len(), buf.get_data());
|
||||
}
|
||||
|
||||
X520LocalityName dec__X520LocalityName(const OCTETSTRING &stream) {
|
||||
TTCN_Buffer buf;
|
||||
X520LocalityName msg;
|
||||
buf.put_os(stream);
|
||||
|
||||
msg.decode(X520LocalityName_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
return msg;
|
||||
}
|
||||
|
||||
OCTETSTRING enc__X520StateOrProvinceName(const X520StateOrProvinceName &msg) {
|
||||
TTCN_Buffer buf;
|
||||
|
||||
buf.clear();
|
||||
msg.encode(X520StateOrProvinceName_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
return OCTETSTRING(buf.get_len(), buf.get_data());
|
||||
}
|
||||
|
||||
X520StateOrProvinceName dec__X520StateOrProvinceName(const OCTETSTRING &stream) {
|
||||
TTCN_Buffer buf;
|
||||
X520StateOrProvinceName msg;
|
||||
buf.put_os(stream);
|
||||
|
||||
msg.decode(X520StateOrProvinceName_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
return msg;
|
||||
}
|
||||
|
||||
OCTETSTRING enc__X520OrganizationName(const X520OrganizationName &msg) {
|
||||
TTCN_Buffer buf;
|
||||
|
||||
buf.clear();
|
||||
msg.encode(X520OrganizationName_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
return OCTETSTRING(buf.get_len(), buf.get_data());
|
||||
}
|
||||
|
||||
X520OrganizationName dec__X520OrganizationName(const OCTETSTRING &stream) {
|
||||
TTCN_Buffer buf;
|
||||
X520OrganizationName msg;
|
||||
buf.put_os(stream);
|
||||
|
||||
msg.decode(X520OrganizationName_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
return msg;
|
||||
}
|
||||
|
||||
OCTETSTRING enc__X520OrganizationalUnitName(const X520OrganizationalUnitName &msg) {
|
||||
TTCN_Buffer buf;
|
||||
|
||||
buf.clear();
|
||||
msg.encode(X520OrganizationalUnitName_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
return OCTETSTRING(buf.get_len(), buf.get_data());
|
||||
}
|
||||
|
||||
X520OrganizationalUnitName dec__X520OrganizationalUnitName(const OCTETSTRING &stream) {
|
||||
TTCN_Buffer buf;
|
||||
X520OrganizationalUnitName msg;
|
||||
buf.put_os(stream);
|
||||
|
||||
msg.decode(X520OrganizationalUnitName_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
return msg;
|
||||
}
|
||||
|
||||
OCTETSTRING enc__X520Title(const X520Title &msg) {
|
||||
TTCN_Buffer buf;
|
||||
|
||||
buf.clear();
|
||||
msg.encode(X520Title_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
return OCTETSTRING(buf.get_len(), buf.get_data());
|
||||
}
|
||||
|
||||
X520Title dec__X520Title(const OCTETSTRING &stream) {
|
||||
TTCN_Buffer buf;
|
||||
X520Title msg;
|
||||
buf.put_os(stream);
|
||||
|
||||
msg.decode(X520Title_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
return msg;
|
||||
}
|
||||
|
||||
OCTETSTRING enc__X520dnQualifier(const X520dnQualifier &msg) {
|
||||
TTCN_Buffer buf;
|
||||
|
||||
buf.clear();
|
||||
msg.encode(X520dnQualifier_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
return OCTETSTRING(buf.get_len(), buf.get_data());
|
||||
}
|
||||
|
||||
X520dnQualifier dec__X520dnQualifier(const OCTETSTRING &stream) {
|
||||
TTCN_Buffer buf;
|
||||
X520dnQualifier msg;
|
||||
buf.put_os(stream);
|
||||
|
||||
msg.decode(X520dnQualifier_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
return msg;
|
||||
}
|
||||
|
||||
OCTETSTRING enc__X520countryName(const X520countryName &msg) {
|
||||
TTCN_Buffer buf;
|
||||
|
||||
buf.clear();
|
||||
msg.encode(X520countryName_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
return OCTETSTRING(buf.get_len(), buf.get_data());
|
||||
}
|
||||
|
||||
X520countryName dec__X520countryName(const OCTETSTRING &stream) {
|
||||
TTCN_Buffer buf;
|
||||
X520countryName msg;
|
||||
buf.put_os(stream);
|
||||
|
||||
msg.decode(X520countryName_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
return msg;
|
||||
}
|
||||
|
||||
OCTETSTRING enc__X520SerialNumber(const X520SerialNumber &msg) {
|
||||
TTCN_Buffer buf;
|
||||
|
||||
buf.clear();
|
||||
msg.encode(X520SerialNumber_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
return OCTETSTRING(buf.get_len(), buf.get_data());
|
||||
}
|
||||
|
||||
X520SerialNumber dec__X520SerialNumber(const OCTETSTRING &stream) {
|
||||
TTCN_Buffer buf;
|
||||
X520SerialNumber msg;
|
||||
buf.put_os(stream);
|
||||
|
||||
msg.decode(X520SerialNumber_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
return msg;
|
||||
}
|
||||
|
||||
OCTETSTRING enc__X520Pseudonym(const X520Pseudonym &msg) {
|
||||
TTCN_Buffer buf;
|
||||
|
||||
buf.clear();
|
||||
msg.encode(X520Pseudonym_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
return OCTETSTRING(buf.get_len(), buf.get_data());
|
||||
}
|
||||
|
||||
X520Pseudonym dec__X520Pseudonym(const OCTETSTRING &stream) {
|
||||
TTCN_Buffer buf;
|
||||
X520Pseudonym msg;
|
||||
buf.put_os(stream);
|
||||
|
||||
msg.decode(X520Pseudonym_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
return msg;
|
||||
}
|
||||
|
||||
OCTETSTRING enc__Certificate(const Certificate &msg) {
|
||||
TTCN_Buffer buf;
|
||||
|
||||
buf.clear();
|
||||
msg.encode(Certificate_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
return OCTETSTRING(buf.get_len(), buf.get_data());
|
||||
}
|
||||
|
||||
Certificate dec__Certificate(const OCTETSTRING &stream) {
|
||||
TTCN_Buffer buf;
|
||||
Certificate msg;
|
||||
buf.put_os(stream);
|
||||
|
||||
msg.decode(Certificate_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
return msg;
|
||||
}
|
||||
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,42 @@
|
|||
module PKIX1Explicit88_Types {
|
||||
|
||||
import from PKIX1Explicit88 all;
|
||||
import from Native_Functions all;
|
||||
|
||||
external function dec_X520name(in octetstring stream) return X520name;
|
||||
external function enc_X520name(in X520name msg) return octetstring;
|
||||
|
||||
external function dec_X520CommonName(in octetstring stream) return X520CommonName;
|
||||
external function enc_X520CommonName(in X520CommonName msg) return octetstring;
|
||||
|
||||
external function dec_X520LocalityName(in octetstring stream) return X520LocalityName;
|
||||
external function enc_X520LocalityName(in X520LocalityName msg) return octetstring;
|
||||
|
||||
external function dec_X520StateOrProvinceName(in octetstring stream) return X520StateOrProvinceName;
|
||||
external function enc_X520StateOrProvinceName(in X520StateOrProvinceName msg) return octetstring;
|
||||
|
||||
external function dec_X520OrganizationName(in octetstring stream) return X520OrganizationName;
|
||||
external function enc_X520OrganizationName(in X520OrganizationName msg) return octetstring;
|
||||
|
||||
external function dec_X520OrganizationalUnitName(in octetstring stream) return X520OrganizationalUnitName;
|
||||
external function enc_X520OrganizationalUnitName(in X520OrganizationalUnitName msg) return octetstring;
|
||||
|
||||
external function dec_X520Title(in octetstring stream) return X520Title;
|
||||
external function enc_X520Title(in X520Title msg) return octetstring;
|
||||
|
||||
external function dec_X520dnQualifier(in octetstring stream) return X520dnQualifier;
|
||||
external function enc_X520dnQualifier(in X520dnQualifier msg) return octetstring;
|
||||
|
||||
external function dec_X520countryName(in octetstring stream) return X520countryName;
|
||||
external function enc_X520countryName(in X520countryName msg) return octetstring;
|
||||
|
||||
external function dec_X520SerialNumber(in octetstring stream) return X520SerialNumber;
|
||||
external function enc_X520SerialNumber(in X520SerialNumber msg) return octetstring;
|
||||
|
||||
external function dec_X520Pseudonym(in octetstring stream) return X520Pseudonym;
|
||||
external function enc_X520Pseudonym(in X520Pseudonym msg) return octetstring;
|
||||
|
||||
external function dec_Certificate(in octetstring stream) return Certificate;
|
||||
external function enc_Certificate(in Certificate msg) return octetstring;
|
||||
|
||||
}
|
|
@ -0,0 +1,387 @@
|
|||
|
||||
--
|
||||
-- ASN.1 module found by ./crfc2asn1.pl in rfc3280.txt at line 5850
|
||||
--
|
||||
|
||||
PKIX1Implicit88 { iso(1) identified-organization(3) dod(6) internet(1)
|
||||
security(5) mechanisms(5) pkix(7) id-mod(0) id-pkix1-implicit(19) }
|
||||
|
||||
DEFINITIONS IMPLICIT TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
-- EXPORTS ALL --
|
||||
|
||||
IMPORTS
|
||||
id-pe, id-kp, id-qt-unotice, id-qt-cps,
|
||||
ORAddress, Name, RelativeDistinguishedName,
|
||||
CertificateSerialNumber, Attribute, DirectoryString
|
||||
FROM PKIX1Explicit88 { iso(1) identified-organization(3)
|
||||
dod(6) internet(1) security(5) mechanisms(5) pkix(7)
|
||||
id-mod(0) id-pkix1-explicit(18) };
|
||||
|
||||
|
||||
-- ISO arc for standard certificate and CRL extensions
|
||||
|
||||
id-ce OBJECT IDENTIFIER ::= {joint-iso-ccitt(2) ds(5) 29}
|
||||
|
||||
-- authority key identifier OID and syntax
|
||||
|
||||
id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 35 }
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
AuthorityKeyIdentifier ::= SEQUENCE {
|
||||
keyIdentifier [0] KeyIdentifier OPTIONAL,
|
||||
authorityCertIssuer [1] GeneralNames OPTIONAL,
|
||||
authorityCertSerialNumber [2] CertificateSerialNumber OPTIONAL }
|
||||
-- authorityCertIssuer and authorityCertSerialNumber MUST both
|
||||
-- be present or both be absent
|
||||
|
||||
KeyIdentifier ::= OCTET STRING
|
||||
|
||||
-- subject key identifier OID and syntax
|
||||
|
||||
id-ce-subjectKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 14 }
|
||||
|
||||
SubjectKeyIdentifier ::= KeyIdentifier
|
||||
|
||||
-- key usage extension OID and syntax
|
||||
|
||||
id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }
|
||||
|
||||
KeyUsage ::= BIT STRING {
|
||||
digitalSignature (0),
|
||||
nonRepudiation (1),
|
||||
keyEncipherment (2),
|
||||
dataEncipherment (3),
|
||||
keyAgreement (4),
|
||||
keyCertSign (5),
|
||||
cRLSign (6),
|
||||
encipherOnly (7),
|
||||
decipherOnly (8) }
|
||||
|
||||
-- private key usage period extension OID and syntax
|
||||
|
||||
id-ce-privateKeyUsagePeriod OBJECT IDENTIFIER ::= { id-ce 16 }
|
||||
|
||||
PrivateKeyUsagePeriod ::= SEQUENCE {
|
||||
notBefore [0] GeneralizedTime OPTIONAL,
|
||||
notAfter [1] GeneralizedTime OPTIONAL }
|
||||
-- either notBefore or notAfter MUST be present
|
||||
|
||||
-- certificate policies extension OID and syntax
|
||||
|
||||
id-ce-certificatePolicies OBJECT IDENTIFIER ::= { id-ce 32 }
|
||||
|
||||
anyPolicy OBJECT IDENTIFIER ::= { id-ce-certificatePolicies 0 }
|
||||
|
||||
CertificatePolicies ::= SEQUENCE SIZE (1..MAX) OF PolicyInformation
|
||||
|
||||
PolicyInformation ::= SEQUENCE {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
policyIdentifier CertPolicyId,
|
||||
policyQualifiers SEQUENCE SIZE (1..MAX) OF
|
||||
PolicyQualifierInfo OPTIONAL }
|
||||
|
||||
CertPolicyId ::= OBJECT IDENTIFIER
|
||||
|
||||
PolicyQualifierInfo ::= SEQUENCE {
|
||||
policyQualifierId PolicyQualifierId,
|
||||
qualifier ANY DEFINED BY policyQualifierId }
|
||||
|
||||
-- Implementations that recognize additional policy qualifiers MUST
|
||||
-- augment the following definition for PolicyQualifierId
|
||||
|
||||
PolicyQualifierId ::=
|
||||
OBJECT IDENTIFIER -- ( id-qt-cps | id-qt-unotice )
|
||||
|
||||
-- CPS pointer qualifier
|
||||
|
||||
CPSuri ::= IA5String
|
||||
|
||||
-- user notice qualifier
|
||||
|
||||
UserNotice ::= SEQUENCE {
|
||||
noticeRef NoticeReference OPTIONAL,
|
||||
explicitText DisplayText OPTIONAL}
|
||||
|
||||
NoticeReference ::= SEQUENCE {
|
||||
organization DisplayText,
|
||||
noticeNumbers SEQUENCE OF INTEGER }
|
||||
|
||||
DisplayText ::= CHOICE {
|
||||
ia5String IA5String (SIZE (1..200)),
|
||||
visibleString VisibleString (SIZE (1..200)),
|
||||
bmpString BMPString (SIZE (1..200)),
|
||||
utf8String UTF8String (SIZE (1..200)) }
|
||||
|
||||
-- policy mapping extension OID and syntax
|
||||
|
||||
id-ce-policyMappings OBJECT IDENTIFIER ::= { id-ce 33 }
|
||||
|
||||
PolicyMappings ::= SEQUENCE SIZE (1..MAX) OF SEQUENCE {
|
||||
issuerDomainPolicy CertPolicyId,
|
||||
subjectDomainPolicy CertPolicyId }
|
||||
|
||||
-- subject alternative name extension OID and syntax
|
||||
|
||||
id-ce-subjectAltName OBJECT IDENTIFIER ::= { id-ce 17 }
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
SubjectAltName ::= GeneralNames
|
||||
|
||||
GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName
|
||||
|
||||
GeneralName ::= CHOICE {
|
||||
otherName [0] AnotherName,
|
||||
rfc822Name [1] IA5String,
|
||||
dNSName [2] IA5String,
|
||||
x400Address [3] ORAddress,
|
||||
directoryName [4] Name,
|
||||
ediPartyName [5] EDIPartyName,
|
||||
uniformResourceIdentifier [6] IA5String,
|
||||
iPAddress [7] OCTET STRING,
|
||||
registeredID [8] OBJECT IDENTIFIER }
|
||||
|
||||
-- AnotherName replaces OTHER-NAME ::= TYPE-IDENTIFIER, as
|
||||
-- TYPE-IDENTIFIER is not supported in the '88 ASN.1 syntax
|
||||
|
||||
AnotherName ::= SEQUENCE {
|
||||
type-id OBJECT IDENTIFIER,
|
||||
value [0] EXPLICIT ANY DEFINED BY type-id }
|
||||
|
||||
EDIPartyName ::= SEQUENCE {
|
||||
nameAssigner [0] DirectoryString OPTIONAL,
|
||||
partyName [1] DirectoryString }
|
||||
|
||||
-- issuer alternative name extension OID and syntax
|
||||
|
||||
id-ce-issuerAltName OBJECT IDENTIFIER ::= { id-ce 18 }
|
||||
|
||||
IssuerAltName ::= GeneralNames
|
||||
|
||||
id-ce-subjectDirectoryAttributes OBJECT IDENTIFIER ::= { id-ce 9 }
|
||||
|
||||
SubjectDirectoryAttributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
|
||||
|
||||
-- basic constraints extension OID and syntax
|
||||
|
||||
id-ce-basicConstraints OBJECT IDENTIFIER ::= { id-ce 19 }
|
||||
|
||||
BasicConstraints ::= SEQUENCE {
|
||||
cA BOOLEAN DEFAULT FALSE,
|
||||
pathLenConstraint INTEGER (0..MAX) OPTIONAL }
|
||||
|
||||
-- name constraints extension OID and syntax
|
||||
|
||||
id-ce-nameConstraints OBJECT IDENTIFIER ::= { id-ce 30 }
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
NameConstraints ::= SEQUENCE {
|
||||
permittedSubtrees [0] GeneralSubtrees OPTIONAL,
|
||||
excludedSubtrees [1] GeneralSubtrees OPTIONAL }
|
||||
|
||||
GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree
|
||||
|
||||
GeneralSubtree ::= SEQUENCE {
|
||||
base GeneralName,
|
||||
minimum [0] BaseDistance DEFAULT 0,
|
||||
maximum [1] BaseDistance OPTIONAL }
|
||||
|
||||
BaseDistance ::= INTEGER (0..MAX)
|
||||
|
||||
-- policy constraints extension OID and syntax
|
||||
|
||||
id-ce-policyConstraints OBJECT IDENTIFIER ::= { id-ce 36 }
|
||||
|
||||
PolicyConstraints ::= SEQUENCE {
|
||||
requireExplicitPolicy [0] SkipCerts OPTIONAL,
|
||||
inhibitPolicyMapping [1] SkipCerts OPTIONAL }
|
||||
|
||||
SkipCerts ::= INTEGER (0..MAX)
|
||||
|
||||
-- CRL distribution points extension OID and syntax
|
||||
|
||||
id-ce-cRLDistributionPoints OBJECT IDENTIFIER ::= {id-ce 31}
|
||||
|
||||
CRLDistributionPoints ::= SEQUENCE SIZE (1..MAX) OF DistributionPoint
|
||||
|
||||
DistributionPoint ::= SEQUENCE {
|
||||
distributionPoint [0] DistributionPointName OPTIONAL,
|
||||
reasons [1] ReasonFlags OPTIONAL,
|
||||
cRLIssuer [2] GeneralNames OPTIONAL }
|
||||
|
||||
DistributionPointName ::= CHOICE {
|
||||
fullName [0] GeneralNames,
|
||||
nameRelativeToCRLIssuer [1] RelativeDistinguishedName }
|
||||
|
||||
ReasonFlags ::= BIT STRING {
|
||||
unused (0),
|
||||
keyCompromise (1),
|
||||
cACompromise (2),
|
||||
affiliationChanged (3),
|
||||
superseded (4),
|
||||
cessationOfOperation (5),
|
||||
certificateHold (6),
|
||||
privilegeWithdrawn (7),
|
||||
aACompromise (8) }
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
-- extended key usage extension OID and syntax
|
||||
|
||||
id-ce-extKeyUsage OBJECT IDENTIFIER ::= {id-ce 37}
|
||||
|
||||
ExtKeyUsageSyntax ::= SEQUENCE SIZE (1..MAX) OF KeyPurposeId
|
||||
|
||||
|
||||
KeyPurposeId ::= OBJECT IDENTIFIER
|
||||
|
||||
-- permit unspecified key uses
|
||||
|
||||
anyExtendedKeyUsage OBJECT IDENTIFIER ::= { id-ce-extKeyUsage 0 }
|
||||
|
||||
-- extended key purpose OIDs
|
||||
|
||||
id-kp-serverAuth OBJECT IDENTIFIER ::= { id-kp 1 }
|
||||
id-kp-clientAuth OBJECT IDENTIFIER ::= { id-kp 2 }
|
||||
id-kp-codeSigning OBJECT IDENTIFIER ::= { id-kp 3 }
|
||||
id-kp-emailProtection OBJECT IDENTIFIER ::= { id-kp 4 }
|
||||
id-kp-timeStamping OBJECT IDENTIFIER ::= { id-kp 8 }
|
||||
id-kp-OCSPSigning OBJECT IDENTIFIER ::= { id-kp 9 }
|
||||
|
||||
-- inhibit any policy OID and syntax
|
||||
|
||||
id-ce-inhibitAnyPolicy OBJECT IDENTIFIER ::= { id-ce 54 }
|
||||
|
||||
InhibitAnyPolicy ::= SkipCerts
|
||||
|
||||
-- freshest (delta)CRL extension OID and syntax
|
||||
|
||||
id-ce-freshestCRL OBJECT IDENTIFIER ::= { id-ce 46 }
|
||||
|
||||
FreshestCRL ::= CRLDistributionPoints
|
||||
|
||||
-- authority info access
|
||||
|
||||
id-pe-authorityInfoAccess OBJECT IDENTIFIER ::= { id-pe 1 }
|
||||
|
||||
AuthorityInfoAccessSyntax ::=
|
||||
SEQUENCE SIZE (1..MAX) OF AccessDescription
|
||||
|
||||
AccessDescription ::= SEQUENCE {
|
||||
accessMethod OBJECT IDENTIFIER,
|
||||
accessLocation GeneralName }
|
||||
|
||||
-- subject info access
|
||||
|
||||
id-pe-subjectInfoAccess OBJECT IDENTIFIER ::= { id-pe 11 }
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
SubjectInfoAccessSyntax ::=
|
||||
SEQUENCE SIZE (1..MAX) OF AccessDescription
|
||||
|
||||
-- CRL number extension OID and syntax
|
||||
|
||||
id-ce-cRLNumber OBJECT IDENTIFIER ::= { id-ce 20 }
|
||||
|
||||
CRLNumber ::= INTEGER (0..MAX)
|
||||
|
||||
-- issuing distribution point extension OID and syntax
|
||||
|
||||
id-ce-issuingDistributionPoint OBJECT IDENTIFIER ::= { id-ce 28 }
|
||||
|
||||
IssuingDistributionPoint ::= SEQUENCE {
|
||||
distributionPoint [0] DistributionPointName OPTIONAL,
|
||||
onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE,
|
||||
onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE,
|
||||
onlySomeReasons [3] ReasonFlags OPTIONAL,
|
||||
indirectCRL [4] BOOLEAN DEFAULT FALSE,
|
||||
onlyContainsAttributeCerts [5] BOOLEAN DEFAULT FALSE }
|
||||
|
||||
id-ce-deltaCRLIndicator OBJECT IDENTIFIER ::= { id-ce 27 }
|
||||
|
||||
BaseCRLNumber ::= CRLNumber
|
||||
|
||||
-- CRL reasons extension OID and syntax
|
||||
|
||||
id-ce-cRLReasons OBJECT IDENTIFIER ::= { id-ce 21 }
|
||||
|
||||
CRLReason ::= ENUMERATED {
|
||||
unspecified (0),
|
||||
keyCompromise (1),
|
||||
cACompromise (2),
|
||||
affiliationChanged (3),
|
||||
superseded (4),
|
||||
cessationOfOperation (5),
|
||||
certificateHold (6),
|
||||
removeFromCRL (8),
|
||||
privilegeWithdrawn (9),
|
||||
aACompromise (10) }
|
||||
|
||||
-- certificate issuer CRL entry extension OID and syntax
|
||||
|
||||
id-ce-certificateIssuer OBJECT IDENTIFIER ::= { id-ce 29 }
|
||||
|
||||
CertificateIssuer ::= GeneralNames
|
||||
|
||||
-- hold instruction extension OID and syntax
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
id-ce-holdInstructionCode OBJECT IDENTIFIER ::= { id-ce 23 }
|
||||
|
||||
HoldInstructionCode ::= OBJECT IDENTIFIER
|
||||
|
||||
-- ANSI x9 holdinstructions
|
||||
|
||||
-- ANSI x9 arc holdinstruction arc
|
||||
|
||||
holdInstruction OBJECT IDENTIFIER ::=
|
||||
{joint-iso-itu-t(2) member-body(2) us(840) x9cm(10040) 2}
|
||||
|
||||
-- ANSI X9 holdinstructions referenced by this standard
|
||||
|
||||
id-holdinstruction-none OBJECT IDENTIFIER ::=
|
||||
{holdInstruction 1} -- deprecated
|
||||
|
||||
id-holdinstruction-callissuer OBJECT IDENTIFIER ::=
|
||||
{holdInstruction 2}
|
||||
|
||||
id-holdinstruction-reject OBJECT IDENTIFIER ::=
|
||||
{holdInstruction 3}
|
||||
|
||||
-- invalidity date CRL entry extension OID and syntax
|
||||
|
||||
id-ce-invalidityDate OBJECT IDENTIFIER ::= { id-ce 24 }
|
||||
|
||||
InvalidityDate ::= GeneralizedTime
|
||||
|
||||
END
|
|
@ -0,0 +1,26 @@
|
|||
#include "PKIX1Implicit88.hh"
|
||||
|
||||
namespace PKIX1Implicit88__Types {
|
||||
|
||||
using namespace PKIX1Implicit88;
|
||||
|
||||
TTCN_Module PKIX1Implicit88__EncDec("PKIX1Implicit88_EncDec", __DATE__, __TIME__);
|
||||
|
||||
OCTETSTRING enc__SubjectKeyIdentifier(const SubjectKeyIdentifier &msg) {
|
||||
TTCN_Buffer buf;
|
||||
|
||||
buf.clear();
|
||||
msg.encode(SubjectKeyIdentifier_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
return OCTETSTRING(buf.get_len(), buf.get_data());
|
||||
}
|
||||
|
||||
SubjectKeyIdentifier dec__SubjectKeyIdentifier(const OCTETSTRING &stream) {
|
||||
TTCN_Buffer buf;
|
||||
SubjectKeyIdentifier msg;
|
||||
buf.put_os(stream);
|
||||
|
||||
msg.decode(SubjectKeyIdentifier_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
return msg;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
/* PKIX1 Templates in TTCN-3
|
||||
*
|
||||
* Author: Philipp Maier <pmaier@sysmocom.de> / sysmocom - s.f.m.c. GmbH
|
||||
*
|
||||
* Released under the terms of GNU General Public License, Version 2 or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
module PKIX1Implicit88_Templates {
|
||||
|
||||
import from PKIX1Implicit88_Types all;
|
||||
import from PKIX1Implicit88 all;
|
||||
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
module PKIX1Implicit88_Types {
|
||||
|
||||
import from PKIX1Implicit88 all;
|
||||
import from Native_Functions all;
|
||||
|
||||
external function dec_SubjectKeyIdentifier(in octetstring stream) return SubjectKeyIdentifier;
|
||||
external function enc_SubjectKeyIdentifier(in SubjectKeyIdentifier msg) return octetstring;
|
||||
|
||||
}
|
|
@ -0,0 +1,825 @@
|
|||
--Version V2.5
|
||||
RSPDefinitions {joint-iso-itu-t(2) international-organizations(23) gsma(146) rsp(1)
|
||||
asn1modules(1) sgp22v2(2)}
|
||||
DEFINITIONS
|
||||
AUTOMATIC TAGS
|
||||
EXTENSIBILITY IMPLIED ::=
|
||||
BEGIN
|
||||
|
||||
IMPORTS Certificate, CertificateList, Time FROM PKIX1Explicit88 {iso(1) identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) pkix(7) id-mod(0) id-pkix1-explicit(18)}
|
||||
SubjectKeyIdentifier FROM PKIX1Implicit88 {iso(1) identified-organization(3) dod(6)
|
||||
internet(1) security(5) mechanisms(5) pkix(7) id-mod(0) id-pkix1-implicit(19)}
|
||||
UICCCapability FROM PEDefinitions {joint-iso-itu-t(2) international-organizations(23) tca(143) euicc-profile(1) spec-version(1) version-three(3)};
|
||||
-- The UICCCapability import module version is defined in section 5.7.8
|
||||
|
||||
id-rsp OBJECT IDENTIFIER ::= {joint-iso-itu-t(2) international-organizations(23)
|
||||
gsma(146) rsp(1)}
|
||||
|
||||
-- Basic types, for size constraints
|
||||
Octet8 ::= OCTET STRING (SIZE(8))
|
||||
Octet4 ::= OCTET STRING (SIZE(4))
|
||||
Octet16 ::= OCTET STRING (SIZE(16))
|
||||
OctetTo16 ::= OCTET STRING (SIZE(1..16))
|
||||
Octet32 ::= OCTET STRING (SIZE(32))
|
||||
Octet1 ::= OCTET STRING(SIZE(1))
|
||||
Octet2 ::= OCTET STRING (SIZE(2))
|
||||
VersionType ::= OCTET STRING(SIZE(3)) -- major/minor/revision version are coded as binary value on byte 1/2/3, e.g. '02 00 0C' for v2.0.12.
|
||||
-- If revision is not used (e.g. v2.1), byte 3 SHALL be set to '00'.
|
||||
Iccid ::= [APPLICATION 26] OCTET STRING (SIZE(10)) -- ICCID as coded in EFiccid, corresponding tag is '5A'
|
||||
RemoteOpId ::= [2] INTEGER {installBoundProfilePackage(1)}
|
||||
TransactionId ::= OCTET STRING (SIZE(1..16))
|
||||
|
||||
-- Definition of EUICCInfo1 --------------------------
|
||||
GetEuiccInfo1Request ::= [32] SEQUENCE { -- Tag 'BF20'
|
||||
}
|
||||
|
||||
EUICCInfo1 ::= [32] SEQUENCE { -- Tag 'BF20'
|
||||
svn [2] VersionType, -- GSMA SGP.22 version supported (SVN)
|
||||
euiccCiPKIdListForVerification [9] SEQUENCE OF SubjectKeyIdentifier, -- List of CI Public Key Identifiers supported on the eUICC for signature verification
|
||||
euiccCiPKIdListForSigning [10] SEQUENCE OF SubjectKeyIdentifier -- List of CI Public Key Identifier supported on the eUICC for signature creation
|
||||
}
|
||||
|
||||
-- Definition of EUICCInfo2 --------------------------
|
||||
GetEuiccInfo2Request ::= [34] SEQUENCE { -- Tag 'BF22'
|
||||
}
|
||||
|
||||
EUICCInfo2 ::= [34] SEQUENCE { -- Tag 'BF22'
|
||||
profileVersion [1] VersionType, -- Base eUICC Profile package version supported
|
||||
svn [2] VersionType, -- GSMA SGP.22 version supported (SVN)
|
||||
euiccFirmwareVer [3] VersionType, -- eUICC Firmware version
|
||||
extCardResource [4] OCTET STRING, -- Extended Card Resource Information according to ETSI TS 102 226
|
||||
uiccCapability [5] UICCCapability,
|
||||
ts102241Version [6] VersionType OPTIONAL,
|
||||
globalplatformVersion [7] VersionType OPTIONAL,
|
||||
rspCapability [8] RspCapability,
|
||||
euiccCiPKIdListForVerification [9] SEQUENCE OF SubjectKeyIdentifier, -- List of CI Public Key Identifiers supported on the eUICC for signature verification
|
||||
euiccCiPKIdListForSigning [10] SEQUENCE OF SubjectKeyIdentifier, -- List of CI Public Key Identifier supported on the eUICC for signature creation
|
||||
euiccCategory [11] INTEGER {
|
||||
other(0),
|
||||
basicEuicc(1),
|
||||
mediumEuicc(2),
|
||||
contactlessEuicc(3)
|
||||
} OPTIONAL,
|
||||
forbiddenProfilePolicyRules [25] PprIds OPTIONAL, -- Tag '99'
|
||||
ppVersion VersionType, -- Protection Profile version
|
||||
sasAcreditationNumber UTF8String (SIZE(0..64)),
|
||||
certificationDataObject [12] CertificationDataObject OPTIONAL,
|
||||
treProperties [13] BIT STRING {
|
||||
isDiscrete(0),
|
||||
isIntegrated(1),
|
||||
usesRemoteMemory(2) -- refers to the usage of remote memory protected by the Remote Memory Protection Function described in SGP.21 [4]
|
||||
} OPTIONAL,
|
||||
treProductReference [14] UTF8String OPTIONAL, -- Platform_Label as defined in GlobalPlatform DLOA specification [57]
|
||||
additionalEuiccProfilePackageVersions [15] SEQUENCE OF VersionType OPTIONAL
|
||||
}
|
||||
|
||||
-- Definition of RspCapability
|
||||
RspCapability ::= BIT STRING {
|
||||
additionalProfile(0), -- at least one more Profile can be installed
|
||||
crlSupport(1), -- CRL
|
||||
rpmSupport(2), -- Remote Profile Management
|
||||
testProfileSupport (3), -- support for test profile
|
||||
deviceInfoExtensibilitySupport (4), -- support for ASN.1 extensibility in the Device Info
|
||||
serviceSpecificDataSupport (5) -- support for Service Specific Data in the Profile Metadata
|
||||
}
|
||||
|
||||
-- Definition of CertificationDataObject
|
||||
CertificationDataObject ::= SEQUENCE {
|
||||
platformLabel UTF8String, -- Platform_Label as defined in GlobalPlatform DLOA specification [57]
|
||||
discoveryBaseURL UTF8String -- Discovery Base URL of the SE default DLOA Registrar as defined in GlobalPlatform DLOA specification [57]
|
||||
}
|
||||
|
||||
CertificateInfo ::= BIT STRING {
|
||||
reserved(0), -- eUICC has a CERT.EUICC.ECDSA in GlobalPlatform format. The use of this bit is deprecated.
|
||||
certSigningX509(1), -- eUICC has a CERT.EUICC.ECDSA in X.509 format
|
||||
rfu2(2),
|
||||
rfu3(3),
|
||||
reserved2(4), -- Handling of Certificate in GlobalPlatform format. The use of this bit is deprecated.
|
||||
certVerificationX509(5)-- Handling of Certificate in X.509 format
|
||||
}
|
||||
|
||||
|
||||
-- Definition of DeviceInfo
|
||||
DeviceInfo ::= SEQUENCE {
|
||||
tac Octet4,
|
||||
deviceCapabilities DeviceCapabilities,
|
||||
imei Octet8 OPTIONAL
|
||||
}
|
||||
|
||||
DeviceCapabilities ::= SEQUENCE { -- Highest fully supported release for each definition
|
||||
-- The device SHALL set all the capabilities it supports
|
||||
gsmSupportedRelease VersionType OPTIONAL,
|
||||
utranSupportedRelease VersionType OPTIONAL,
|
||||
cdma2000onexSupportedRelease VersionType OPTIONAL,
|
||||
cdma2000hrpdSupportedRelease VersionType OPTIONAL,
|
||||
cdma2000ehrpdSupportedRelease VersionType OPTIONAL,
|
||||
eutranEpcSupportedRelease VersionType OPTIONAL,
|
||||
contactlessSupportedRelease VersionType OPTIONAL,
|
||||
rspCrlSupportedVersion VersionType OPTIONAL,
|
||||
nrEpcSupportedRelease VersionType OPTIONAL,
|
||||
nr5gcSupportedRelease VersionType OPTIONAL,
|
||||
eutran5gcSupportedRelease VersionType OPTIONAL,
|
||||
lpaSvn VersionType OPTIONAL, -- Not defined in this version of SGP.22
|
||||
catSupportedClasses CatSupportedClasses OPTIONAL, -- Not defined in this version of SGP.22
|
||||
euiccFormFactorType EuiccFormFactorType OPTIONAL, -- Not defined in this version of SGP.22
|
||||
deviceAdditionalFeatureSupport DeviceAdditionalFeatureSupport OPTIONAL
|
||||
}
|
||||
|
||||
-- Definition of DeviceAdditionalFeatureSupport
|
||||
DeviceAdditionalFeatureSupport ::= SEQUENCE {
|
||||
naiSupport VersionType OPTIONAL -- Device supports Network Access Identifier
|
||||
}
|
||||
|
||||
CatSupportedClasses ::= BIT STRING
|
||||
EuiccFormFactorType ::= INTEGER
|
||||
|
||||
|
||||
ProfileInfoListRequest ::= [45] SEQUENCE { -- Tag 'BF2D'
|
||||
searchCriteria [0] CHOICE {
|
||||
isdpAid [APPLICATION 15] OctetTo16, -- AID of the ISD-P, tag '4F'
|
||||
iccid Iccid, -- ICCID, tag '5A'
|
||||
profileClass [21] ProfileClass -- Tag '95'
|
||||
} OPTIONAL,
|
||||
tagList [APPLICATION 28] OCTET STRING OPTIONAL -- tag '5C'
|
||||
}
|
||||
|
||||
-- Definition of ProfileInfoList
|
||||
ProfileInfoListResponse ::= [45] CHOICE { -- Tag 'BF2D'
|
||||
profileInfoListOk SEQUENCE OF ProfileInfo,
|
||||
profileInfoListError ProfileInfoListError
|
||||
}
|
||||
|
||||
ProfileInfo ::= [PRIVATE 3] SEQUENCE { -- Tag 'E3'
|
||||
iccid Iccid OPTIONAL,
|
||||
isdpAid [APPLICATION 15] OctetTo16 OPTIONAL, -- AID of the ISD-P containing the Profile, tag '4F'
|
||||
profileState [112] ProfileState OPTIONAL, -- Tag '9F70'
|
||||
profileNickname [16] UTF8String (SIZE(0..64)) OPTIONAL, -- Tag '90'
|
||||
serviceProviderName [17] UTF8String (SIZE(0..32)) OPTIONAL, -- Tag '91'
|
||||
profileName [18] UTF8String (SIZE(0..64)) OPTIONAL, -- Tag '92'
|
||||
iconType [19] IconType OPTIONAL, -- Tag '93'
|
||||
icon [20] OCTET STRING (SIZE(0..1024)) OPTIONAL, -- Tag '94', see condition in ES10c:GetProfilesInfo
|
||||
profileClass [21] ProfileClass OPTIONAL, -- Tag '95'
|
||||
notificationConfigurationInfo [22] SEQUENCE OF NotificationConfigurationInformation OPTIONAL, -- Tag 'B6'
|
||||
profileOwner [23] OperatorId OPTIONAL, -- Tag 'B7'
|
||||
dpProprietaryData [24] DpProprietaryData OPTIONAL, -- Tag 'B8'
|
||||
profilePolicyRules [25] PprIds OPTIONAL, -- Tag '99'
|
||||
serviceSpecificDataStoredInEuicc [34] VendorSpecificExtension OPTIONAL -- Tag 'BF22'
|
||||
}
|
||||
|
||||
PprIds ::= BIT STRING {-- Definition of Profile Policy Rules identifiers
|
||||
pprUpdateControl(0), -- defines how to update PPRs via ES6
|
||||
ppr1(1), -- Indicator for PPR1 'Disabling of this Profile is not allowed'
|
||||
ppr2(2) -- Indicator for PPR2 'Deletion of this Profile is not allowed'
|
||||
}
|
||||
|
||||
OperatorId ::= SEQUENCE {
|
||||
mccMnc OCTET STRING (SIZE(3)), -- MCC and MNC coded as defined in 3GPP TS 24.008 [32]
|
||||
gid1 OCTET STRING OPTIONAL, -- referring to content of EF GID1 (file identifier '6F3E') as defined in 3GPP TS 31.102 [54]
|
||||
gid2 OCTET STRING OPTIONAL -- referring to content of EF GID2 (file identifier '6F3F') as defined in 3GPP TS 31.102 [54]
|
||||
}
|
||||
|
||||
ProfileInfoListError ::= INTEGER {incorrectInputValues(1), undefinedError(127)}
|
||||
|
||||
-- Definition of StoreMetadata request
|
||||
|
||||
StoreMetadataRequest ::= [37] SEQUENCE { -- Tag 'BF25'
|
||||
iccid Iccid,
|
||||
serviceProviderName [17] UTF8String (SIZE(0..32)), -- Tag '91'
|
||||
profileName [18] UTF8String (SIZE(0..64)), -- Tag '92' (corresponds to 'Short Description' defined in SGP.21 [2])
|
||||
iconType [19] IconType OPTIONAL, -- Tag '93' (JPG or PNG)
|
||||
icon [20] OCTET STRING (SIZE(0..1024)) OPTIONAL, -- Tag '94'(Data of the icon. Size 64 x 64 pixel. This field SHALL only be present if iconType is present)
|
||||
profileClass [21] ProfileClass DEFAULT operational, -- Tag '95'
|
||||
notificationConfigurationInfo [22] SEQUENCE OF NotificationConfigurationInformation OPTIONAL,
|
||||
profileOwner [23] OperatorId OPTIONAL, -- Tag 'B7'
|
||||
profilePolicyRules [25] PprIds OPTIONAL, -- Tag '99'
|
||||
serviceSpecificDataStoredInEuicc [34] VendorSpecificExtension OPTIONAL, -- Tag 'BF22'
|
||||
serviceSpecificDataNotStoredInEuicc [35] VendorSpecificExtension OPTIONAL -- Tag 'BF23'
|
||||
}
|
||||
|
||||
NotificationEvent ::= BIT STRING {
|
||||
notificationInstall(0),
|
||||
notificationEnable(1),
|
||||
notificationDisable(2),
|
||||
notificationDelete(3)
|
||||
}
|
||||
|
||||
NotificationConfigurationInformation ::= SEQUENCE {
|
||||
profileManagementOperation NotificationEvent,
|
||||
notificationAddress UTF8String -- FQDN to forward the notification
|
||||
}
|
||||
|
||||
OPENTYPE ::= CLASS {
|
||||
&typeId OBJECT IDENTIFIER,
|
||||
&Type
|
||||
}
|
||||
|
||||
VendorSpecificExtension ::= SEQUENCE OF SEQUENCE {
|
||||
vendorOid [0] OPENTYPE.&typeId, -- OID of the vendor who defined this specific extension
|
||||
vendorSpecificData [1] OPENTYPE.&Type
|
||||
}
|
||||
|
||||
IconType ::= INTEGER {jpg(0), png(1)}
|
||||
ProfileState ::= INTEGER {disabled(0), enabled(1)}
|
||||
ProfileClass ::= INTEGER {test(0), provisioning(1), operational(2)}
|
||||
|
||||
-- Definition of UpdateMetadata request
|
||||
UpdateMetadataRequest ::= [42] SEQUENCE { -- Tag 'BF2A'
|
||||
serviceProviderName [17] UTF8String (SIZE(0..32)) OPTIONAL, -- Tag '91'
|
||||
profileName [18] UTF8String (SIZE(0..64)) OPTIONAL, -- Tag '92'
|
||||
iconType [19] IconType OPTIONAL, -- Tag '93'
|
||||
icon [20] OCTET STRING (SIZE(0..1024)) OPTIONAL, -- Tag '94'
|
||||
profilePolicyRules [25] PprIds OPTIONAL, -- Tag '99'
|
||||
serviceSpecificDataStoredInEuicc [34] VendorSpecificExtension OPTIONAL -- Tag 'BF22'
|
||||
}
|
||||
|
||||
-- Definition of data objects for command PrepareDownload -------------------------
|
||||
PrepareDownloadRequest ::= [33] SEQUENCE { -- Tag 'BF21'
|
||||
smdpSigned2 SmdpSigned2, -- Signed information
|
||||
smdpSignature2 [APPLICATION 55] OCTET STRING, -- DP_Sign1, tag '5F37'
|
||||
hashCc Octet32 OPTIONAL, -- Hash of confirmation code
|
||||
smdpCertificate Certificate -- CERT.DPpb.ECDSA
|
||||
}
|
||||
|
||||
SmdpSigned2 ::= SEQUENCE {
|
||||
transactionId [0] TransactionId, -- The TransactionID generated by the SM-DP+
|
||||
ccRequiredFlag BOOLEAN, --Indicates if the Confirmation Code is required
|
||||
bppEuiccOtpk [APPLICATION 73] OCTET STRING OPTIONAL -- otPK.EUICC.ECKA already used for binding the BPP, tag '5F49'
|
||||
}
|
||||
|
||||
PrepareDownloadResponse ::= [33] CHOICE { -- Tag 'BF21'
|
||||
downloadResponseOk PrepareDownloadResponseOk,
|
||||
downloadResponseError PrepareDownloadResponseError
|
||||
}
|
||||
|
||||
PrepareDownloadResponseOk ::= SEQUENCE {
|
||||
euiccSigned2 EUICCSigned2, -- Signed information
|
||||
euiccSignature2 [APPLICATION 55] OCTET STRING -- tag '5F37'
|
||||
}
|
||||
|
||||
EUICCSigned2 ::= SEQUENCE {
|
||||
transactionId [0] TransactionId,
|
||||
euiccOtpk [APPLICATION 73] OCTET STRING, -- otPK.EUICC.ECKA, tag '5F49'
|
||||
hashCc Octet32 OPTIONAL -- Hash of confirmation code
|
||||
}
|
||||
|
||||
PrepareDownloadResponseError ::= SEQUENCE {
|
||||
transactionId [0] TransactionId,
|
||||
downloadErrorCode DownloadErrorCode
|
||||
}
|
||||
|
||||
DownloadErrorCode ::= INTEGER {invalidCertificate(1), invalidSignature(2),
|
||||
unsupportedCurve(3), noSessionContext(4), invalidTransactionId(5),
|
||||
undefinedError(127)}
|
||||
|
||||
-- Definition of data objects for command AuthenticateServer--------------------
|
||||
AuthenticateServerRequest ::= [56] SEQUENCE { -- Tag 'BF38'
|
||||
serverSigned1 ServerSigned1, -- Signed information
|
||||
serverSignature1 [APPLICATION 55] OCTET STRING, -- tag ‘5F37’
|
||||
euiccCiPKIdToBeUsed SubjectKeyIdentifier, -- CI Public Key Identifier to be used
|
||||
serverCertificate Certificate, -- RSP Server Certificate CERT.XXauth.ECDSA
|
||||
ctxParams1 CtxParams1
|
||||
}
|
||||
|
||||
ServerSigned1 ::= SEQUENCE {
|
||||
transactionId [0] TransactionId, -- The Transaction ID generated by the RSP Server
|
||||
euiccChallenge [1] Octet16, -- The eUICC Challenge
|
||||
serverAddress [3] UTF8String, -- The RSP Server address
|
||||
serverChallenge [4] Octet16 -- The RSP Server Challenge
|
||||
}
|
||||
|
||||
CtxParams1 ::= CHOICE {
|
||||
ctxParamsForCommonAuthentication CtxParamsForCommonAuthentication -- New contextual data objects MAY be defined for extensibility
|
||||
}
|
||||
|
||||
CtxParamsForCommonAuthentication ::= SEQUENCE {
|
||||
matchingId UTF8String OPTIONAL,-- The MatchingId could be the Activation code token or EventID or empty
|
||||
deviceInfo DeviceInfo -- The Device information
|
||||
}
|
||||
|
||||
AuthenticateServerResponse ::= [56] CHOICE { -- Tag 'BF38'
|
||||
authenticateResponseOk AuthenticateResponseOk,
|
||||
authenticateResponseError AuthenticateResponseError
|
||||
}
|
||||
|
||||
AuthenticateResponseOk ::= SEQUENCE {
|
||||
euiccSigned1 EuiccSigned1, -- Signed information
|
||||
euiccSignature1 [APPLICATION 55] OCTET STRING, --EUICC_Sign1, tag 5F37
|
||||
euiccCertificate Certificate, -- eUICC Certificate (CERT.EUICC.ECDSA) signed by the EUM
|
||||
eumCertificate Certificate -- EUM Certificate (CERT.EUM.ECDSA) signed by the requested CI
|
||||
}
|
||||
|
||||
EuiccSigned1 ::= SEQUENCE {
|
||||
transactionId [0] TransactionId,
|
||||
serverAddress [3] UTF8String,
|
||||
serverChallenge [4] Octet16, -- The RSP Server Challenge
|
||||
euiccInfo2 [34] EUICCInfo2,
|
||||
ctxParams1 CtxParams1
|
||||
}
|
||||
|
||||
AuthenticateResponseError ::= SEQUENCE {
|
||||
transactionId [0] TransactionId,
|
||||
authenticateErrorCode AuthenticateErrorCode
|
||||
}
|
||||
|
||||
AuthenticateErrorCode ::= INTEGER {invalidCertificate(1), invalidSignature(2),
|
||||
unsupportedCurve(3), noSessionContext(4), invalidOid(5), euiccChallengeMismatch(6),
|
||||
ciPKUnknown(7), undefinedError(127)}
|
||||
|
||||
-- Definition of Cancel Session------------------------------
|
||||
CancelSessionRequest ::= [65] SEQUENCE { -- Tag 'BF41'
|
||||
transactionId TransactionId, -- The TransactionID generated by the RSP Server
|
||||
reason CancelSessionReason
|
||||
}
|
||||
|
||||
CancelSessionReason ::= INTEGER {endUserRejection(0), postponed(1), timeout(2),
|
||||
pprNotAllowed(3), metadataMismatch(4), loadBppExecutionError(5),
|
||||
undefinedReason(127)}
|
||||
|
||||
CancelSessionResponse ::= [65] CHOICE { -- Tag 'BF41'
|
||||
cancelSessionResponseOk CancelSessionResponseOk,
|
||||
cancelSessionResponseError INTEGER {invalidTransactionId(5),
|
||||
undefinedError(127)}
|
||||
}
|
||||
|
||||
CancelSessionResponseOk ::= SEQUENCE {
|
||||
euiccCancelSessionSigned EuiccCancelSessionSigned, -- Signed information
|
||||
euiccCancelSessionSignature [APPLICATION 55] OCTET STRING -- tag '5F37
|
||||
}
|
||||
|
||||
EuiccCancelSessionSigned ::= SEQUENCE {
|
||||
transactionId TransactionId,
|
||||
smdpOid OBJECT IDENTIFIER, -- SM-DP+ OID as contained in CERT.DPauth.ECDSA
|
||||
reason CancelSessionReason
|
||||
}
|
||||
|
||||
-- Definition of Bound Profile Package --------------------------
|
||||
BoundProfilePackage ::= [54] SEQUENCE { -- Tag 'BF36'
|
||||
initialiseSecureChannelRequest [35] InitialiseSecureChannelRequest, -- Tag 'BF23'
|
||||
firstSequenceOf87 [0] SEQUENCE OF [7] OCTET STRING, -- sequence of '87' TLVs
|
||||
sequenceOf88 [1] SEQUENCE OF [8] OCTET STRING, -- sequence of '88' TLVs
|
||||
secondSequenceOf87 [2] SEQUENCE OF [7] OCTET STRING OPTIONAL, -- sequence of '87' TLVs
|
||||
sequenceOf86 [3] SEQUENCE OF [6] OCTET STRING -- sequence of '86' TLVs
|
||||
}
|
||||
|
||||
-- Definition of Get eUICC Challenge --------------------------
|
||||
GetEuiccChallengeRequest ::= [46] SEQUENCE { -- Tag 'BF2E'
|
||||
}
|
||||
|
||||
GetEuiccChallengeResponse ::= [46] SEQUENCE { -- Tag 'BF2E'
|
||||
euiccChallenge Octet16 -- random eUICC challenge
|
||||
}
|
||||
|
||||
-- Definition of Profile Installation Result
|
||||
ProfileInstallationResult ::= [55] SEQUENCE { -- Tag 'BF37'
|
||||
profileInstallationResultData [39] ProfileInstallationResultData,
|
||||
euiccSignPIR EuiccSignPIR
|
||||
}
|
||||
|
||||
ProfileInstallationResultData ::= [39] SEQUENCE { -- Tag 'BF27'
|
||||
transactionId[0] TransactionId, -- The TransactionID generated by the SM-DP+
|
||||
notificationMetadata[47] NotificationMetadata,
|
||||
smdpOid OBJECT IDENTIFIER, -- SM-DP+ OID (same value as in CERT.DPpb.ECDSA)
|
||||
finalResult [2] CHOICE {
|
||||
successResult SuccessResult,
|
||||
errorResult ErrorResult
|
||||
}
|
||||
}
|
||||
|
||||
EuiccSignPIR ::= [APPLICATION 55] OCTET STRING -- Tag '5F37', eUICC’s signature
|
||||
|
||||
SuccessResult ::= SEQUENCE {
|
||||
aid [APPLICATION 15] OCTET STRING (SIZE (5..16)), -- AID of ISD-P
|
||||
simaResponse OCTET STRING -- contains (multiple) 'EUICCResponse' as defined in [5]
|
||||
}
|
||||
|
||||
ErrorResult ::= SEQUENCE {
|
||||
bppCommandId BppCommandId,
|
||||
errorReason ErrorReason,
|
||||
simaResponse OCTET STRING OPTIONAL -- contains (multiple) 'EUICCResponse' as defined in [5]
|
||||
}
|
||||
|
||||
BppCommandId ::= INTEGER {initialiseSecureChannel(0), configureISDP(1),
|
||||
storeMetadata(2), storeMetadata2(3), replaceSessionKeys(4), loadProfileElements(5)}
|
||||
|
||||
ErrorReason ::= INTEGER {
|
||||
incorrectInputValues(1),
|
||||
invalidSignature(2),
|
||||
invalidTransactionId(3),
|
||||
unsupportedCrtValues(4),
|
||||
unsupportedRemoteOperationType(5),
|
||||
unsupportedProfileClass(6),
|
||||
scp03tStructureError(7),
|
||||
scp03tSecurityError(8),
|
||||
installFailedDueToIccidAlreadyExistsOnEuicc(9),
|
||||
installFailedDueToInsufficientMemoryForProfile(10),
|
||||
installFailedDueToInterruption(11),
|
||||
installFailedDueToPEProcessingError (12),
|
||||
installFailedDueToDataMismatch(13),
|
||||
testProfileInstallFailedDueToInvalidNaaKey(14),
|
||||
pprNotAllowed(15),
|
||||
installFailedDueToUnknownError(127)
|
||||
}
|
||||
|
||||
ListNotificationRequest ::= [40] SEQUENCE { -- Tag 'BF28'
|
||||
profileManagementOperation [1] NotificationEvent OPTIONAL
|
||||
}
|
||||
|
||||
ListNotificationResponse ::= [40] CHOICE { -- Tag 'BF28'
|
||||
notificationMetadataList SEQUENCE OF NotificationMetadata,
|
||||
listNotificationsResultError INTEGER {undefinedError(127)}
|
||||
}
|
||||
|
||||
NotificationMetadata ::= [47] SEQUENCE { -- Tag 'BF2F'
|
||||
seqNumber [0] INTEGER,
|
||||
profileManagementOperation [1] NotificationEvent, /*Only one bit SHALL be set to
|
||||
1*/
|
||||
notificationAddress UTF8String, -- FQDN to forward the notification
|
||||
iccid Iccid OPTIONAL
|
||||
}
|
||||
|
||||
-- Definition of Profile Nickname Information
|
||||
SetNicknameRequest ::= [41] SEQUENCE { -- Tag 'BF29'
|
||||
iccid Iccid,
|
||||
profileNickname [16] UTF8String (SIZE(0..64))
|
||||
}
|
||||
|
||||
SetNicknameResponse ::= [41] SEQUENCE { -- Tag 'BF29'
|
||||
setNicknameResult INTEGER {ok(0), iccidNotFound (1), undefinedError(127)}
|
||||
}
|
||||
|
||||
id-rsp-cert-objects OBJECT IDENTIFIER ::= { id-rsp cert-objects(2)}
|
||||
|
||||
id-rspExt OBJECT IDENTIFIER ::= {id-rsp-cert-objects 0}
|
||||
|
||||
id-rspRole OBJECT IDENTIFIER ::= {id-rsp-cert-objects 1}
|
||||
|
||||
-- Definition of OIDs for role identification
|
||||
id-rspRole-ci OBJECT IDENTIFIER ::= {id-rspRole 0}
|
||||
id-rspRole-euicc OBJECT IDENTIFIER ::= {id-rspRole 1}
|
||||
id-rspRole-eum OBJECT IDENTIFIER ::= {id-rspRole 2}
|
||||
id-rspRole-dp-tls OBJECT IDENTIFIER ::= {id-rspRole 3}
|
||||
id-rspRole-dp-auth OBJECT IDENTIFIER ::= {id-rspRole 4}
|
||||
id-rspRole-dp-pb OBJECT IDENTIFIER ::= {id-rspRole 5}
|
||||
id-rspRole-ds-tls OBJECT IDENTIFIER ::= {id-rspRole 6}
|
||||
id-rspRole-ds-auth OBJECT IDENTIFIER ::= {id-rspRole 7}
|
||||
|
||||
--Definition of data objects for InitialiseSecureChannel Request
|
||||
InitialiseSecureChannelRequest ::= [35] SEQUENCE { -- Tag 'BF23'
|
||||
remoteOpId RemoteOpId, -- Remote Operation Type Identifier (value SHALL be set to installBoundProfilePackage)
|
||||
transactionId [0] TransactionId, -- The TransactionID generated by the SM-DP+
|
||||
controlRefTemplate[6] IMPLICIT ControlRefTemplate, -- Control Reference Template (Key Agreement). Current specification considers a subset of CRT specified in GlobalPlatform Card Specification [8], section 6.4.2.3 for the Mutual Authentication Data Field
|
||||
smdpOtpk [APPLICATION 73] OCTET STRING, ---otPK.DP.ECKA as specified in GlobalPlatform Card Specification [8] section 6.4.2.3 for ePK.OCE.ECKA, tag '5F49'
|
||||
smdpSign [APPLICATION 55] OCTET STRING -- SM-DP's signature, tag '5F37'
|
||||
}
|
||||
|
||||
ControlRefTemplate ::= SEQUENCE {
|
||||
keyType[0] Octet1, -- Key type according to GlobalPlatform Card Specification [8] Table 11-16, AES= '88', Tag '80'
|
||||
keyLen[1] Octet1, --Key length in number of bytes. For current specification key length SHALL by 0x10 bytes, Tag '81'
|
||||
hostId[4] OctetTo16 -- Host ID value , Tag '84'
|
||||
}
|
||||
|
||||
--Definition of data objects for ConfigureISDPRequest
|
||||
ConfigureISDPRequest ::= [36] SEQUENCE { -- Tag 'BF24'
|
||||
dpProprietaryData [24] DpProprietaryData OPTIONAL -- Tag 'B8'
|
||||
}
|
||||
|
||||
DpProprietaryData ::= SEQUENCE { -- maximum size including tag and length field: 128 bytes
|
||||
dpOid OBJECT IDENTIFIER -- OID in the tree of the SM-DP+ that created the Profile
|
||||
-- additional data objects defined by the SM-DP+ MAY follow
|
||||
}
|
||||
|
||||
-- Definition of request message for command ReplaceSessionKeys
|
||||
ReplaceSessionKeysRequest ::= [38] SEQUENCE { -- tag 'BF26'
|
||||
/*The new initial MAC chaining value*/
|
||||
initialMacChainingValue OCTET STRING,
|
||||
/*New session key value for encryption/decryption (PPK-ENC)*/
|
||||
ppkEnc OCTET STRING,
|
||||
/*New session key value of the session key C-MAC computation/verification (PPK-MAC)*/
|
||||
ppkCmac OCTET STRING
|
||||
}
|
||||
|
||||
-- Definition of data objects for RetrieveNotificationsList
|
||||
RetrieveNotificationsListRequest ::= [43] SEQUENCE { -- Tag 'BF2B'
|
||||
searchCriteria CHOICE {
|
||||
seqNumber [0] INTEGER,
|
||||
profileManagementOperation [1] NotificationEvent
|
||||
} OPTIONAL
|
||||
}
|
||||
|
||||
RetrieveNotificationsListResponse ::= [43] CHOICE { -- Tag 'BF2B'
|
||||
notificationList SEQUENCE OF PendingNotification,
|
||||
notificationsListResultError INTEGER { undefinedError(127)}
|
||||
}
|
||||
|
||||
PendingNotification ::= CHOICE {
|
||||
profileInstallationResult [55] ProfileInstallationResult, -- tag 'BF37'
|
||||
otherSignedNotification OtherSignedNotification
|
||||
}
|
||||
|
||||
OtherSignedNotification ::= SEQUENCE {
|
||||
tbsOtherNotification NotificationMetadata,
|
||||
euiccNotificationSignature [APPLICATION 55] OCTET STRING, -- eUICC signature of tbsOtherNotification, Tag '5F37'
|
||||
euiccCertificate Certificate, -- eUICC Certificate (CERT.EUICC.ECDSA) signed by the EUM
|
||||
eumCertificate Certificate -- EUM Certificate (CERT.EUM.ECDSA) signed by the requested CI
|
||||
}
|
||||
|
||||
-- Definition of notificationSent
|
||||
NotificationSentRequest ::= [48] SEQUENCE { -- Tag 'BF30'
|
||||
seqNumber [0] INTEGER
|
||||
}
|
||||
|
||||
NotificationSentResponse ::= [48] SEQUENCE { -- Tag 'BF30'
|
||||
deleteNotificationStatus INTEGER {ok(0), nothingToDelete(1),
|
||||
undefinedError(127)}
|
||||
}
|
||||
|
||||
-- Definition of Enable Profile --------------------------
|
||||
EnableProfileRequest ::= [49] SEQUENCE { -- Tag 'BF31'
|
||||
profileIdentifier CHOICE {
|
||||
isdpAid [APPLICATION 15] OctetTo16, -- AID, tag '4F'
|
||||
iccid Iccid -- ICCID, tag '5A'
|
||||
},
|
||||
refreshFlag BOOLEAN -- indicating whether REFRESH is required
|
||||
}
|
||||
|
||||
EnableProfileResponse ::= [49] SEQUENCE { -- Tag 'BF31'
|
||||
enableResult INTEGER {ok(0), iccidOrAidNotFound (1),
|
||||
profileNotInDisabledState(2), disallowedByPolicy(3), wrongProfileReenabling(4),
|
||||
catBusy(5), undefinedError(127)}
|
||||
}
|
||||
|
||||
-- Definition of Disable Profile --------------------------
|
||||
DisableProfileRequest ::= [50] SEQUENCE { -- Tag 'BF32'
|
||||
profileIdentifier CHOICE {
|
||||
isdpAid [APPLICATION 15] OctetTo16, -- AID, tag '4F'
|
||||
iccid Iccid -- ICCID, tag '5A'
|
||||
},
|
||||
refreshFlag BOOLEAN -- indicating whether REFRESH is required
|
||||
}
|
||||
|
||||
DisableProfileResponse ::= [50] SEQUENCE { -- Tag 'BF32'
|
||||
disableResult INTEGER {ok(0), iccidOrAidNotFound (1),
|
||||
profileNotInEnabledState(2), disallowedByPolicy(3), catBusy(5),
|
||||
undefinedError(127)}
|
||||
}
|
||||
|
||||
-- Definition of Delete Profile --------------------------
|
||||
DeleteProfileRequest ::= [51] CHOICE { -- Tag 'BF33'
|
||||
isdpAid [APPLICATION 15] OctetTo16, -- AID, tag '4F'
|
||||
iccid Iccid -- ICCID, tag '5A'
|
||||
}
|
||||
|
||||
DeleteProfileResponse ::= [51] SEQUENCE { -- Tag 'BF33'
|
||||
deleteResult INTEGER {ok(0), iccidOrAidNotFound (1),
|
||||
profileNotInDisabledState(2), disallowedByPolicy(3), undefinedError(127)}
|
||||
}
|
||||
|
||||
-- Definition of Memory Reset --------------------------
|
||||
EuiccMemoryResetRequest ::= [52] SEQUENCE { -- Tag 'BF34'
|
||||
resetOptions [2] BIT STRING {
|
||||
deleteOperationalProfiles(0),
|
||||
deleteFieldLoadedTestProfiles(1),
|
||||
resetDefaultSmdpAddress(2)}
|
||||
}
|
||||
|
||||
EuiccMemoryResetResponse ::= [52] SEQUENCE { -- Tag 'BF34'
|
||||
resetResult INTEGER {ok(0), nothingToDelete(1), catBusy(5), undefinedError(127)}
|
||||
}
|
||||
|
||||
-- Definition of Get EID --------------------------
|
||||
GetEuiccDataRequest ::= [62] SEQUENCE { -- Tag 'BF3E'
|
||||
tagList [APPLICATION 28] Octet1 -- tag '5C', the value SHALL be set to '5A'
|
||||
}
|
||||
|
||||
GetEuiccDataResponse ::= [62] SEQUENCE { -- Tag 'BF3E'
|
||||
eidValue [APPLICATION 26] Octet16 -- tag '5A'
|
||||
}
|
||||
|
||||
-- Definition of Get Rat
|
||||
|
||||
GetRatRequest ::= [67] SEQUENCE { -- Tag ' BF43'
|
||||
-- No input data
|
||||
}
|
||||
|
||||
|
||||
GetRatResponse ::= [67] SEQUENCE { -- Tag 'BF43'
|
||||
rat RulesAuthorisationTable
|
||||
}
|
||||
|
||||
RulesAuthorisationTable ::= SEQUENCE OF ProfilePolicyAuthorisationRule
|
||||
ProfilePolicyAuthorisationRule ::= SEQUENCE {
|
||||
pprIds PprIds,
|
||||
allowedOperators SEQUENCE OF OperatorId,
|
||||
pprFlags BIT STRING {consentRequired(0)}
|
||||
}
|
||||
|
||||
-- Definition of data structure containing the list of CRL segments
|
||||
SegmentedCrlList ::= SEQUENCE OF CertificateList
|
||||
|
||||
-- Definition of data structure command for loading a CRL
|
||||
LoadCRLRequest ::= [53] SEQUENCE { -- Tag 'BF35'
|
||||
-- A CRL
|
||||
crl CertificateList
|
||||
}
|
||||
|
||||
-- Definition of data structure response for loading a CRL
|
||||
LoadCRLResponse ::= [53] CHOICE { -- Tag 'BF35'
|
||||
loadCRLResponseOk LoadCRLResponseOk,
|
||||
loadCRLResponseError LoadCRLResponseError
|
||||
}
|
||||
|
||||
LoadCRLResponseOk ::= SEQUENCE {
|
||||
missingParts SEQUENCE OF INTEGER OPTIONAL
|
||||
}
|
||||
LoadCRLResponseError ::= INTEGER {invalidSignature(1), invalidCRLFormat(2),
|
||||
notEnoughMemorySpace(3), verificationKeyNotFound(4), fresherCrlAlreadyLoaded(5),
|
||||
baseCrlMissing(6), undefinedError(127)}
|
||||
|
||||
-- Definition of the extension for Certificate Expiration Date
|
||||
id-rsp-expDate OBJECT IDENTIFIER ::= {id-rspExt 1}
|
||||
ExpirationDate ::= Time
|
||||
|
||||
-- Definition of the extension id for total partial-CRL number
|
||||
id-rsp-totalPartialCrlNumber OBJECT IDENTIFIER ::= {id-rspExt 2}
|
||||
TotalPartialCrlNumber ::= INTEGER
|
||||
|
||||
-- Definition of the extension id for the partial-CRL number
|
||||
id-rsp-partialCrlNumber OBJECT IDENTIFIER ::= {id-rspExt 3}
|
||||
PartialCrlNumber ::= INTEGER
|
||||
|
||||
-- Definition for ES9+ ASN.1 Binding --------------------------
|
||||
RemoteProfileProvisioningRequest ::= [2] CHOICE { -- Tag 'A2'
|
||||
initiateAuthenticationRequest [57] InitiateAuthenticationRequest, -- Tag 'BF39'
|
||||
authenticateClientRequest [59] AuthenticateClientRequest, -- Tag 'BF3B'
|
||||
getBoundProfilePackageRequest [58] GetBoundProfilePackageRequest, -- Tag 'BF3A'
|
||||
cancelSessionRequestEs9 [65] CancelSessionRequestEs9, -- Tag 'BF41'
|
||||
handleNotification [61] HandleNotification -- tag 'BF3D'
|
||||
}
|
||||
|
||||
RemoteProfileProvisioningResponse ::= [2] CHOICE { -- Tag 'A2'
|
||||
initiateAuthenticationResponse [57] InitiateAuthenticationResponse, -- Tag 'BF39'
|
||||
authenticateClientResponseEs9 [59] AuthenticateClientResponseEs9, -- Tag 'BF3B'
|
||||
getBoundProfilePackageResponse [58] GetBoundProfilePackageResponse, -- Tag 'BF3A'
|
||||
cancelSessionResponseEs9 [65] CancelSessionResponseEs9, -- Tag 'BF41'
|
||||
authenticateClientResponseEs11 [64] AuthenticateClientResponseEs11 -- Tag 'BF40'
|
||||
}
|
||||
|
||||
InitiateAuthenticationRequest ::= [57] SEQUENCE { -- Tag 'BF39'
|
||||
euiccChallenge [1] Octet16, -- random eUICC challenge
|
||||
smdpAddress [3] UTF8String,
|
||||
euiccInfo1 EUICCInfo1
|
||||
}
|
||||
|
||||
InitiateAuthenticationResponse ::= [57] CHOICE { -- Tag 'BF39'
|
||||
initiateAuthenticationOk InitiateAuthenticationOkEs9,
|
||||
initiateAuthenticationError INTEGER {
|
||||
invalidDpAddress(1),
|
||||
euiccVersionNotSupportedByDp(2),
|
||||
ciPKNotSupported(3)
|
||||
}
|
||||
}
|
||||
|
||||
InitiateAuthenticationOkEs9 ::= SEQUENCE {
|
||||
transactionId [0] TransactionId, -- The TransactionID generated by the SM-DP+
|
||||
serverSigned1 ServerSigned1, -- Signed information
|
||||
serverSignature1 [APPLICATION 55] OCTET STRING, -- Server_Sign1, tag '5F37'
|
||||
euiccCiPKIdToBeUsed SubjectKeyIdentifier, -- The curve CI Public Key to be used as required by ES10b.AuthenticateServer
|
||||
serverCertificate Certificate
|
||||
}
|
||||
|
||||
AuthenticateClientRequest ::= [59] SEQUENCE { -- Tag 'BF3B'
|
||||
transactionId [0] TransactionId,
|
||||
authenticateServerResponse [56] AuthenticateServerResponse -- This is the response from ES10b.AuthenticateServer
|
||||
}
|
||||
|
||||
AuthenticateClientResponseEs9 ::= [59] CHOICE { -- Tag 'BF3B'
|
||||
authenticateClientOk AuthenticateClientOk,
|
||||
authenticateClientError INTEGER {
|
||||
eumCertificateInvalid(1),
|
||||
eumCertificateExpired(2),
|
||||
euiccCertificateInvalid(3),
|
||||
euiccCertificateExpired(4),
|
||||
euiccSignatureInvalid(5),
|
||||
matchingIdRefused(6),
|
||||
eidMismatch(7),
|
||||
noEligibleProfile(8),
|
||||
ciPKUnknown(9),
|
||||
invalidTransactionId(10),
|
||||
insufficientMemory(11),
|
||||
undefinedError(127)
|
||||
}
|
||||
}
|
||||
|
||||
AuthenticateClientOk ::= SEQUENCE {
|
||||
transactionId [0] TransactionId,
|
||||
profileMetaData [37] StoreMetadataRequest,
|
||||
smdpSigned2 SmdpSigned2, -- Signed information
|
||||
smdpSignature2 [APPLICATION 55] OCTET STRING, -- tag '5F37'
|
||||
smdpCertificate Certificate -- CERT.DPpb.ECDSA
|
||||
}
|
||||
|
||||
GetBoundProfilePackageRequest ::= [58] SEQUENCE { -- Tag 'BF3A'
|
||||
transactionId [0] TransactionId,
|
||||
prepareDownloadResponse [33] PrepareDownloadResponse
|
||||
}
|
||||
|
||||
GetBoundProfilePackageResponse ::= [58] CHOICE { -- Tag 'BF3A'
|
||||
getBoundProfilePackageOk GetBoundProfilePackageOk,
|
||||
getBoundProfilePackageError INTEGER {
|
||||
euiccSignatureInvalid(1),
|
||||
confirmationCodeMissing(2),
|
||||
confirmationCodeRefused(3),
|
||||
confirmationCodeRetriesExceeded(4),
|
||||
bppRebindingRefused(5),
|
||||
downloadOrderExpired(6),
|
||||
invalidTransactionId(95),
|
||||
undefinedError(127)
|
||||
}
|
||||
}
|
||||
|
||||
GetBoundProfilePackageOk ::= SEQUENCE {
|
||||
transactionId [0] TransactionId,
|
||||
boundProfilePackage [54] BoundProfilePackage
|
||||
}
|
||||
|
||||
HandleNotification ::= [61] SEQUENCE { -- Tag 'BF3D'
|
||||
pendingNotification PendingNotification
|
||||
}
|
||||
|
||||
CancelSessionRequestEs9 ::= [65] SEQUENCE { -- Tag 'BF41'
|
||||
transactionId TransactionId,
|
||||
cancelSessionResponse CancelSessionResponse -- data structure defined for ES10b.CancelSession function
|
||||
}
|
||||
|
||||
CancelSessionResponseEs9 ::= [65] CHOICE { -- Tag 'BF41'
|
||||
cancelSessionOk CancelSessionOk,
|
||||
cancelSessionError INTEGER {
|
||||
invalidTransactionId(1),
|
||||
euiccSignatureInvalid(2),
|
||||
undefinedError(127)
|
||||
}
|
||||
}
|
||||
|
||||
CancelSessionOk ::= SEQUENCE { -- This function has no output data
|
||||
}
|
||||
|
||||
EuiccConfiguredAddressesRequest ::= [60] SEQUENCE { -- Tag 'BF3C'
|
||||
}
|
||||
|
||||
EuiccConfiguredAddressesResponse ::= [60] SEQUENCE { -- Tag 'BF3C'
|
||||
defaultDpAddress UTF8String OPTIONAL, -- Default SM-DP+ address as an FQDN
|
||||
rootDsAddress UTF8String -- Root SM-DS address as an FQDN
|
||||
}
|
||||
|
||||
ISDRProprietaryApplicationTemplate ::= [PRIVATE 0] SEQUENCE { -- Tag 'E0'
|
||||
svn [2] VersionType, -- GSMA SGP.22 version supported (SVN)
|
||||
lpaeSupport BIT STRING {
|
||||
lpaeUsingCat(0), -- LPA in the eUICC using Card Application Toolkit
|
||||
lpaeUsingScws(1) -- LPA in the eUICC using Smartcard Web Server
|
||||
} OPTIONAL
|
||||
}
|
||||
|
||||
LpaeActivationRequest ::= [66] SEQUENCE { -- Tag 'BF42'
|
||||
lpaeOption BIT STRING {
|
||||
activateCatBasedLpae(0), -- LPAe with LUIe based on CAT
|
||||
activateScwsBasedLpae(1) -- LPAe with LUIe based on SCWS
|
||||
}
|
||||
}
|
||||
|
||||
LpaeActivationResponse ::= [66] SEQUENCE { -- Tag 'BF42'
|
||||
lpaeActivationResult INTEGER {ok(0), notSupported(1)}
|
||||
}
|
||||
|
||||
SetDefaultDpAddressRequest ::= [63] SEQUENCE { -- Tag 'BF3F'
|
||||
defaultDpAddress UTF8String -- Default SM-DP+ address as an FQDN
|
||||
}
|
||||
|
||||
SetDefaultDpAddressResponse ::= [63] SEQUENCE { -- Tag 'BF3F'
|
||||
setDefaultDpAddressResult INTEGER { ok (0), undefinedError (127)}
|
||||
}
|
||||
|
||||
AuthenticateClientResponseEs11 ::= [64] CHOICE { -- Tag 'BF40'
|
||||
authenticateClientOk AuthenticateClientOkEs11,
|
||||
authenticateClientError INTEGER {
|
||||
eumCertificateInvalid(1),
|
||||
eumCertificateExpired(2),
|
||||
euiccCertificateInvalid(3),
|
||||
euiccCertificateExpired(4),
|
||||
euiccSignatureInvalid(5),
|
||||
eventIdUnknown(6),
|
||||
invalidTransactionId(7),
|
||||
undefinedError(127)
|
||||
}
|
||||
}
|
||||
|
||||
AuthenticateClientOkEs11 ::= SEQUENCE {
|
||||
transactionId TransactionId,
|
||||
eventEntries SEQUENCE OF EventEntries
|
||||
}
|
||||
|
||||
EventEntries ::= SEQUENCE {
|
||||
eventId UTF8String,
|
||||
rspServerAddress UTF8String
|
||||
}
|
||||
|
||||
END
|
|
@ -0,0 +1,281 @@
|
|||
#include "RSPDefinitions.hh"
|
||||
|
||||
namespace RSPDefinitions__Types {
|
||||
|
||||
using namespace RSPDefinitions;
|
||||
|
||||
TTCN_Module RSPDefinitions__EncDec("RSPDefinitions_EncDec", __DATE__, __TIME__);
|
||||
|
||||
OCTETSTRING enc__GetEuiccChallengeResponse(const GetEuiccChallengeResponse &msg) {
|
||||
TTCN_Buffer buf;
|
||||
|
||||
buf.clear();
|
||||
msg.encode(GetEuiccChallengeResponse_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
return OCTETSTRING(buf.get_len(), buf.get_data());
|
||||
}
|
||||
|
||||
GetEuiccChallengeResponse dec__GetEuiccChallengeResponse(const OCTETSTRING &stream) {
|
||||
TTCN_Buffer buf;
|
||||
GetEuiccChallengeResponse msg;
|
||||
buf.put_os(stream);
|
||||
|
||||
msg.decode(GetEuiccChallengeResponse_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
return msg;
|
||||
}
|
||||
|
||||
OCTETSTRING enc__EUICCInfo1(const EUICCInfo1 &msg) {
|
||||
TTCN_Buffer buf;
|
||||
|
||||
buf.clear();
|
||||
msg.encode(EUICCInfo1_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
return OCTETSTRING(buf.get_len(), buf.get_data());
|
||||
}
|
||||
|
||||
EUICCInfo1 dec__EUICCInfo1(const OCTETSTRING &stream) {
|
||||
TTCN_Buffer buf;
|
||||
EUICCInfo1 msg;
|
||||
buf.put_os(stream);
|
||||
|
||||
msg.decode(EUICCInfo1_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
return msg;
|
||||
}
|
||||
|
||||
OCTETSTRING enc__EUICCInfo2(const EUICCInfo2 &msg) {
|
||||
TTCN_Buffer buf;
|
||||
|
||||
buf.clear();
|
||||
msg.encode(EUICCInfo2_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
return OCTETSTRING(buf.get_len(), buf.get_data());
|
||||
}
|
||||
|
||||
EUICCInfo2 dec__EUICCInfo2(const OCTETSTRING &stream) {
|
||||
TTCN_Buffer buf;
|
||||
EUICCInfo2 msg;
|
||||
buf.put_os(stream);
|
||||
|
||||
msg.decode(EUICCInfo2_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
return msg;
|
||||
}
|
||||
|
||||
OCTETSTRING enc__AuthenticateServerResponse(const AuthenticateServerResponse &msg) {
|
||||
TTCN_Buffer buf;
|
||||
|
||||
buf.clear();
|
||||
msg.encode(AuthenticateServerResponse_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
return OCTETSTRING(buf.get_len(), buf.get_data());
|
||||
}
|
||||
|
||||
AuthenticateServerResponse dec__AuthenticateServerResponse(const OCTETSTRING &stream) {
|
||||
TTCN_Buffer buf;
|
||||
AuthenticateServerResponse msg;
|
||||
buf.put_os(stream);
|
||||
|
||||
msg.decode(AuthenticateServerResponse_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
return msg;
|
||||
}
|
||||
|
||||
OCTETSTRING enc__CancelSessionResponse(const CancelSessionResponse &msg) {
|
||||
TTCN_Buffer buf;
|
||||
|
||||
buf.clear();
|
||||
msg.encode(CancelSessionResponse_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
return OCTETSTRING(buf.get_len(), buf.get_data());
|
||||
}
|
||||
|
||||
CancelSessionResponse dec__CancelSessionResponse(const OCTETSTRING &stream) {
|
||||
TTCN_Buffer buf;
|
||||
CancelSessionResponse msg;
|
||||
buf.put_os(stream);
|
||||
|
||||
msg.decode(CancelSessionResponse_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
return msg;
|
||||
}
|
||||
|
||||
OCTETSTRING enc__PrepareDownloadResponse(const PrepareDownloadResponse &msg) {
|
||||
TTCN_Buffer buf;
|
||||
|
||||
buf.clear();
|
||||
msg.encode(PrepareDownloadResponse_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
return OCTETSTRING(buf.get_len(), buf.get_data());
|
||||
}
|
||||
|
||||
PrepareDownloadResponse dec__PrepareDownloadResponse(const OCTETSTRING &stream) {
|
||||
TTCN_Buffer buf;
|
||||
PrepareDownloadResponse msg;
|
||||
buf.put_os(stream);
|
||||
|
||||
msg.decode(PrepareDownloadResponse_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
return msg;
|
||||
}
|
||||
|
||||
OCTETSTRING enc__ProfileInstallationResult(const ProfileInstallationResult &msg) {
|
||||
TTCN_Buffer buf;
|
||||
|
||||
buf.clear();
|
||||
msg.encode(ProfileInstallationResult_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
return OCTETSTRING(buf.get_len(), buf.get_data());
|
||||
}
|
||||
|
||||
ProfileInstallationResult dec__ProfileInstallationResult(const OCTETSTRING &stream) {
|
||||
TTCN_Buffer buf;
|
||||
ProfileInstallationResult msg;
|
||||
buf.put_os(stream);
|
||||
|
||||
msg.decode(ProfileInstallationResult_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
return msg;
|
||||
}
|
||||
|
||||
OCTETSTRING enc__NotificationSentResponse(const NotificationSentResponse &msg) {
|
||||
TTCN_Buffer buf;
|
||||
|
||||
buf.clear();
|
||||
msg.encode(NotificationSentResponse_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
return OCTETSTRING(buf.get_len(), buf.get_data());
|
||||
}
|
||||
|
||||
NotificationSentResponse dec__NotificationSentResponse(const OCTETSTRING &stream) {
|
||||
TTCN_Buffer buf;
|
||||
NotificationSentResponse msg;
|
||||
buf.put_os(stream);
|
||||
|
||||
msg.decode(NotificationSentResponse_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
return msg;
|
||||
}
|
||||
|
||||
OCTETSTRING enc__RetrieveNotificationsListResponse(const RetrieveNotificationsListResponse &msg) {
|
||||
TTCN_Buffer buf;
|
||||
|
||||
buf.clear();
|
||||
msg.encode(RetrieveNotificationsListResponse_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
return OCTETSTRING(buf.get_len(), buf.get_data());
|
||||
}
|
||||
|
||||
RetrieveNotificationsListResponse dec__RetrieveNotificationsListResponse(const OCTETSTRING &stream) {
|
||||
TTCN_Buffer buf;
|
||||
RetrieveNotificationsListResponse msg;
|
||||
buf.put_os(stream);
|
||||
|
||||
msg.decode(RetrieveNotificationsListResponse_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
return msg;
|
||||
}
|
||||
|
||||
OCTETSTRING enc__GetEuiccDataResponse(const GetEuiccDataResponse &msg) {
|
||||
TTCN_Buffer buf;
|
||||
|
||||
buf.clear();
|
||||
msg.encode(GetEuiccDataResponse_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
return OCTETSTRING(buf.get_len(), buf.get_data());
|
||||
}
|
||||
|
||||
GetEuiccDataResponse dec__GetEuiccDataResponse(const OCTETSTRING &stream) {
|
||||
TTCN_Buffer buf;
|
||||
GetEuiccDataResponse msg;
|
||||
buf.put_os(stream);
|
||||
|
||||
msg.decode(GetEuiccDataResponse_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
return msg;
|
||||
}
|
||||
|
||||
OCTETSTRING enc__EuiccConfiguredAddressesResponse(const EuiccConfiguredAddressesResponse &msg) {
|
||||
TTCN_Buffer buf;
|
||||
|
||||
buf.clear();
|
||||
msg.encode(EuiccConfiguredAddressesResponse_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
return OCTETSTRING(buf.get_len(), buf.get_data());
|
||||
}
|
||||
|
||||
EuiccConfiguredAddressesResponse dec__EuiccConfiguredAddressesResponse(const OCTETSTRING &stream) {
|
||||
TTCN_Buffer buf;
|
||||
EuiccConfiguredAddressesResponse msg;
|
||||
buf.put_os(stream);
|
||||
|
||||
msg.decode(EuiccConfiguredAddressesResponse_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
return msg;
|
||||
}
|
||||
|
||||
OCTETSTRING enc__PendingNotification(const PendingNotification &msg) {
|
||||
TTCN_Buffer buf;
|
||||
|
||||
buf.clear();
|
||||
msg.encode(PendingNotification_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
return OCTETSTRING(buf.get_len(), buf.get_data());
|
||||
}
|
||||
|
||||
PendingNotification dec__PendingNotification(const OCTETSTRING &stream) {
|
||||
TTCN_Buffer buf;
|
||||
PendingNotification msg;
|
||||
buf.put_os(stream);
|
||||
|
||||
msg.decode(PendingNotification_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
return msg;
|
||||
}
|
||||
|
||||
OCTETSTRING enc__ServerSigned1(const ServerSigned1 &msg) {
|
||||
TTCN_Buffer buf;
|
||||
|
||||
buf.clear();
|
||||
msg.encode(ServerSigned1_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
return OCTETSTRING(buf.get_len(), buf.get_data());
|
||||
}
|
||||
|
||||
ServerSigned1 dec__ServerSigned1(const OCTETSTRING &stream) {
|
||||
TTCN_Buffer buf;
|
||||
ServerSigned1 msg;
|
||||
buf.put_os(stream);
|
||||
|
||||
msg.decode(ServerSigned1_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
return msg;
|
||||
}
|
||||
|
||||
OCTETSTRING enc__BoundProfilePackage(const BoundProfilePackage &msg) {
|
||||
TTCN_Buffer buf;
|
||||
|
||||
buf.clear();
|
||||
msg.encode(BoundProfilePackage_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
return OCTETSTRING(buf.get_len(), buf.get_data());
|
||||
}
|
||||
|
||||
BoundProfilePackage dec__BoundProfilePackage(const OCTETSTRING &stream) {
|
||||
TTCN_Buffer buf;
|
||||
BoundProfilePackage msg;
|
||||
buf.put_os(stream);
|
||||
|
||||
msg.decode(BoundProfilePackage_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
return msg;
|
||||
}
|
||||
|
||||
OCTETSTRING enc__StoreMetadataRequest(const StoreMetadataRequest &msg) {
|
||||
TTCN_Buffer buf;
|
||||
|
||||
buf.clear();
|
||||
msg.encode(StoreMetadataRequest_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
return OCTETSTRING(buf.get_len(), buf.get_data());
|
||||
}
|
||||
|
||||
StoreMetadataRequest dec__StoreMetadataRequest(const OCTETSTRING &stream) {
|
||||
TTCN_Buffer buf;
|
||||
StoreMetadataRequest msg;
|
||||
buf.put_os(stream);
|
||||
|
||||
msg.decode(StoreMetadataRequest_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
return msg;
|
||||
}
|
||||
|
||||
OCTETSTRING enc__SmdpSigned2(const SmdpSigned2 &msg) {
|
||||
TTCN_Buffer buf;
|
||||
|
||||
buf.clear();
|
||||
msg.encode(SmdpSigned2_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
return OCTETSTRING(buf.get_len(), buf.get_data());
|
||||
}
|
||||
|
||||
SmdpSigned2 dec__SmdpSigned2(const OCTETSTRING &stream) {
|
||||
TTCN_Buffer buf;
|
||||
SmdpSigned2 msg;
|
||||
buf.put_os(stream);
|
||||
|
||||
msg.decode(SmdpSigned2_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
return msg;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,579 @@
|
|||
/* SGP22 Templates in TTCN-3
|
||||
*
|
||||
* Author: Philipp Maier <pmaier@sysmocom.de> / sysmocom - s.f.m.c. GmbH
|
||||
*
|
||||
* Released under the terms of GNU General Public License, Version 2 or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
module RSPDefinitions_Templates {
|
||||
|
||||
import from PEDefinitions all;
|
||||
import from RSPDefinitions all;
|
||||
import from RSPDefinitions_Types all;
|
||||
|
||||
import from PKIX1Explicit88 all;
|
||||
import from PKIX1Explicit88_Templates all;
|
||||
import from PKIX1Explicit88_Types all;
|
||||
|
||||
import from PKIX1Implicit88 all;
|
||||
|
||||
/* GSMA SGP.22, section 2.5.4 */
|
||||
template (present) BoundProfilePackage
|
||||
tr_boundProfilePackage := {
|
||||
initialiseSecureChannelRequest := {
|
||||
remoteOpId := ?,
|
||||
transactionId := ?,
|
||||
controlRefTemplate := {
|
||||
keyType := ?,
|
||||
keyLen := ?,
|
||||
hostId := ?
|
||||
},
|
||||
smdpOtpk := ?,
|
||||
smdpSign := ?
|
||||
},
|
||||
/* ES8+.ConfigureISDP */
|
||||
firstSequenceOf87 := ?,
|
||||
/* ES8+.StoreMetadata */
|
||||
sequenceOf88 := ?,
|
||||
/* ES8+.ReplaceSessionKeys (optional) */
|
||||
secondSequenceOf87 := *,
|
||||
/* ES8+.LoadProfileElements */
|
||||
sequenceOf86 := ?
|
||||
}
|
||||
template (value) BoundProfilePackage
|
||||
ts_boundProfilePackage := {
|
||||
initialiseSecureChannelRequest := {
|
||||
remoteOpId := 1,
|
||||
transactionId := 'AABBCC'O,
|
||||
controlRefTemplate := {
|
||||
keyType := '88'O, /* AES */
|
||||
keyLen := '10'O, /* 16 byte key-length */
|
||||
hostId := '01020304050607080910111213141516'O
|
||||
},
|
||||
smdpOtpk := '1122334455667788'O,
|
||||
smdpSign := 'AABBCCDDEEFF0000'O
|
||||
},
|
||||
/* ES8+.ConfigureISDP */
|
||||
firstSequenceOf87 := {'41414141414141414141414141414141414141414141414141414141414141'O,
|
||||
'42424242424242424242424242424242424242424242424242424242424242'O,
|
||||
'43434343434343434343434343434343434343434343434343434343434343'O},
|
||||
/* ES8+.StoreMetadata */
|
||||
sequenceOf88 := {'444444444444444444444444444444444444444444'O,
|
||||
'454545454545454545454545454545454545454545'O,
|
||||
'464646464646464646464646464646464646464646'O},
|
||||
/* ES8+.ReplaceSessionKeys (optional) */
|
||||
secondSequenceOf87 := omit,
|
||||
/* ES8+.LoadProfileElements */
|
||||
sequenceOf86 := {'474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747'O,
|
||||
'484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848'O,
|
||||
'494949494949494949494949494949494949494949494949494949494949494949494949494949494949494949494949494949494949494949494949'O,
|
||||
'505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050'O,
|
||||
'515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151'O}
|
||||
}
|
||||
|
||||
/* GSMA SGP.22, section 2.5.6 */
|
||||
template (present) ProfileInstallationResult
|
||||
tr_profileInstallationResult := {
|
||||
profileInstallationResultData := {
|
||||
transactionId := ?,
|
||||
notificationMetadata := {
|
||||
seqNumber := ?,
|
||||
profileManagementOperation := ?,
|
||||
notificationAddress := ?,
|
||||
iccid := *
|
||||
},
|
||||
smdpOid := ?,
|
||||
finalResult := ?
|
||||
},
|
||||
euiccSignPIR := ?
|
||||
}
|
||||
template (value) ProfileInstallationResult
|
||||
ts_profileInstallationResult := {
|
||||
profileInstallationResultData := {
|
||||
transactionId := 'AABBCC'O,
|
||||
notificationMetadata := {
|
||||
seqNumber := 1234,
|
||||
profileManagementOperation := '01'B, /* is this correct? (notificationInstall) */
|
||||
notificationAddress := "smdp.example.com",
|
||||
iccid := omit
|
||||
},
|
||||
smdpOid := id_rsp, /* random OBJECT IDENTIFIER for testing */
|
||||
finalResult := {
|
||||
successResult := {
|
||||
aid := '0102030405'O,
|
||||
simaResponse := '4141414141414141414141414141414141414141414141414141'O
|
||||
}
|
||||
}
|
||||
},
|
||||
euiccSignPIR := '00112233445566778899AABBCCDDEEFF'O
|
||||
}
|
||||
|
||||
|
||||
/* GSMA SGP.22, section 5.6.1 (ES9+) */
|
||||
template (present) RemoteProfileProvisioningRequest
|
||||
tr_initiateAuthenticationRequest(template (present) octetstring euiccChallenge := ?,
|
||||
template (present) charstring smdpAddress := ?,
|
||||
template (present) EUICCInfo1 euiccInfo1 := ?) := {
|
||||
initiateAuthenticationRequest := {
|
||||
euiccChallenge := euiccChallenge,
|
||||
smdpAddress := smdpAddress,
|
||||
euiccInfo1 := euiccInfo1
|
||||
}
|
||||
}
|
||||
template (value) RemoteProfileProvisioningRequest
|
||||
ts_initiateAuthenticationRequest(template (value) octetstring euiccChallenge,
|
||||
template (value) charstring smdpAddress,
|
||||
template (value) EUICCInfo1 euiccInfo1) := {
|
||||
initiateAuthenticationRequest := {
|
||||
euiccChallenge := euiccChallenge,
|
||||
smdpAddress := smdpAddress,
|
||||
euiccInfo1 := euiccInfo1
|
||||
}
|
||||
}
|
||||
template (present) RemoteProfileProvisioningResponse
|
||||
tr_initiateAuthenticationResponse(template (present) octetstring transactionId := ?,
|
||||
template (present) ServerSigned1 serverSigned1 := ?,
|
||||
template (present) octetstring serverSignature1 := ?,
|
||||
template (present) SubjectKeyIdentifier euiccCiPKIdToBeUsed := ?,
|
||||
template (present) Certificate serverCertificate := ?) := {
|
||||
initiateAuthenticationResponse := {
|
||||
initiateAuthenticationOk := {
|
||||
transactionId := transactionId,
|
||||
serverSigned1 := serverSigned1,
|
||||
serverSignature1 := serverSignature1,
|
||||
euiccCiPKIdToBeUsed := euiccCiPKIdToBeUsed,
|
||||
serverCertificate := serverCertificate
|
||||
}
|
||||
}
|
||||
}
|
||||
template (value) RemoteProfileProvisioningResponse
|
||||
ts_initiateAuthenticationResponse(template (value) octetstring transactionId,
|
||||
template (value) ServerSigned1 serverSigned1,
|
||||
template (value) octetstring serverSignature1,
|
||||
template (value) SubjectKeyIdentifier euiccCiPKIdToBeUsed,
|
||||
template (value) Certificate serverCertificate) := {
|
||||
initiateAuthenticationResponse := {
|
||||
initiateAuthenticationOk := {
|
||||
transactionId := transactionId,
|
||||
serverSigned1 := serverSigned1,
|
||||
serverSignature1 := serverSignature1,
|
||||
euiccCiPKIdToBeUsed := euiccCiPKIdToBeUsed,
|
||||
serverCertificate := serverCertificate
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* GSMA SGP.22, section 5.6.2 (ES9+) */
|
||||
template (present) RemoteProfileProvisioningRequest
|
||||
tr_getBoundProfilePackageRequest(template (present) octetstring transactionId := ?,
|
||||
template (present) PrepareDownloadResponse prepareDownloadResponse := ?) := {
|
||||
getBoundProfilePackageRequest := {
|
||||
transactionId := transactionId,
|
||||
prepareDownloadResponse := prepareDownloadResponse
|
||||
}
|
||||
}
|
||||
template (value) RemoteProfileProvisioningRequest
|
||||
ts_getBoundProfilePackageRequest(template (value) octetstring transactionId,
|
||||
template (value) PrepareDownloadResponse prepareDownloadResponse) := {
|
||||
getBoundProfilePackageRequest := {
|
||||
transactionId := transactionId,
|
||||
prepareDownloadResponse := prepareDownloadResponse
|
||||
}
|
||||
}
|
||||
template (present) RemoteProfileProvisioningResponse
|
||||
tr_getBoundProfilePackageResponse(template (present) octetstring transactionId := ?,
|
||||
template (present) BoundProfilePackage boundProfilePackage := ?) := {
|
||||
getBoundProfilePackageResponse := {
|
||||
getBoundProfilePackageOk := {
|
||||
transactionId := transactionId,
|
||||
boundProfilePackage := boundProfilePackage
|
||||
}
|
||||
}
|
||||
}
|
||||
template (value) RemoteProfileProvisioningResponse
|
||||
ts_getBoundProfilePackageResponse(template (value) octetstring transactionId,
|
||||
template (value) BoundProfilePackage boundProfilePackage) := {
|
||||
getBoundProfilePackageResponse := {
|
||||
getBoundProfilePackageOk := {
|
||||
transactionId := transactionId,
|
||||
boundProfilePackage := boundProfilePackage
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* GSMA SGP.22, section 5.6.3 (ES9+) */
|
||||
template (present) RemoteProfileProvisioningRequest
|
||||
tr_authenticateClientRequest(template (present) octetstring transactionId := ?,
|
||||
template (present) AuthenticateServerResponse authenticateServerResponse := ?) := {
|
||||
authenticateClientRequest := {
|
||||
transactionId := transactionId,
|
||||
authenticateServerResponse := authenticateServerResponse
|
||||
}
|
||||
}
|
||||
template (value) RemoteProfileProvisioningRequest
|
||||
ts_authenticateClientRequest(template (value) octetstring transactionId,
|
||||
template (value) AuthenticateServerResponse authenticateServerResponse) := {
|
||||
authenticateClientRequest := {
|
||||
transactionId := transactionId,
|
||||
authenticateServerResponse := authenticateServerResponse
|
||||
}
|
||||
}
|
||||
template (present) RemoteProfileProvisioningResponse
|
||||
tr_authenticateClientResponseEs9(template (present) octetstring transactionId := ?,
|
||||
template (present) StoreMetadataRequest profileMetaData := ?,
|
||||
template (present) SmdpSigned2 smdpSigned2 := ?,
|
||||
template (present) octetstring smdpSignature2 := ?,
|
||||
template (present) Certificate smdpCertificate := ?) := {
|
||||
authenticateClientResponseEs9 := {
|
||||
authenticateClientOk := {
|
||||
transactionId := transactionId,
|
||||
profileMetaData := profileMetaData,
|
||||
smdpSigned2 := smdpSigned2,
|
||||
smdpSignature2 := smdpSignature2,
|
||||
smdpCertificate := smdpCertificate
|
||||
}
|
||||
}
|
||||
}
|
||||
template (value) RemoteProfileProvisioningResponse
|
||||
ts_authenticateClientResponseEs9(template (value) octetstring transactionId,
|
||||
template (value) StoreMetadataRequest profileMetaData,
|
||||
template (value) SmdpSigned2 smdpSigned2,
|
||||
template (value) octetstring smdpSignature2,
|
||||
template (value) Certificate smdpCertificate) := {
|
||||
authenticateClientResponseEs9 := {
|
||||
authenticateClientOk := {
|
||||
transactionId := transactionId,
|
||||
profileMetaData := profileMetaData,
|
||||
smdpSigned2 := smdpSigned2,
|
||||
smdpSignature2 := smdpSignature2,
|
||||
smdpCertificate := smdpCertificate
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* GSMA SGP.22, section 5.6.4 (ES9+) */
|
||||
template (present) RemoteProfileProvisioningRequest
|
||||
tr_handleNotification(template (present) PendingNotification pendingNotification := ?) := {
|
||||
handleNotification := {
|
||||
pendingNotification := pendingNotification
|
||||
}
|
||||
}
|
||||
template (value) RemoteProfileProvisioningRequest
|
||||
ts_handleNotification(template (value) PendingNotification pendingNotification) := {
|
||||
handleNotification := {
|
||||
pendingNotification := pendingNotification
|
||||
}
|
||||
}
|
||||
|
||||
/* GSMA SGP.22, section 5.6.5 (ES9+) */
|
||||
template (present) RemoteProfileProvisioningRequest
|
||||
tr_cancelSessionRequestEs9(template (present) octetstring transactionId := ?,
|
||||
template (present) CancelSessionResponse cancelSessionResponse := ?) := {
|
||||
cancelSessionRequestEs9 := {
|
||||
transactionId := transactionId,
|
||||
cancelSessionResponse := cancelSessionResponse
|
||||
}
|
||||
}
|
||||
template (value) RemoteProfileProvisioningRequest
|
||||
ts_cancelSessionRequestEs9(template (value) octetstring transactionId,
|
||||
template (value) CancelSessionResponse cancelSessionResponse) := {
|
||||
cancelSessionRequestEs9 := {
|
||||
transactionId := transactionId,
|
||||
cancelSessionResponse := cancelSessionResponse
|
||||
}
|
||||
}
|
||||
template (present) RemoteProfileProvisioningResponse
|
||||
tr_cancelSessionResponseEs9 := {
|
||||
cancelSessionResponseEs9 := {
|
||||
cancelSessionOk := { } /* This function has no output data */
|
||||
}
|
||||
}
|
||||
template (value) RemoteProfileProvisioningResponse
|
||||
ts_cancelSessionResponseEs9 := {
|
||||
cancelSessionResponseEs9 := {
|
||||
cancelSessionOk := { } /* This function has no output data */
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* GSMA SGP.22, section 5.7.3 (ES10x) */
|
||||
template (present) EuiccConfiguredAddressesResponse
|
||||
tr_euiccConfiguredAddressesResponse := {
|
||||
defaultDpAddress := *,
|
||||
rootDsAddress := ?
|
||||
}
|
||||
template (value) EuiccConfiguredAddressesResponse
|
||||
ts_euiccConfiguredAddressesResponse := {
|
||||
defaultDpAddress := "smdp.example.com",
|
||||
rootDsAddress := "smds.example.com"
|
||||
}
|
||||
|
||||
/* GSMA SGP.22, section 5.7.5 (ES10x) */
|
||||
template (present) PrepareDownloadResponse
|
||||
tr_prepareDownloadResponse := {
|
||||
downloadResponseOk := {
|
||||
euiccSigned2 := {
|
||||
transactionId := ?,
|
||||
euiccOtpk := ?,
|
||||
hashCc := *
|
||||
},
|
||||
euiccSignature2 := ?
|
||||
}
|
||||
}
|
||||
template (value) PrepareDownloadResponse
|
||||
ts_prepareDownloadResponse := {
|
||||
downloadResponseOk := {
|
||||
euiccSigned2 := {
|
||||
transactionId := 'ABCDEF'O,
|
||||
euiccOtpk := 'AABBCCDDEEFF'O,
|
||||
hashCc := omit
|
||||
},
|
||||
euiccSignature2 := 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'O
|
||||
}
|
||||
}
|
||||
|
||||
/* GSMA SGP.22, section 5.7.7 (ES10x) */
|
||||
template (present) GetEuiccChallengeResponse
|
||||
tr_GetEuiccChallengeResponse := {
|
||||
euiccChallenge := ?
|
||||
}
|
||||
template (value) GetEuiccChallengeResponse
|
||||
ts_GetEuiccChallengeResponse(template (value) octetstring euiccChallenge := '00112233445566778899AABBCCDDEEFF'O) := {
|
||||
euiccChallenge := euiccChallenge
|
||||
}
|
||||
|
||||
/* GSMA SGP.22, section 5.7.8 (ES10x) */
|
||||
template (present) EUICCInfo1
|
||||
tr_EUICCInfo1 := {
|
||||
svn := ?,
|
||||
euiccCiPKIdListForVerification := ?,
|
||||
euiccCiPKIdListForSigning := ?
|
||||
}
|
||||
template (value) EUICCInfo1
|
||||
ts_EUICCInfo1 := {
|
||||
svn := '020200'O,
|
||||
euiccCiPKIdListForVerification := {
|
||||
'C0BC70BA36929D43B467FF57570530E57AB8FCD8'O,
|
||||
'F54172BDF98A95D65CBEB88A38A1C11D800A85C3'O
|
||||
},
|
||||
euiccCiPKIdListForSigning := {
|
||||
'C0BC70BA36929D43B467FF57570530E57AB8FCD8'O,
|
||||
'F54172BDF98A95D65CBEB88A38A1C11D800A85C3'O
|
||||
}
|
||||
}
|
||||
|
||||
/* GSMA SGP.22, section 5.7.8 (ES10x) */
|
||||
template (present) EUICCInfo2
|
||||
tr_EUICCInfo2 := {
|
||||
profileVersion := ?,
|
||||
svn := ?,
|
||||
euiccFirmwareVer := ?,
|
||||
extCardResource := ?,
|
||||
uiccCapability := ?,
|
||||
ts102241Version := *,
|
||||
globalplatformVersion := *,
|
||||
rspCapability := ?,
|
||||
euiccCiPKIdListForVerification := ?,
|
||||
euiccCiPKIdListForSigning := ?,
|
||||
euiccCategory := *,
|
||||
forbiddenProfilePolicyRules := *,
|
||||
ppVersion := ?,
|
||||
sasAcreditationNumber := ?,
|
||||
certificationDataObject := *,
|
||||
treProperties := *,
|
||||
treProductReference := *,
|
||||
additionalEuiccProfilePackageVersions := *
|
||||
}
|
||||
template (value) EUICCInfo2
|
||||
ts_EUICCInfo2 := {
|
||||
profileVersion := '414243'O,
|
||||
svn := '02000C'O,
|
||||
euiccFirmwareVer := '414243'O,
|
||||
extCardResource := '414243'O,
|
||||
uiccCapability := '1111111111111111111'B,
|
||||
ts102241Version := omit,
|
||||
globalplatformVersion := omit,
|
||||
rspCapability := '1111'B,
|
||||
euiccCiPKIdListForVerification := {
|
||||
'C0BC70BA36929D43B467FF57570530E57AB8FCD8'O,
|
||||
'F54172BDF98A95D65CBEB88A38A1C11D800A85C3'O
|
||||
},
|
||||
euiccCiPKIdListForSigning := {
|
||||
'C0BC70BA36929D43B467FF57570530E57AB8FCD8'O,
|
||||
'F54172BDF98A95D65CBEB88A38A1C11D800A85C3'O
|
||||
},
|
||||
euiccCategory := omit,
|
||||
forbiddenProfilePolicyRules := omit,
|
||||
ppVersion := '414243'O,
|
||||
sasAcreditationNumber := "123456",
|
||||
certificationDataObject := omit,
|
||||
treProperties := omit,
|
||||
treProductReference := omit,
|
||||
additionalEuiccProfilePackageVersions := omit
|
||||
}
|
||||
|
||||
/* GSMA SGP.22, section 5.7.10 (ES10x) */
|
||||
template (value) RetrieveNotificationsListResponse
|
||||
ts_retrieveNotificationsListResponse := {
|
||||
notificationList := {
|
||||
{
|
||||
profileInstallationResult := {
|
||||
profileInstallationResultData := {
|
||||
transactionId := 'AABBCC'O,
|
||||
notificationMetadata := {
|
||||
seqNumber := 1234,
|
||||
profileManagementOperation := '01'B, /* is this correct? (notificationInstall) */
|
||||
notificationAddress := "smdp.example.com",
|
||||
iccid := omit
|
||||
},
|
||||
smdpOid := id_rsp, /* random OBJECT IDENTIFIER for testing */
|
||||
finalResult := {
|
||||
successResult := {
|
||||
aid := 'A0000005591010FFFFFFFF8900000D00'O,
|
||||
simaResponse := 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'O
|
||||
}
|
||||
}
|
||||
},
|
||||
euiccSignPIR := 'BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB'O
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* GSMA SGP.22, section 5.7.11 (ES10x) */
|
||||
template (present) NotificationSentResponse
|
||||
tr_notificationSentResponse := {
|
||||
deleteNotificationStatus := ?
|
||||
}
|
||||
template (value) NotificationSentResponse
|
||||
ts_notificationSentResponse := {
|
||||
deleteNotificationStatus := 0 /* 0k */
|
||||
}
|
||||
|
||||
/* GSMA SGP.22, section 5.7.13 (ES10x) */
|
||||
template (present) AuthenticateServerResponse
|
||||
tr_authenticateServerResponse := {
|
||||
authenticateResponseOk := {
|
||||
euiccSigned1 := {
|
||||
transactionId := ?,
|
||||
serverAddress := ?,
|
||||
serverChallenge := ?,
|
||||
euiccInfo2 := ?,
|
||||
ctxParams1 := {
|
||||
ctxParamsForCommonAuthentication := {
|
||||
matchingId := *,
|
||||
deviceInfo := {
|
||||
tac := ?,
|
||||
deviceCapabilities := {
|
||||
gsmSupportedRelease := *,
|
||||
utranSupportedRelease := *,
|
||||
cdma2000onexSupportedRelease := *,
|
||||
cdma2000hrpdSupportedRelease := *,
|
||||
cdma2000ehrpdSupportedRelease := *,
|
||||
eutranEpcSupportedRelease := *,
|
||||
contactlessSupportedRelease := *,
|
||||
rspCrlSupportedVersion := *,
|
||||
nrEpcSupportedRelease := *,
|
||||
nr5gcSupportedRelease := *,
|
||||
eutran5gcSupportedRelease := *,
|
||||
lpaSvn := *,
|
||||
catSupportedClasses := *,
|
||||
euiccFormFactorType := *,
|
||||
deviceAdditionalFeatureSupport := *
|
||||
},
|
||||
imei := *
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
euiccSignature1 := ?,
|
||||
euiccCertificate := ?,
|
||||
eumCertificate := ?
|
||||
}
|
||||
}
|
||||
template (value) AuthenticateServerResponse
|
||||
ts_authenticateServerResponse := {
|
||||
authenticateResponseOk := {
|
||||
euiccSigned1 := {
|
||||
transactionId := 'ABCDEF'O,
|
||||
serverAddress := "smdp.example.com",
|
||||
serverChallenge := '01020304050607080910111213141516'O,
|
||||
euiccInfo2 := ts_EUICCInfo2,
|
||||
ctxParams1 := {
|
||||
ctxParamsForCommonAuthentication := {
|
||||
matchingId := omit,
|
||||
deviceInfo := {
|
||||
tac := '12345678'O,
|
||||
deviceCapabilities := {
|
||||
gsmSupportedRelease := omit,
|
||||
utranSupportedRelease := omit,
|
||||
cdma2000onexSupportedRelease := omit,
|
||||
cdma2000hrpdSupportedRelease := omit,
|
||||
cdma2000ehrpdSupportedRelease := omit,
|
||||
eutranEpcSupportedRelease := omit,
|
||||
contactlessSupportedRelease := omit,
|
||||
rspCrlSupportedVersion := omit,
|
||||
nrEpcSupportedRelease := omit,
|
||||
nr5gcSupportedRelease := omit,
|
||||
eutran5gcSupportedRelease := omit,
|
||||
lpaSvn := omit,
|
||||
catSupportedClasses := omit,
|
||||
euiccFormFactorType := omit,
|
||||
deviceAdditionalFeatureSupport := omit
|
||||
},
|
||||
imei := omit
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
euiccSignature1 := '12345678'O,
|
||||
euiccCertificate := ts_cert_euicc_nist,
|
||||
// euiccCertificate := ts_cert_euicc_brp,
|
||||
eumCertificate := ts_cert_eum_nist
|
||||
// eumCertificate := ts_cert_eum_brp
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/* GSMA SGP.22, section 5.7.13 (ES10x) */
|
||||
template (present) CancelSessionResponseOk
|
||||
tr_cancelSessionResponseOk := {
|
||||
euiccCancelSessionSigned := {
|
||||
transactionId := ?,
|
||||
smdpOid := ?,
|
||||
reason := ?
|
||||
},
|
||||
euiccCancelSessionSignature := ?
|
||||
}
|
||||
template (value) CancelSessionResponseOk
|
||||
ts_cancelSessionResponseOk := {
|
||||
euiccCancelSessionSigned := {
|
||||
transactionId := 'AABBCC'O,
|
||||
smdpOid := id_rspRole_euicc,
|
||||
reason := 5
|
||||
},
|
||||
euiccCancelSessionSignature := '1234567890'O
|
||||
}
|
||||
template (present) CancelSessionResponse
|
||||
tr_cancelSessionResponse := {
|
||||
cancelSessionResponseOk := tr_cancelSessionResponseOk
|
||||
}
|
||||
template (value) CancelSessionResponse
|
||||
ts_cancelSessionResponse := {
|
||||
cancelSessionResponseOk := ts_cancelSessionResponseOk
|
||||
}
|
||||
|
||||
/* GSMA SGP.22, section 5.7.20 (ES10x) */
|
||||
template (present) GetEuiccDataResponse
|
||||
tr_getEuiccDataResponse := {
|
||||
eidValue := ?
|
||||
}
|
||||
template (value) GetEuiccDataResponse
|
||||
ts_getEuiccDataResponse(template (value) octetstring eidValue := '000102030405060708090A0B0C0D0E0F'O) := {
|
||||
eidValue := eidValue
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
module RSPDefinitions_Types {
|
||||
|
||||
import from RSPDefinitions all;
|
||||
import from Native_Functions all;
|
||||
|
||||
external function dec_GetEuiccChallengeResponse(in octetstring stream) return GetEuiccChallengeResponse;
|
||||
external function enc_GetEuiccChallengeResponse(in GetEuiccChallengeResponse msg) return octetstring;
|
||||
|
||||
external function dec_EUICCInfo1(in octetstring stream) return EUICCInfo1;
|
||||
external function enc_EUICCInfo1(in EUICCInfo1 msg) return octetstring;
|
||||
|
||||
external function dec_EUICCInfo2(in octetstring stream) return EUICCInfo2;
|
||||
external function enc_EUICCInfo2(in EUICCInfo2 msg) return octetstring;
|
||||
|
||||
external function dec_AuthenticateServerResponse(in octetstring stream) return AuthenticateServerResponse;
|
||||
external function enc_AuthenticateServerResponse(in AuthenticateServerResponse msg) return octetstring;
|
||||
|
||||
external function dec_CancelSessionResponse(in octetstring stream) return CancelSessionResponse;
|
||||
external function enc_CancelSessionResponse(in CancelSessionResponse msg) return octetstring;
|
||||
|
||||
external function dec_PrepareDownloadResponse(in octetstring stream) return PrepareDownloadResponse;
|
||||
external function enc_PrepareDownloadResponse(in PrepareDownloadResponse msg) return octetstring;
|
||||
|
||||
external function dec_ProfileInstallationResult(in octetstring stream) return ProfileInstallationResult;
|
||||
external function enc_ProfileInstallationResult(in ProfileInstallationResult msg) return octetstring;
|
||||
|
||||
external function dec_NotificationSentResponse(in octetstring stream) return NotificationSentResponse;
|
||||
external function enc_NotificationSentResponse(in NotificationSentResponse msg) return octetstring;
|
||||
|
||||
external function dec_RetrieveNotificationsListResponse(in octetstring stream) return RetrieveNotificationsListResponse;
|
||||
external function enc_RetrieveNotificationsListResponse(in RetrieveNotificationsListResponse msg) return octetstring;
|
||||
|
||||
external function dec_GetEuiccDataResponse(in octetstring stream) return GetEuiccDataResponse;
|
||||
external function enc_GetEuiccDataResponse(in GetEuiccDataResponse msg) return octetstring;
|
||||
|
||||
external function dec_EuiccConfiguredAddressesResponse(in octetstring stream) return EuiccConfiguredAddressesResponse;
|
||||
external function enc_EuiccConfiguredAddressesResponse(in EuiccConfiguredAddressesResponse msg) return octetstring;
|
||||
|
||||
external function dec_PendingNotification(in octetstring stream) return PendingNotification;
|
||||
external function enc_PendingNotification(in PendingNotification msg) return octetstring;
|
||||
|
||||
external function dec_ServerSigned1(in octetstring stream) return ServerSigned1;
|
||||
external function enc_ServerSigned1(in ServerSigned1 msg) return octetstring;
|
||||
|
||||
external function dec_BoundProfilePackage(in octetstring stream) return BoundProfilePackage;
|
||||
external function enc_BoundProfilePackage(in BoundProfilePackage msg) return octetstring;
|
||||
|
||||
external function dec_StoreMetadataRequest(in octetstring stream) return StoreMetadataRequest;
|
||||
external function enc_StoreMetadataRequest(in StoreMetadataRequest msg) return octetstring;
|
||||
|
||||
external function dec_SmdpSigned2(in octetstring stream) return SmdpSigned2;
|
||||
external function enc_SmdpSigned2(in SmdpSigned2 msg) return octetstring;
|
||||
|
||||
}
|
|
@ -0,0 +1,806 @@
|
|||
-- Section 2.1.3
|
||||
-- ASN1START
|
||||
SGP32Definitions {joint-iso-itu-t(2) international-organizations(23) gsma(146) rsp(1) asn1modules(1) sgp32v1(31)}
|
||||
DEFINITIONS
|
||||
AUTOMATIC TAGS
|
||||
EXTENSIBILITY IMPLIED ::=
|
||||
BEGIN
|
||||
|
||||
IMPORTS Certificate, SubjectPublicKeyInfo
|
||||
FROM PKIX1Explicit88 {iso(1) identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) pkix(7) id-mod(0) id-pkix1-explicit(18)}
|
||||
SubjectKeyIdentifier FROM PKIX1Implicit88 {iso(1) identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) pkix(7) id-mod(0) id-pkix1-implicit(19)}
|
||||
|
||||
ProfileInfo, EuiccSigned1, CancelSessionReason, RetrieveNotificationsListResponse,
|
||||
ServerSigned1, RspCapability, Iccid, TransactionId, ProfileInfoListRequest,
|
||||
ProfileInfoListResponse, RulesAuthorisationTable, EUICCInfo1, DeviceInfo,
|
||||
VersionType, UICCCapability, PprIds,
|
||||
CertificationDataObject, Octet1, Octet16, Octet32, PrepareDownloadResponse,
|
||||
PrepareDownloadResponseOk, PrepareDownloadResponseError,
|
||||
AuthenticateServerResponse, AuthenticateResponseOk, AuthenticateResponseError,
|
||||
CtxParams1, ProfileInstallationResult, ProfileInstallationResultData,
|
||||
OtherSignedNotification, EuiccSignPIR, ErrorResult, NotificationMetadata,
|
||||
CancelSessionResponse, CancelSessionResponseOk,
|
||||
StoreMetadataRequest, SmdpSigned2, BoundProfilePackage, NotificationEvent
|
||||
FROM RSPDefinitions {joint-iso-itu-t(2) international-organizations(23) gsma(146) rsp(1) asn1modules(1) sgp22v2(2)};
|
||||
-- ASN1STOP
|
||||
|
||||
-- Section 2.11.1.1
|
||||
-- ASN1START
|
||||
EuiccPackageRequest ::= [81] SEQUENCE { -- Tag ' BF51', #SupportedForPsmoV1.0.0#
|
||||
euiccPackageSigned EuiccPackageSigned,
|
||||
eimSignature [APPLICATION 55] OCTET STRING -- Tag '5F37'
|
||||
}
|
||||
EuiccPackageSigned ::= SEQUENCE {
|
||||
eimId [0] UTF8String,
|
||||
eidValue [APPLICATION 26] Octet16, -- Tag '5A'
|
||||
counterValue [1] INTEGER,
|
||||
transactionId [2] TransactionId OPTIONAL,
|
||||
euiccPackage EuiccPackage
|
||||
}
|
||||
EuiccPackage ::= CHOICE {
|
||||
psmoList SEQUENCE OF Psmo, -- #SupportedForPsmoV1.0.0#
|
||||
ecoList SEQUENCE OF Eco -- #SupportedForEcoV1.0.0#
|
||||
}
|
||||
-- ASN1STOP
|
||||
|
||||
|
||||
-- Section 2.11.1.1.1
|
||||
-- ASN1START
|
||||
EimConfigurationData ::= SEQUENCE {
|
||||
eimId [0] UTF8String, -- eimId of eIM
|
||||
eimFqdn [1] UTF8String OPTIONAL, -- FQDN of eIM
|
||||
eimIdType [2] EimIdType OPTIONAL,
|
||||
counterValue [3] INTEGER OPTIONAL, -- initial counterValue for the eIM
|
||||
associationToken [4] INTEGER OPTIONAL,
|
||||
eimPublicKeyData [5] CHOICE {
|
||||
eimPublicKey SubjectPublicKeyInfo, -- public key of eIM, used for eUICC Package signature verification, where the encoding follows X.509 standard
|
||||
eimCertificate Certificate -- certificate of eIM, used for eUICC Package signature verification, where the encoding follows X.509 standard
|
||||
} OPTIONAL,
|
||||
trustedPublicKeyDataTls [6] CHOICE {
|
||||
trustedEimPkTls SubjectPublicKeyInfo, -- public key of eIM, used for TLS or DTLS, where the encoding follows X.509 standard
|
||||
trustedCertificateTls Certificate -- either the certificate of eIM, used for (D)TLS, or the certificate of the CA, where the encoding follows X.509 standard
|
||||
} OPTIONAL,
|
||||
eimSupportedProtocol [7] EimSupportedProtocol OPTIONAL,
|
||||
euiccCiPKId [8] SubjectKeyIdentifier OPTIONAL -- CI Public Key Identifier supported on the eUICC for signature creation
|
||||
}
|
||||
EimIdType ::= INTEGER {
|
||||
eimIdTypeOid(1),
|
||||
eimIdTypeFqdn(2),
|
||||
eimIdTypeProprietary(3)
|
||||
}
|
||||
EimSupportedProtocol ::= BIT STRING {
|
||||
eimRetrieveHttps(0),
|
||||
eimRetrieveCoaps(1),
|
||||
eimInjectHttps(2),
|
||||
eimInjectCoaps(3),
|
||||
eimProprietary(4)
|
||||
}
|
||||
-- ASN1STOP
|
||||
|
||||
-- Section 2.11.1.1.2
|
||||
-- ASN1START
|
||||
Eco ::= CHOICE {
|
||||
addEim [8] EimConfigurationData, -- for eIM configuration data see 2.11.1
|
||||
deleteEim [9] SEQUENCE {eimId [0] UTF8String},
|
||||
updateEim [10] EimConfigurationData,
|
||||
listEim [11] SEQUENCE {}
|
||||
}
|
||||
-- ASN1STOP
|
||||
|
||||
-- Section 2.11.1.1.3
|
||||
-- ASN1START
|
||||
Psmo ::= CHOICE {
|
||||
enable [3] SEQUENCE {
|
||||
iccid [APPLICATION 26] Iccid,
|
||||
rollbackFlag NULL OPTIONAL
|
||||
},
|
||||
disable [4] SEQUENCE {iccid [APPLICATION 26] Iccid},
|
||||
delete [5] SEQUENCE {iccid [APPLICATION 26] Iccid},
|
||||
listProfileInfo [45] ProfileInfoListRequest, -- Tag 'BF2D'
|
||||
getRAT [6] SEQUENCE {},
|
||||
configureAutoEnable [7] SEQUENCE {
|
||||
autoEnableFlag [0] NULL OPTIONAL,
|
||||
smdpOid [1] OBJECT IDENTIFIER OPTIONAL,
|
||||
smdpAddress [2] UTF8String OPTIONAL
|
||||
}
|
||||
}
|
||||
-- ASN1STOP
|
||||
|
||||
|
||||
-- Section 2.11.1.2
|
||||
-- ASN1START
|
||||
IpaEuiccDataRequest ::= [82] SEQUENCE { -- Tag BF52
|
||||
tagList [APPLICATION 28] OCTET STRING, -- Tag '5C'
|
||||
euiccCiPKId SubjectKeyIdentifier OPTIONAL, -- CI Public Key Identifier supported on the eUICC for signature creation
|
||||
searchCriteria [1] CHOICE {
|
||||
seqNumber [0] INTEGER,
|
||||
profileManagementOperation [1] NotificationEvent,
|
||||
euiccPackageResults [2] NULL
|
||||
} OPTIONAL
|
||||
}
|
||||
-- ASN1STOP
|
||||
|
||||
-- Section 2.11.1.3
|
||||
-- ASN1START
|
||||
ProfileDownloadTriggerRequest ::= [84] SEQUENCE { -- Tag 'BF54'
|
||||
profileDownloadData [0] ProfileDownloadData OPTIONAL,
|
||||
eimTransactionId [2] TransactionId OPTIONAL
|
||||
}
|
||||
ProfileDownloadData ::= CHOICE {
|
||||
activationCode [0] UTF8String (SIZE(0..255)),
|
||||
contactDefaultSmdp [1] NULL,
|
||||
contactSmds [2] SEQUENCE {
|
||||
smdsAddress UTF8String OPTIONAL
|
||||
}
|
||||
}
|
||||
-- ASN1STOP
|
||||
|
||||
-- Section 2.11.1.4
|
||||
-- ASN1START
|
||||
EimAcknowledgements ::= [83] SEQUENCE OF SequenceNumber -- Tag BF53
|
||||
SequenceNumber ::= [0] INTEGER
|
||||
-- ASN1STOP
|
||||
|
||||
|
||||
-- Section 2.11.2.1
|
||||
-- ASN1START
|
||||
EuiccPackageResult ::= [81] CHOICE { -- Tag 'BF51' #SupportedForPsmoV1.0.0#
|
||||
euiccPackageResultSigned EuiccPackageResultSigned,
|
||||
euiccPackageErrorSigned EuiccPackageErrorSigned,
|
||||
euiccPackageErrorUnsigned EuiccPackageErrorUnsigned
|
||||
}
|
||||
EuiccPackageResultSigned ::= SEQUENCE {
|
||||
euiccPackageResultDataSigned EuiccPackageResultDataSigned,
|
||||
euiccSignEPR [APPLICATION 55] OCTET STRING -- Tag '5F37'
|
||||
}
|
||||
EuiccPackageResultDataSigned ::= SEQUENCE { -- #SupportedForPsmoV1.0.0#
|
||||
eimId [0] UTF8String,
|
||||
counterValue [1] INTEGER,
|
||||
transactionId[2] TransactionId OPTIONAL,
|
||||
seqNumber [3] INTEGER,
|
||||
euiccResult SEQUENCE OF EuiccResultData
|
||||
}
|
||||
EuiccResultData ::= CHOICE {
|
||||
enableResult [3] EnableProfileResult,
|
||||
disableResult [4] DisableProfileResult,
|
||||
deleteResult [5] DeleteProfileResult,
|
||||
listProfileInfoResult [45] SGP32-ProfileInfoListResponse,
|
||||
getRATResult [6] RulesAuthorisationTable, -- see SGP.22
|
||||
configureAutoEnableResult [7] ConfigureAutoEnableResult,
|
||||
addEimResult [8] AddEimResult,
|
||||
deleteEimResult [9] DeleteEimResult,
|
||||
updateEimResult [10] UpdateEimResult,
|
||||
listEimResult [11] ListEimResult,
|
||||
rollbackResult [12] RollbackProfileResult,
|
||||
processingTerminated INTEGER {
|
||||
resultSizeOverflow(1),
|
||||
unknownOrDamagedCommand(2),
|
||||
interruption(3),
|
||||
undefinedError(127)
|
||||
}
|
||||
}
|
||||
EuiccPackageErrorSigned ::= SEQUENCE {
|
||||
euiccPackageErrorDataSigned EuiccPackageErrorDataSigned,
|
||||
euiccSignEPE [APPLICATION 55] OCTET STRING -- Tag '5F37'
|
||||
}
|
||||
EuiccPackageErrorDataSigned ::= SEQUENCE {
|
||||
eimId [0] UTF8String,
|
||||
counterValue [1] INTEGER,
|
||||
transactionId [2] TransactionId OPTIONAL,
|
||||
euiccPackageErrorCode EuiccPackageErrorCode
|
||||
}
|
||||
EuiccPackageErrorCode ::= INTEGER { invalidEid(3), replayError(4), counterValueOutOfRange(6), sizeOverflow(15), undefinedError(127)}
|
||||
EuiccPackageErrorUnsigned ::= SEQUENCE {
|
||||
eimId [0] UTF8String,
|
||||
associationToken [4] INTEGER OPTIONAL
|
||||
}
|
||||
ConfigureAutoEnableResult ::= INTEGER {
|
||||
ok(0),
|
||||
insufficientMemory(1),
|
||||
commandError(7),
|
||||
undefinedError(127)
|
||||
}
|
||||
EnableProfileResult ::= INTEGER {
|
||||
ok(0),
|
||||
iccidOrAidNotFound(1),
|
||||
profileNotInDisabledState(2),
|
||||
undefinedError(127)
|
||||
}
|
||||
DisableProfileResult ::= INTEGER {
|
||||
ok(0),
|
||||
iccidOrAidNotFound(1),
|
||||
profileNotInEnabledState(2),
|
||||
undefinedError(127)
|
||||
}
|
||||
DeleteProfileResult ::= INTEGER {
|
||||
ok(0),
|
||||
iccidOrAidNotFound(1),
|
||||
profileNotInDisabledState(2),
|
||||
undefinedError(127)
|
||||
}
|
||||
SGP32-ProfileInfoListResponse ::= [45] CHOICE {
|
||||
profileInfoListOk SEQUENCE OF ProfileInfo, -- see SGP.22
|
||||
profileInfoListError SGP32-ProfileInfoListError
|
||||
}
|
||||
SGP32-ProfileInfoListError ::= INTEGER {
|
||||
incorrectInputValues(1),
|
||||
profileChangeOngoing (11),
|
||||
undefinedError(127)
|
||||
}
|
||||
RollbackProfileResult ::= INTEGER {
|
||||
ok(0),
|
||||
undefinedError(127)
|
||||
}
|
||||
AddEimResult ::= CHOICE {
|
||||
associationToken [4] INTEGER,
|
||||
addEimResultCode INTEGER {
|
||||
ok(0),
|
||||
insufficientMemory(1),
|
||||
ciPKUnknown(3),
|
||||
invalidAssociationToken(5),
|
||||
counterValueOutOfRange(6),
|
||||
commandError(7),
|
||||
undefinedError(127)
|
||||
}
|
||||
}
|
||||
DeleteEimResult ::= INTEGER {
|
||||
ok(0),
|
||||
eimNotFound(1),
|
||||
lastEimDeleted(2), -- no eIM Configuration Data available in eUICC,
|
||||
commandError(7),
|
||||
undefinedError(127)
|
||||
}
|
||||
UpdateEimResult ::= INTEGER {
|
||||
ok(0),
|
||||
eimNotFound (1),
|
||||
ciPKUnknown(3),
|
||||
counterValueOutOfRange(6),
|
||||
commandError(7),
|
||||
undefinedError(127)
|
||||
}
|
||||
ListEimResult ::= CHOICE {
|
||||
eimIdList SEQUENCE OF EimIdInfo,
|
||||
listEimError INTEGER {
|
||||
commandError(7),
|
||||
undefinedError(127)
|
||||
}
|
||||
}
|
||||
EimIdInfo ::= SEQUENCE {
|
||||
eimId [0] UTF8String,
|
||||
eimIdType [4] EimIdType OPTIONAL -- present in case of eimIdTypeOid and eimIdTypeFqdn
|
||||
}
|
||||
-- ASN1STOP
|
||||
|
||||
-- Section 2.11.2.2
|
||||
-- ASN1START
|
||||
IpaEuiccDataResponse ::= [82] CHOICE { -- Tag 'BF52'
|
||||
ipaEuiccData IpaEuiccData,
|
||||
ipaEuiccDataError INTEGER {
|
||||
incorrectTagList (1),
|
||||
euiccCiPKIdNotFound(5),
|
||||
undefinedError(127)
|
||||
}
|
||||
}
|
||||
IpaEuiccData ::= SEQUENCE {
|
||||
defaultSmdpAddress [0] UTF8String OPTIONAL, -- Tag '80'
|
||||
euiccInfo1 [32] EUICCInfo1 OPTIONAL, -- Tag 'BF20'
|
||||
euiccInfo2 [34] SGP32-EUICCInfo2 OPTIONAL, -- Tag 'BF22'
|
||||
rootSmdsAddress [3] UTF8String OPTIONAL, -- Tag '83'
|
||||
associationToken [4] INTEGER OPTIONAL, -- Tag '84'
|
||||
eumCertificate [5] Certificate OPTIONAL, -- Tag 'A5'
|
||||
euiccCertificate [6] Certificate OPTIONAL, -- Tag 'A6'
|
||||
ipaCapabilities [8] IpaCapabilities OPTIONAL, -- Tag '88'
|
||||
deviceInfo [9] DeviceInfo OPTIONAL, -- Tag 'A9'
|
||||
notificationsList [43] SGP32-RetrieveNotificationsListResponse OPTIONAL -- Tag 'BF2B'.
|
||||
}
|
||||
-- ASN1STOP
|
||||
|
||||
-- Section 2.11.2.3
|
||||
-- ASN1START
|
||||
ProfileDownloadTriggerResult ::= [84] SEQUENCE { -- tag 'BF54'
|
||||
eimTransactionId [2] TransactionId OPTIONAL,
|
||||
profileDownloadTriggerResultData CHOICE {
|
||||
profileInstallationResult [55] SGP32-ProfileInstallationResult, -- see SGP.22 [4]
|
||||
profileDownloadError SEQUENCE {
|
||||
errorResponse OCTET STRING OPTIONAL
|
||||
}
|
||||
}
|
||||
}
|
||||
-- ASN1STOP
|
||||
|
||||
-- Section 4.1
|
||||
-- ASN1START
|
||||
IpaCapabilities ::= SEQUENCE {
|
||||
ipaFeatures [0] BIT STRING {
|
||||
directRspServerCommunication (0),
|
||||
indirectRspServerCommunication (1),
|
||||
eimDownloadDataHandling (2),
|
||||
eimCtxParams1Generation (3),
|
||||
eimProfileMetadataVerification (4),
|
||||
minimizeEsipaBytes (5)
|
||||
},
|
||||
ipaSupportedProtocols [1] BIT STRING {
|
||||
ipaRetrieveHttps(0),
|
||||
ipaRetrieveCoaps(1),
|
||||
ipaInjectHttps(2),
|
||||
ipaInjectCoaps(3),
|
||||
ipaProprietary(4)
|
||||
} OPTIONAL
|
||||
}
|
||||
-- ASN1STOP
|
||||
|
||||
-- Section 5.9.2
|
||||
-- ASN1START
|
||||
SGP32-EUICCInfo2 ::= [34] SEQUENCE { -- Tag 'BF22'
|
||||
profileVersion [1] VersionType, -- Base eUICC Profile package version supported
|
||||
svn [2] VersionType, -- GSMA SGP.22 version supported (SVN)referenced by SGP.32
|
||||
euiccFirmwareVer [3] VersionType, -- eUICC Firmware version
|
||||
extCardResource [4] OCTET STRING, -- Extended Card Resource Information according to ETSI TS 102 226
|
||||
uiccCapability [5] UICCCapability,
|
||||
ts102241Version [6] VersionType OPTIONAL,
|
||||
globalplatformVersion [7] VersionType OPTIONAL,
|
||||
rspCapability [8] RspCapability,
|
||||
euiccCiPKIdListForVerification [9] SEQUENCE OF SubjectKeyIdentifier, -- List of CI Public Key Identifiers supported on the eUICC for signature verification
|
||||
euiccCiPKIdListForSigning [10] SEQUENCE OF SubjectKeyIdentifier, -- List of CI Public Key Identifier supported on the eUICC for signature creation
|
||||
euiccCategory [11] INTEGER {
|
||||
other(0),
|
||||
basicEuicc(1),
|
||||
mediumEuicc(2),
|
||||
contactlessEuicc(3)
|
||||
} OPTIONAL,
|
||||
forbiddenProfilePolicyRules [25] PprIds OPTIONAL, -- Tag '99'
|
||||
ppVersion VersionType, -- Protection Profile version
|
||||
sasAcreditationNumber UTF8String (SIZE(0..64)),
|
||||
certificationDataObject [12] CertificationDataObject OPTIONAL,
|
||||
treProperties [13] BIT STRING {
|
||||
isDiscrete(0),
|
||||
isIntegrated(1),
|
||||
usesRemoteMemory(2) -- refers to the usage of remote memory protected by the Remote Memory Protection Function described in SGP.21 [4]
|
||||
} OPTIONAL,
|
||||
treProductReference [14] UTF8String OPTIONAL, -- Platform_Label as defined in GlobalPlatform DLOA specification [57]
|
||||
additionalEuiccProfilePackageVersions [15] SEQUENCE OF VersionType OPTIONAL,
|
||||
ipaMode [16] IpaMode OPTIONAL, -- active IPA, mandatory within SGP.32
|
||||
rfu2 [17] SEQUENCE OF SubjectKeyIdentifier OPTIONAL, -- not used by this version of SGP.32.
|
||||
rfu3 [18] OCTET STRING (SIZE(0..32)) OPTIONAL,
|
||||
-- not used by this version of SGP.32
|
||||
rfu4 [19] VersionType OPTIONAL, -- not used by this version of SGP.32
|
||||
iotSpecificInfo [20] IoTSpecificInfo OPTIONAL -- mandatory within SGP.32
|
||||
}
|
||||
-- Definition of IoTSpecificInfo
|
||||
IoTSpecificInfo ::= SEQUENCE {
|
||||
iotVersion [0] SEQUENCE OF VersionType -- SGP.32 version(s) supported by the eUICC, at least one must be present
|
||||
}
|
||||
-- Definition of IpaMode
|
||||
IpaMode ::= INTEGER {
|
||||
ipad (0), -- IPAd is active
|
||||
ipae (1) -- IPAe is active
|
||||
}
|
||||
-- ASN1STOP
|
||||
|
||||
-- Section 5.9.4
|
||||
-- ASN1START
|
||||
AddInitialEimRequest ::= [87] SEQUENCE { -- Tag 'BF57'
|
||||
eimConfigurationDataList [0] SEQUENCE OF EimConfigurationData
|
||||
}
|
||||
-- ASN1STOP
|
||||
|
||||
-- Section 5.9.4
|
||||
-- ASN1START
|
||||
AddInitialEimResponse ::= [87] CHOICE { -- Tag 'BF57'
|
||||
addInitialEimOk SEQUENCE OF CHOICE {
|
||||
associationToken [4] INTEGER,
|
||||
addOk NULL
|
||||
},
|
||||
addInitialEimError INTEGER {
|
||||
insufficientMemory(1),
|
||||
unsignedEimConfigDisallowed(2),
|
||||
ciPKUnknown(3),
|
||||
invalidAssociationToken(5),
|
||||
counterValueOutOfRange(6),
|
||||
undefinedError(127)
|
||||
}
|
||||
}
|
||||
-- ASN1STOP
|
||||
|
||||
|
||||
-- Section 5.9.10
|
||||
-- ASN1START
|
||||
GetCertsRequest ::= [86] SEQUENCE { -- Tag 'BF56'
|
||||
euiccCiPKId SubjectKeyIdentifier OPTIONAL -- CI Public Key Identifier supported on the eUICC for signature creation
|
||||
}
|
||||
-- ASN1STOP
|
||||
-- ASN1START
|
||||
GetCertsResponse ::= [86] CHOICE { -- Tag 'BF56'
|
||||
certs SEQUENCE {
|
||||
eumCertificate [5] Certificate, -- Tag 'A5'
|
||||
euiccCertificate [6] Certificate -- Tag 'A6'
|
||||
},
|
||||
getCertsError INTEGER {invalidCiPKId(1), undfinedError(127)}
|
||||
}
|
||||
-- ASN1STOP
|
||||
|
||||
-- Section 5.9.11 (no ASN1START/STOP)!
|
||||
SGP32-RetrieveNotificationsListRequest ::= [43] SEQUENCE { -- Tag 'BF2B'
|
||||
searchCriteria CHOICE {
|
||||
seqNumber [0] INTEGER,
|
||||
profileManagementOperation [1] NotificationEvent,
|
||||
euiccPackageResults [2] NULL
|
||||
} OPTIONAL
|
||||
}
|
||||
|
||||
-- ASN1START
|
||||
SGP32-RetrieveNotificationsListResponse ::= [43] CHOICE { -- Tag 'BF2B'
|
||||
notificationList SEQUENCE OF SGP32-PendingNotification,
|
||||
notificationsListResultError INTEGER { undefinedError(127)},
|
||||
euiccPackageResultList SEQUENCE OF EuiccPackageResult,
|
||||
notificationAndEprList SEQUENCE {
|
||||
notificationList SEQUENCE OF SGP32-PendingNotification,
|
||||
euiccPackageResultList SEQUENCE OF EuiccPackageResult
|
||||
}
|
||||
}
|
||||
-- ASN1STOP
|
||||
|
||||
-- Section 5.9.15
|
||||
-- ASN1START
|
||||
EnableUsingDDRequest ::= [90] SEQUENCE { -- Tag 'BF5A'
|
||||
}
|
||||
-- ASN1STOP
|
||||
-- ASN1START
|
||||
EnableUsingDDResponse ::= [90] SEQUENCE { -- Tag 'BF5A'
|
||||
enableUsingDDResult [0] INTEGER {
|
||||
ok(0),
|
||||
autoEnableNotAvailable(1),
|
||||
noSessionContext(4),
|
||||
undefinedError(127)
|
||||
}
|
||||
}
|
||||
-- ASN1STOP
|
||||
|
||||
-- Section 5.9.16
|
||||
-- ASN1START
|
||||
ProfileRollbackRequest ::= [88] SEQUENCE { -- Tag 'BF58'
|
||||
refreshFlag BOOLEAN -- indicating whether REFRESH is required
|
||||
}
|
||||
-- ASN1STOP
|
||||
-- ASN1START
|
||||
ProfileRollbackResponse ::= [88] SEQUENCE { -- Tag 'BF58'
|
||||
cmdResult INTEGER {
|
||||
ok(0),
|
||||
rollbackNotAllowed(1), -- Usage of rollback was not granted by the eIM
|
||||
catBusy(5),
|
||||
commandError(7),
|
||||
undefinedError(127)
|
||||
},
|
||||
eUICCPackageResult [81] EuiccPackageResult OPTIONAL
|
||||
}
|
||||
-- ASN1STOP
|
||||
|
||||
-- Section 5.9.17
|
||||
-- ASN1START
|
||||
ConfigureAutoProfileEnablingRequest ::= [89] SEQUENCE { -- Tag 'BF59'
|
||||
autoEnableFlag [0] NULL OPTIONAL,
|
||||
smdpOid [1] OBJECT IDENTIFIER OPTIONAL,
|
||||
smdpAddress [2] UTF8String OPTIONAL
|
||||
}
|
||||
-- ASN1STOP
|
||||
-- ASN1START
|
||||
ConfigureAutoProfileEnablingResponse ::= [89] SEQUENCE { -- Tag 'BF59'
|
||||
configAutoEnableResult [0] INTEGER {
|
||||
ok(0),
|
||||
insufficientMemory(1),
|
||||
unsignedAutoEnableConfigDisallowed(2),
|
||||
undefinedError(127)
|
||||
}
|
||||
}
|
||||
-- ASN1STOP
|
||||
|
||||
-- Section 5.9.18
|
||||
-- ASN1START
|
||||
GetEimConfigurationDataRequest ::= [85] SEQUENCE { -- Tag 'BF55'
|
||||
}
|
||||
-- ASN1STOP
|
||||
-- ASN1START
|
||||
GetEimConfigurationDataResponse ::= [85] SEQUENCE { -- Tag 'BF55'
|
||||
eimConfigurationDataList [0] SEQUENCE OF EimConfigurationData
|
||||
}
|
||||
-- ASN1STOP
|
||||
|
||||
-- Section 5.14.2
|
||||
-- ASN1START
|
||||
SGP32-PrepareDownloadResponse ::= [33] CHOICE { -- Tag 'BF21'
|
||||
downloadResponseOk PrepareDownloadResponseOk,
|
||||
downloadResponseError PrepareDownloadResponseError,
|
||||
compactDownloadResponseOk CompactPrepareDownloadResponseOk
|
||||
}
|
||||
CompactPrepareDownloadResponseOk ::= SEQUENCE {
|
||||
compactEuiccSigned2 CompactEuiccSigned2, -- Compact version of EuiccSigned2
|
||||
euiccSignature2 [APPLICATION 55] OCTET STRING -- tag '5F37' signature on EuiccSigned2
|
||||
}
|
||||
CompactEuiccSigned2 ::= SEQUENCE {
|
||||
euiccOtpk [APPLICATION 73] OCTET STRING OPTIONAL, -- otPK.EUICC.ECKA, tag '5F49' euiccOtpk is always present except if bppEuiccOtpk was chosen by the eUICC
|
||||
hashCc Octet32 OPTIONAL -- Hash of confirmation code, if not received from Eim
|
||||
}
|
||||
-- ASN1STOP
|
||||
|
||||
-- Section 5.14.3
|
||||
-- ASN1START
|
||||
SGP32-AuthenticateServerResponse ::= [56] CHOICE { -- Tag 'BF38'
|
||||
authenticateResponseOk AuthenticateResponseOk,
|
||||
authenticateResponseError AuthenticateResponseError,
|
||||
compactAuthenticateResponseOk CompactAuthenticateResponseOk
|
||||
}
|
||||
CompactAuthenticateResponseOk ::= SEQUENCE {
|
||||
signedData CHOICE {
|
||||
euiccSigned1 EuiccSigned1,
|
||||
compactEuiccSigned1 [0] CompactEuiccSigned1 -- Compact version of EuiccSigned1
|
||||
},
|
||||
euiccSignature1 [APPLICATION 55] OCTET STRING, -- tag 5F37 signature on EuiccSigned1
|
||||
euiccCertificate [1] Certificate OPTIONAL, -- eUICC Certificate (CERT.EUICC.ECDSA)
|
||||
eumCertificate [2] Certificate OPTIONAL -- EUM Certificate (CERT.EUM.ECDSA)
|
||||
}
|
||||
CompactEuiccSigned1 ::= SEQUENCE {
|
||||
extCardResource [4] OCTET STRING, -- Extended Card Resource Information according to ETSI TS 102 226 extracted from euiccInfo2,
|
||||
ctxParams1 [2] CtxParams1 OPTIONAL -- ctxParams1 may be left out by IPA if eIM ctxParams1 was received from the eIM
|
||||
}
|
||||
-- ASN1STOP
|
||||
|
||||
-- Section 5.14.7
|
||||
-- ASN1START
|
||||
SGP32-PendingNotification ::= CHOICE {
|
||||
profileInstallationResult [55] SGP32-ProfileInstallationResult, -- tag 'BF37'
|
||||
otherSignedNotification OtherSignedNotification,
|
||||
compactProfileInstallationResult [0] CompactProfileInstallationResult,
|
||||
compactOtherSignedNotification [1] CompactOtherSignedNotification
|
||||
}
|
||||
SGP32-ProfileInstallationResult ::= [55] SEQUENCE { -- Tag 'BF37'
|
||||
profileInstallationResultData [39] ProfileInstallationResultData,
|
||||
euiccSignPIR EuiccSignPIR
|
||||
}
|
||||
CompactProfileInstallationResult ::= SEQUENCE {
|
||||
compactProfileInstallationResultData [0] CompactProfileInstallationResultData,
|
||||
euiccSignPIR EuiccSignPIR
|
||||
}
|
||||
CompactProfileInstallationResultData ::= SEQUENCE {
|
||||
transactionId [0] TransactionId, -- The TransactionID generated by the SM-DP+
|
||||
seqNumber INTEGER,
|
||||
iccidPresent BOOLEAN DEFAULT TRUE,
|
||||
compactFinalResult [2] CHOICE {
|
||||
compactSuccessResult CompactSuccessResult,
|
||||
errorResult ErrorResult
|
||||
}
|
||||
}
|
||||
CompactSuccessResult ::= SEQUENCE {
|
||||
compactAid [APPLICATION 15] OCTET STRING (SIZE (2)), -- Byte 14 and 15 of ISD-P AID
|
||||
simaResponse OCTET STRING OPTIONAL -- MUST be present if the simaResponse value (EUICCResponse) is different from the 9-byte value ‘30 07 A0 05 30 03 80 01 00’ representing success
|
||||
}
|
||||
CompactOtherSignedNotification ::= SEQUENCE {
|
||||
tbsOtherNotification NotificationMetadata,
|
||||
euiccNotificationSignature [APPLICATION 55] OCTET STRING -- eUICC signature of tbsOtherNotification, Tag '5F37'
|
||||
}
|
||||
-- ASN1STOP
|
||||
|
||||
-- Section 5.14.8
|
||||
-- ASN1START
|
||||
SGP32-CancelSessionResponse ::= [65] CHOICE { -- Tag 'BF41'
|
||||
cancelSessionResponseOk CancelSessionResponseOk,
|
||||
cancelSessionResponseError INTEGER {invalidTransactionId(5), undefinedError(127)},
|
||||
compactCancelSessionResponseOk CompactCancelSessionResponseOk
|
||||
}
|
||||
CompactCancelSessionResponseOk ::= SEQUENCE {
|
||||
compactEuiccCancelSessionSigned CompactEuiccCancelSessionSigned, -- Compact version of euiccCancelSessionSigned
|
||||
euiccCancelSessionSignature [APPLICATION 55] OCTET STRING -- tag 5F37 signature on euiccCancelSessionSigned
|
||||
}
|
||||
CompactEuiccCancelSessionSigned ::= SEQUENCE {
|
||||
reason CancelSessionReason OPTIONAL
|
||||
}
|
||||
-- ASN1STOP
|
||||
|
||||
-- Section 6.3.1
|
||||
-- ASN1START
|
||||
EsipaMessageFromIpaToEim ::= CHOICE {
|
||||
initiateAuthenticationRequestEsipa [57] InitiateAuthenticationRequestEsipa, -- Tag 'BF39'
|
||||
authenticateClientRequestEsipa [59] AuthenticateClientRequestEsipa, -- Tag 'BF3B'
|
||||
getBoundProfilePackageRequestEsipa [58] GetBoundProfilePackageRequestEsipa, -- Tag 'BF3A'
|
||||
cancelSessionRequestEsipa [65] CancelSessionRequestEsipa, -- Tag 'BF41'
|
||||
handleNotificationEsipa [61] HandleNotificationEsipa, -- Tag 'BF3D'
|
||||
transferEimPackageResponse [78] TransferEimPackageResponse, -- Tag 'BF4E'
|
||||
getEimPackageRequest [79] GetEimPackageRequest, -- Tag 'BF4F'
|
||||
provideEimPackageResult [80] ProvideEimPackageResult -- Tag 'BF50'
|
||||
}
|
||||
EsipaMessageFromEimToIpa ::= CHOICE {
|
||||
initiateAuthenticationResponseEsipa [57] InitiateAuthenticationResponseEsipa, -- Tag 'BF39'
|
||||
authenticateClientResponseEsipa [59] AuthenticateClientResponseEsipa, -- Tag 'BF3B'
|
||||
getBoundProfilePackageResponseEsipa [58] GetBoundProfilePackageResponseEsipa, -- Tag 'BF3A'
|
||||
cancelSessionResponseEsipa [65] CancelSessionResponseEsipa, -- Tag 'BF41'
|
||||
transferEimPackageRequest [78] TransferEimPackageRequest, -- Tag 'BF4E'
|
||||
getEimPackageResponse [79] GetEimPackageResponse, -- Tag 'BF4F'
|
||||
provideEimPackageResultResponse [80] ProvideEimPackageResultResponse -- Tag 'BF50'
|
||||
}
|
||||
-- ASN1STOP
|
||||
|
||||
-- Section 6.3.2
|
||||
-- ASN1START
|
||||
InitiateAuthenticationRequestEsipa ::= [57] SEQUENCE { -- Tag 'BF39'
|
||||
euiccChallenge [1] Octet16, -- random eUICC challenge
|
||||
smdpAddress [3] UTF8String OPTIONAL,
|
||||
euiccInfo1 EUICCInfo1 OPTIONAL
|
||||
}
|
||||
InitiateAuthenticationResponseEsipa ::= [57] CHOICE { -- Tag 'BF39'
|
||||
initiateAuthenticationOkEsipa InitiateAuthenticationOkEsipa,
|
||||
initiateAuthenticationErrorEsipa INTEGER {
|
||||
invalidDpAddress(1),
|
||||
euiccVersionNotSupportedByDp(2),
|
||||
ciPKIdNotSupported(3),
|
||||
smdpAddressMismatch(50),
|
||||
smdpOidMismatch(51)
|
||||
}
|
||||
}
|
||||
InitiateAuthenticationOkEsipa ::= SEQUENCE {
|
||||
transactionId [0] TransactionId OPTIONAL, -- The TransactionID generated by the SM-DP+
|
||||
serverSigned1 ServerSigned1, -- Signed information
|
||||
serverSignature1 [APPLICATION 55] OCTET STRING, -- Server Sign1, Tag '5F37'
|
||||
euiccCiPKIdToBeUsed OCTET STRING, -- Key identifier (possibly truncated) of the CI Public Key to be used as required by ES10b.AuthenticateServer
|
||||
serverCertificate Certificate,
|
||||
matchingId UTF8String OPTIONAL,
|
||||
ctxParams1 [2] CtxParams1 OPTIONAL
|
||||
}
|
||||
-- ASN1STOP
|
||||
|
||||
-- Section 6.3.2.2
|
||||
-- ASN1START
|
||||
AuthenticateClientRequestEsipa ::= [59] SEQUENCE { -- Tag 'BF3B'
|
||||
transactionId [0] TransactionId,
|
||||
authenticateServerResponse [56] SGP32-AuthenticateServerResponse -- This is the response from ES10b.AuthenticateServer, possibly in compact format
|
||||
}
|
||||
AuthenticateClientResponseEsipa ::= [59] CHOICE { -- Tag 'BF3B'
|
||||
authenticateClientOkDPEsipa AuthenticateClientOkDPEsipa,
|
||||
authenticateClientOkDSEsipa AuthenticateClientOkDSEsipa,
|
||||
authenticateClientErrorEsipa INTEGER {
|
||||
eumCertificateInvalid(1),
|
||||
eumCertificateExpired(2),
|
||||
euiccCertificateInvalid(3),
|
||||
euiccCertificateExpired(4),
|
||||
euiccSignatureInvalid(5),
|
||||
matchingIdRefused(6),
|
||||
eidMismatch(7),
|
||||
noEligibleProfile(8),
|
||||
ciPKUnknown(9),
|
||||
invalidTransactionId(10),
|
||||
insufficientMemory(11),
|
||||
pprNotAllowed(50),
|
||||
eventIdUnknown(56),
|
||||
undefinedError(127)
|
||||
}
|
||||
}
|
||||
AuthenticateClientOkDPEsipa ::= SEQUENCE {
|
||||
transactionId [0] TransactionId OPTIONAL,
|
||||
profileMetaData [37] StoreMetadataRequest OPTIONAL,
|
||||
smdpSigned2 SmdpSigned2, -- Signed information
|
||||
smdpSignature2 [APPLICATION 55] OCTET STRING, -- Tag '5F37'
|
||||
smdpCertificate Certificate, -- CERT.DPpb.ECDSA
|
||||
hashCc Octet32 OPTIONAL -- Hash of confirmation code
|
||||
}
|
||||
AuthenticateClientOkDSEsipa ::= SEQUENCE {
|
||||
transactionId [0] TransactionId,
|
||||
profileDownloadTrigger [84] ProfileDownloadTriggerRequest OPTIONAL -- Tag 'BF54'
|
||||
}
|
||||
-- ASN1STOP
|
||||
|
||||
-- Section 6.3.2.3
|
||||
-- ASN1START
|
||||
GetBoundProfilePackageRequestEsipa ::= [58] SEQUENCE { -- Tag 'BF3A'
|
||||
transactionId [0] TransactionId,
|
||||
prepareDownloadResponse [33] SGP32-PrepareDownloadResponse -- This is the response from ES10b.PrepareDownload, possibly in compact format
|
||||
}
|
||||
GetBoundProfilePackageResponseEsipa ::= [58] CHOICE { -- Tag 'BF3A'
|
||||
getBoundProfilePackageOkEsipa GetBoundProfilePackageOkEsipa,
|
||||
getBoundProfilePackageErrorEsipa INTEGER {
|
||||
euiccSignatureInvalid(1),
|
||||
confirmationCodeMissing(2),
|
||||
confirmationCodeRefused(3),
|
||||
confirmationCodeRetriesExceeded(4),
|
||||
bppRebindingRefused(5),
|
||||
downloadOrderExpired(6),
|
||||
profileMetadataMismatch(50),
|
||||
invalidTransactionId(95),
|
||||
undefinedError(127)
|
||||
}
|
||||
}
|
||||
GetBoundProfilePackageOkEsipa ::= SEQUENCE {
|
||||
transactionId [0] TransactionId OPTIONAL,
|
||||
boundProfilePackage [54] BoundProfilePackage
|
||||
}
|
||||
-- ASN1STOP
|
||||
|
||||
-- Section 6.3.2.4
|
||||
-- ASN1START
|
||||
HandleNotificationEsipa ::= [61] CHOICE { -- Tag 'BF3D'
|
||||
pendingNotification SGP32-PendingNotification, -- A Notification to be delivered to a Notification Receiver, possibly in compact format
|
||||
provideEimPackageResult ProvideEimPackageResult
|
||||
}
|
||||
-- ASN1STOP
|
||||
|
||||
-- Section 6.3.2.5
|
||||
-- ASN1START
|
||||
CancelSessionRequestEsipa ::= [65] SEQUENCE { -- Tag 'BF41'
|
||||
transactionId TransactionId,
|
||||
cancelSessionResponse SGP32-CancelSessionResponse -- This is the response from ES10b. CancelSession function, possibly in compact format
|
||||
}
|
||||
CancelSessionResponseEsipa ::= [65] CHOICE { -- Tag 'BF41'
|
||||
cancelSessionOk SGP32-CancelSessionOk,
|
||||
cancelSessionError INTEGER {
|
||||
invalidTransactionId(1),
|
||||
euiccSignatureInvalid(2),
|
||||
undefinedError(127)
|
||||
}
|
||||
}
|
||||
SGP32-CancelSessionOk ::= SEQUENCE { -- This function has no output data
|
||||
}
|
||||
-- ASN1STOP
|
||||
|
||||
|
||||
-- Section 6.3.2.6
|
||||
-- ASN1START
|
||||
GetEimPackageRequest ::= [79] SEQUENCE { -- Tag 'BF4F'
|
||||
eidValue [APPLICATION 26] Octet16, -- Tag '5A'
|
||||
notifyStateChange [0] NULL OPTIONAL, -- Notification to the eIM that it should update its information about the eUICC (e.g. list of profiles, profile states...)
|
||||
rPLMN [1] OCTET STRING (SIZE(3)) OPTIONAL -- MCC and MNC of the last registered PLMN, coded as defined in 3GPP TS 24.008 [22]
|
||||
}
|
||||
GetEimPackageResponse ::= [79] CHOICE { -- Tag 'BF4F'
|
||||
euiccPackageRequest [81] EuiccPackageRequest, -- Tag 'BF51'
|
||||
ipaEuiccDataRequest [82] IpaEuiccDataRequest, -- Tag 'BF52'
|
||||
profileDownloadTriggerRequest [84] ProfileDownloadTriggerRequest, -- Tag 'BF54'
|
||||
eimPackageError INTEGER {
|
||||
noEimPackageAvailable(1),
|
||||
undefinedError(127)
|
||||
}
|
||||
}
|
||||
-- ASN1STOP
|
||||
|
||||
-- Section 6.3.2.7
|
||||
-- ASN1START
|
||||
ProvideEimPackageResult ::= [80] CHOICE { -- Tag 'BF50'
|
||||
euiccPackageResult [81] EuiccPackageResult, -- Tag 'BF51'
|
||||
ePRAndNotifications SEQUENCE {
|
||||
euiccPackageResult [81] EuiccPackageResult, -- Tag 'BF51'
|
||||
notificationList [43] SGP32-RetrieveNotificationsListResponse -- Tag 'BF2B'
|
||||
},
|
||||
ipaEuiccDataResponse [82] IpaEuiccDataResponse, -- Tag 'BF52'
|
||||
profileDownloadTriggerResult [84] ProfileDownloadTriggerResult, -- Tag 'BF54'
|
||||
eimPackageError INTEGER {
|
||||
invalidPackageFormat(1),
|
||||
unknownPackage(2),
|
||||
undefinedError(127)
|
||||
}
|
||||
}
|
||||
ProvideEimPackageResultResponse ::= [80] SEQUENCE { -- Tag 'BF50'
|
||||
eimAcknowledgements [83] EimAcknowledgements OPTIONAL -- Tag 'BF53'
|
||||
}
|
||||
-- ASN1STOP
|
||||
|
||||
-- Section 6.3.3.1
|
||||
-- ASN1START
|
||||
TransferEimPackageRequest ::= [78] CHOICE { -- Tag 'BF4E'
|
||||
euiccPackageRequest [81] EuiccPackageRequest, -- Tag 'BF51'
|
||||
ipaEuiccDataRequest [82] IpaEuiccDataRequest, -- Tag 'BF52'
|
||||
eimAcknowledgements [83] EimAcknowledgements, -- Tag 'BF53'
|
||||
profileDownloadTriggerRequest [84] ProfileDownloadTriggerRequest -- Tag 'BF54'
|
||||
}
|
||||
TransferEimPackageResponse ::= [78] CHOICE { -- Tag 'BF4E'
|
||||
euiccPackageResult [81] EuiccPackageResult, -- Tag 'BF51'
|
||||
ePRAndNotifications SEQUENCE {
|
||||
euiccPackageResult [81] EuiccPackageResult, -- Tag 'BF51'
|
||||
notificationList [43] SGP32-RetrieveNotificationsListResponse -- Tag 'BF2B'
|
||||
},
|
||||
ipaEuiccDataResponse [82] IpaEuiccDataResponse, -- Tag 'BF52'
|
||||
eimPackageReceived NULL,
|
||||
eimPackageError INTEGER {
|
||||
invalidPackageFormat(1),
|
||||
unknownPackage(2),
|
||||
undefinedError(127)
|
||||
}
|
||||
}
|
||||
-- ASN1STOP
|
||||
|
||||
|
||||
END
|
|
@ -0,0 +1,113 @@
|
|||
#include "SGP32Definitions.hh"
|
||||
|
||||
namespace SGP32Definitions__Types {
|
||||
|
||||
using namespace SGP32Definitions;
|
||||
using namespace PKIX1Explicit88;
|
||||
|
||||
TTCN_Module SGP32Definitions__EncDec("SGP32Definitions_EncDec", __DATE__, __TIME__);
|
||||
|
||||
OCTETSTRING enc__EsipaMessageFromIpaToEim(const EsipaMessageFromIpaToEim &msg) {
|
||||
TTCN_Buffer buf;
|
||||
|
||||
buf.clear();
|
||||
msg.encode(EsipaMessageFromIpaToEim_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
return OCTETSTRING(buf.get_len(), buf.get_data());
|
||||
}
|
||||
|
||||
EsipaMessageFromIpaToEim dec__EsipaMessageFromIpaToEim(const OCTETSTRING &stream) {
|
||||
TTCN_Buffer buf;
|
||||
EsipaMessageFromIpaToEim msg;
|
||||
buf.put_os(stream);
|
||||
|
||||
msg.decode(EsipaMessageFromIpaToEim_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
return msg;
|
||||
}
|
||||
|
||||
OCTETSTRING enc__EsipaMessageFromEimToIpa(const EsipaMessageFromEimToIpa &msg) {
|
||||
TTCN_Buffer buf;
|
||||
|
||||
buf.clear();
|
||||
msg.encode(EsipaMessageFromEimToIpa_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
return OCTETSTRING(buf.get_len(), buf.get_data());
|
||||
}
|
||||
|
||||
EsipaMessageFromEimToIpa dec__EsipaMessageFromEimToIpa(const OCTETSTRING &stream) {
|
||||
TTCN_Buffer buf;
|
||||
EsipaMessageFromEimToIpa msg;
|
||||
buf.put_os(stream);
|
||||
|
||||
msg.decode(EsipaMessageFromEimToIpa_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
return msg;
|
||||
}
|
||||
|
||||
OCTETSTRING enc__EuiccPackageResult(const EuiccPackageResult &msg) {
|
||||
TTCN_Buffer buf;
|
||||
|
||||
buf.clear();
|
||||
msg.encode(EuiccPackageResult_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
return OCTETSTRING(buf.get_len(), buf.get_data());
|
||||
}
|
||||
|
||||
EuiccPackageResult dec__EuiccPackageResult(const OCTETSTRING &stream) {
|
||||
TTCN_Buffer buf;
|
||||
EuiccPackageResult msg;
|
||||
buf.put_os(stream);
|
||||
|
||||
msg.decode(EuiccPackageResult_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
return msg;
|
||||
}
|
||||
|
||||
OCTETSTRING enc__GetCertsResponse(const GetCertsResponse &msg) {
|
||||
TTCN_Buffer buf;
|
||||
|
||||
buf.clear();
|
||||
msg.encode(GetCertsResponse_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
return OCTETSTRING(buf.get_len(), buf.get_data());
|
||||
}
|
||||
|
||||
GetCertsResponse dec__GetCertsResponse(const OCTETSTRING &stream) {
|
||||
TTCN_Buffer buf;
|
||||
GetCertsResponse msg;
|
||||
buf.put_os(stream);
|
||||
|
||||
msg.decode(GetCertsResponse_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
return msg;
|
||||
}
|
||||
|
||||
OCTETSTRING enc__GetEimConfigurationDataResponse(const GetEimConfigurationDataResponse &msg) {
|
||||
TTCN_Buffer buf;
|
||||
|
||||
buf.clear();
|
||||
msg.encode(GetEimConfigurationDataResponse_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
return OCTETSTRING(buf.get_len(), buf.get_data());
|
||||
}
|
||||
|
||||
GetEimConfigurationDataResponse dec__GetEimConfigurationDataResponse(const OCTETSTRING &stream) {
|
||||
TTCN_Buffer buf;
|
||||
GetEimConfigurationDataResponse msg;
|
||||
buf.put_os(stream);
|
||||
|
||||
msg.decode(GetEimConfigurationDataResponse_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
return msg;
|
||||
}
|
||||
|
||||
OCTETSTRING enc__AddInitialEimResponse(const AddInitialEimResponse &msg) {
|
||||
TTCN_Buffer buf;
|
||||
|
||||
buf.clear();
|
||||
msg.encode(AddInitialEimResponse_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
return OCTETSTRING(buf.get_len(), buf.get_data());
|
||||
}
|
||||
|
||||
AddInitialEimResponse dec__AddInitialEimResponse(const OCTETSTRING &stream) {
|
||||
TTCN_Buffer buf;
|
||||
AddInitialEimResponse msg;
|
||||
buf.put_os(stream);
|
||||
|
||||
msg.decode(AddInitialEimResponse_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
return msg;
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,433 @@
|
|||
/* SGP32 Templates in TTCN-3
|
||||
*
|
||||
* Author: Philipp Maier <pmaier@sysmocom.de> / sysmocom - s.f.m.c. GmbH
|
||||
*
|
||||
* Released under the terms of GNU General Public License, Version 2 or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
module SGP32Definitions_Templates {
|
||||
|
||||
import from SGP32Definitions all;
|
||||
import from SGP32Definitions_Types all;
|
||||
|
||||
import from RSPDefinitions all;
|
||||
import from RSPDefinitions_Types all;
|
||||
import from RSPDefinitions_Templates all;
|
||||
|
||||
import from PKIX1Explicit88 all;
|
||||
import from PKIX1Explicit88_Templates all;
|
||||
import from PKIX1Explicit88_Types all;
|
||||
|
||||
/* GSMA SGP.32, section 6.3.2.1 */
|
||||
template (present) EsipaMessageFromEimToIpa
|
||||
tr_initiateAuthenticationResponseEsipa(template (present) octetstring euiccChallenge := ?,
|
||||
template (present) universal charstring serverAddress := ?) := {
|
||||
initiateAuthenticationResponseEsipa := {
|
||||
initiateAuthenticationOkEsipa := {
|
||||
transactionId := *,
|
||||
serverSigned1 := {
|
||||
transactionId := ?,
|
||||
euiccChallenge := euiccChallenge,
|
||||
serverAddress := serverAddress,
|
||||
serverChallenge := ?
|
||||
},
|
||||
serverSignature1 := ?,
|
||||
euiccCiPKIdToBeUsed := ?,
|
||||
serverCertificate := ?,
|
||||
matchingId := *,
|
||||
ctxParams1 := *
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
template (value) EsipaMessageFromEimToIpa
|
||||
ts_initiateAuthenticationResponseEsipa(template (value) octetstring euiccChallenge := '00112233445566778899AABBCCDDEEFF'O,
|
||||
template (value) universal charstring serverAddress := "smdp.example.com") := {
|
||||
initiateAuthenticationResponseEsipa := {
|
||||
initiateAuthenticationOkEsipa := {
|
||||
transactionId := omit,
|
||||
serverSigned1 := {
|
||||
transactionId := 'ABCDEF'O,
|
||||
euiccChallenge := euiccChallenge,
|
||||
serverAddress := "smdp.example.com",
|
||||
serverChallenge := '01020304050607080910111213141516'O
|
||||
},
|
||||
serverSignature1 := '01020304'O,
|
||||
euiccCiPKIdToBeUsed := 'F54172BDF98A95D65CBEB88A38A1C11D800A85C3'O, /* NIST */
|
||||
serverCertificate := ts_cert_s_sm_dpauth_nist,
|
||||
// serverCertificate := ts_cert_s_sm_dpauth_brp,
|
||||
// serverCertificate := ts_cert_s_sm_dp2auth_nist,
|
||||
// serverCertificate := ts_cert_s_sm_dp2auth_brp,
|
||||
matchingId := omit,
|
||||
ctxParams1 := omit
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* GSMA SGP.32, section 6.3.2.1 */
|
||||
template (present) EsipaMessageFromIpaToEim
|
||||
tr_initiateAuthenticationRequestEsipa(template (present) octetstring euiccChallenge := ?) := {
|
||||
initiateAuthenticationRequestEsipa := {
|
||||
euiccChallenge := euiccChallenge,
|
||||
smdpAddress := *,
|
||||
euiccInfo1 := *
|
||||
}
|
||||
}
|
||||
template (value) EsipaMessageFromIpaToEim
|
||||
ts_initiateAuthenticationRequestEsipa(template (value) octetstring euiccChallenge := '00112233445566778899aabbccddeeff'O) := {
|
||||
initiateAuthenticationRequestEsipa := {
|
||||
euiccChallenge := euiccChallenge,
|
||||
smdpAddress := omit,
|
||||
euiccInfo1 := omit
|
||||
}
|
||||
}
|
||||
|
||||
/* GSMA SGP.32, section 6.3.2.2 */
|
||||
template (present) EsipaMessageFromIpaToEim
|
||||
tr_authenticateClientRequestEsipa := {
|
||||
authenticateClientRequestEsipa := {
|
||||
transactionId := ?,
|
||||
authenticateServerResponse := {
|
||||
authenticateResponseOk := ?
|
||||
}
|
||||
}
|
||||
}
|
||||
/* TODO: create coresponding ts_ template */
|
||||
|
||||
/* GSMA SGP.32, section 6.3.2.2 */
|
||||
template (present) EsipaMessageFromEimToIpa
|
||||
tr_authenticateClientResponseEsipa_dse(template (present) octetstring transactionId := ?,
|
||||
template (present) charstring activationCode := ?) := {
|
||||
authenticateClientResponseEsipa := {
|
||||
authenticateClientOkDSEsipa := {
|
||||
transactionId := transactionId,
|
||||
profileDownloadTrigger := {
|
||||
profileDownloadData := {
|
||||
activationCode := ?
|
||||
},
|
||||
eimTransactionId := *
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
template (value) EsipaMessageFromEimToIpa
|
||||
ts_authenticateClientResponseEsipa_dse(template (value) octetstring transactionId := 'ABCDEF'O,
|
||||
template (value) charstring activationCode := "1$SMDP.EXAMPLE.COM$$1.3.6.1.4.1.31746") := {
|
||||
authenticateClientResponseEsipa := {
|
||||
authenticateClientOkDSEsipa := {
|
||||
transactionId := transactionId,
|
||||
profileDownloadTrigger := {
|
||||
profileDownloadData := {
|
||||
activationCode := activationCode
|
||||
},
|
||||
eimTransactionId := omit
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* GSMA SGP.32, section 6.3.2.2 */
|
||||
template (present) EsipaMessageFromEimToIpa
|
||||
tr_authenticateClientResponseEsipa_dpe(template (present) octetstring transactionId := ?) := {
|
||||
authenticateClientResponseEsipa := {
|
||||
authenticateClientOkDPEsipa := {
|
||||
transactionId := transactionId,
|
||||
profileMetaData := *,
|
||||
smdpSigned2 := {
|
||||
transactionId := ?,
|
||||
ccRequiredFlag := ?,
|
||||
bppEuiccOtpk := *
|
||||
},
|
||||
smdpSignature2 := ?,
|
||||
smdpCertificate := ?,
|
||||
hashCc := *
|
||||
}
|
||||
}
|
||||
}
|
||||
template (value) EsipaMessageFromEimToIpa
|
||||
ts_authenticateClientResponseEsipa_dpe(template (value) octetstring transactionId := 'ABCDEF'O) := {
|
||||
authenticateClientResponseEsipa := {
|
||||
authenticateClientOkDPEsipa := {
|
||||
transactionId := transactionId,
|
||||
profileMetaData := omit,
|
||||
smdpSigned2 := {
|
||||
transactionId := transactionId,
|
||||
ccRequiredFlag := false,
|
||||
bppEuiccOtpk := omit
|
||||
},
|
||||
smdpSignature2 := 'AAAAAAAAAAAAAAAAAAAAAAAA'O,
|
||||
smdpCertificate := ts_cert_s_sm_dpauth_nist,
|
||||
// smdpCertificate := ts_cert_s_sm_dpauth_brp,
|
||||
// smdpCertificate := ts_cert_s_sm_dp2auth_nist,
|
||||
// smdpCertificate := ts_cert_s_sm_dp2auth_brp,
|
||||
hashCc := omit
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* GSMA SGP.32, section 6.3.2.6 */
|
||||
template (present) EsipaMessageFromIpaToEim
|
||||
tr_getEimPackageRequest(template (present) octetstring eidValue := ?) := {
|
||||
getEimPackageRequest := {
|
||||
eidValue := eidValue,
|
||||
notifyStateChange := *,
|
||||
rPLMN := *
|
||||
}
|
||||
}
|
||||
template (value) EsipaMessageFromIpaToEim
|
||||
ts_getEimPackageRequest(template (value) octetstring eidValue) := {
|
||||
getEimPackageRequest := {
|
||||
eidValue := eidValue,
|
||||
notifyStateChange := omit,
|
||||
rPLMN := omit
|
||||
}
|
||||
}
|
||||
|
||||
/* GSMA SGP.32, section 6.3.2.6 and 2.11.1.3 */
|
||||
template (present) EsipaMessageFromEimToIpa
|
||||
tr_getEimPackageResponse_dnlTrigReq(template (present) charstring activationCode := ?) := {
|
||||
getEimPackageResponse := {
|
||||
profileDownloadTriggerRequest := {
|
||||
profileDownloadData := {
|
||||
activationCode := activationCode
|
||||
},
|
||||
eimTransactionId := *
|
||||
}
|
||||
}
|
||||
}
|
||||
template (value) EsipaMessageFromEimToIpa
|
||||
ts_getEimPackageResponse_dnlTrigReq(template (value) charstring activationCode := "1$SMDP.EXAMPLE.COM$$1.3.6.1.4.1.31746") := {
|
||||
getEimPackageResponse := {
|
||||
profileDownloadTriggerRequest := {
|
||||
profileDownloadData := {
|
||||
activationCode := activationCode
|
||||
},
|
||||
eimTransactionId := omit
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* GSMA SGP.32, section 6.3.2.6 and 2.11.1.2 */
|
||||
template (present) EsipaMessageFromEimToIpa
|
||||
tr_getEimPackageResponse_euiccDataReq := {
|
||||
getEimPackageResponse := {
|
||||
ipaEuiccDataRequest := {
|
||||
tagList := ?,
|
||||
euiccCiPKId := *,
|
||||
searchCriteria := *
|
||||
}
|
||||
}
|
||||
}
|
||||
template (value) EsipaMessageFromEimToIpa
|
||||
ts_getEimPackageResponse_euiccDataReq := {
|
||||
getEimPackageResponse := {
|
||||
ipaEuiccDataRequest := {
|
||||
tagList := '80BF20BF228384A5A688A9BF2B'O,
|
||||
euiccCiPKId := omit,
|
||||
searchCriteria := omit
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* GSMA SGP.32, section 6.3.2.6 */
|
||||
template (present) EsipaMessageFromEimToIpa
|
||||
tr_getEimPackageResponse_eimPkgErrUndef := {
|
||||
getEimPackageResponse := {
|
||||
eimPackageError := ?
|
||||
}
|
||||
}
|
||||
template (value) EsipaMessageFromEimToIpa
|
||||
ts_getEimPackageResponse_eimPkgErrUndef := {
|
||||
getEimPackageResponse := {
|
||||
eimPackageError := 127
|
||||
}
|
||||
}
|
||||
|
||||
/* GSMA SGP.32, section 6.3.2.6 */
|
||||
template (value) EsipaMessageFromEimToIpa
|
||||
ts_getEimPackageResponse_euiccPkgReq := {
|
||||
getEimPackageResponse := {
|
||||
euiccPackageRequest := {
|
||||
euiccPackageSigned := {
|
||||
eimId := "myEim",
|
||||
eidValue := '00112233445566778899AABBCCDDEEFF'O,
|
||||
counterValue := 123,
|
||||
transactionId := omit,
|
||||
euiccPackage := {
|
||||
psmoList := {
|
||||
{
|
||||
configureAutoEnable := {
|
||||
autoEnableFlag := NULL,
|
||||
smdpOid := omit,
|
||||
smdpAddress := omit
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
eimSignature := '1234567890'O
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* GSMA SGP.32, section 6.3.2.5 */
|
||||
template (present) EsipaMessageFromIpaToEim
|
||||
tr_cancelSessionRequestEsipa := {
|
||||
cancelSessionRequestEsipa := {
|
||||
transactionId := ?,
|
||||
cancelSessionResponse := {
|
||||
cancelSessionResponseOk := tr_cancelSessionResponseOk
|
||||
}
|
||||
}
|
||||
}
|
||||
template (value) EsipaMessageFromIpaToEim
|
||||
ts_cancelSessionRequestEsipa := {
|
||||
cancelSessionRequestEsipa := {
|
||||
transactionId := 'AABBCC'O,
|
||||
cancelSessionResponse := {
|
||||
cancelSessionResponseOk := ts_cancelSessionResponseOk
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* GSMA SGP.32, section 6.3.2.5 */
|
||||
template (present) EsipaMessageFromEimToIpa
|
||||
tr_cancelSessionResponseEsipa := {
|
||||
cancelSessionResponseEsipa := {
|
||||
cancelSessionOk := {
|
||||
/* This function has no output data */
|
||||
}
|
||||
}
|
||||
}
|
||||
template (value) EsipaMessageFromEimToIpa
|
||||
ts_cancelSessionResponseEsipa := {
|
||||
cancelSessionResponseEsipa := {
|
||||
cancelSessionOk := {
|
||||
/* This function has no output data */
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* GSMA SGP.32, section 6.3.2.3 */
|
||||
template (present) EsipaMessageFromEimToIpa
|
||||
tr_getBoundProfilePackageResponseEsipa := {
|
||||
getBoundProfilePackageResponseEsipa := {
|
||||
getBoundProfilePackageOkEsipa := {
|
||||
transactionId := *,
|
||||
boundProfilePackage := tr_boundProfilePackage
|
||||
}
|
||||
}
|
||||
}
|
||||
template (value) EsipaMessageFromEimToIpa
|
||||
ts_getBoundProfilePackageResponseEsipa := {
|
||||
getBoundProfilePackageResponseEsipa := {
|
||||
getBoundProfilePackageOkEsipa := {
|
||||
transactionId := omit,
|
||||
boundProfilePackage := ts_boundProfilePackage
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* GSMA SGP.32, section 5.9.1 */
|
||||
template (present) EuiccPackageResult
|
||||
tr_euiccPackageResult := {
|
||||
euiccPackageResultSigned := {
|
||||
euiccPackageResultDataSigned := {
|
||||
eimId := ?,
|
||||
counterValue := ?,
|
||||
transactionId := *,
|
||||
seqNumber := ?,
|
||||
euiccResult := ?
|
||||
},
|
||||
euiccSignEPR := ?
|
||||
}
|
||||
}
|
||||
template (value) EuiccPackageResult
|
||||
ts_euiccPackageResult := {
|
||||
euiccPackageResultSigned := {
|
||||
euiccPackageResultDataSigned := {
|
||||
eimId := "myEim",
|
||||
counterValue := 333,
|
||||
transactionId := omit,
|
||||
seqNumber := 1234,
|
||||
euiccResult := {
|
||||
{
|
||||
configureAutoEnableResult := 0
|
||||
}
|
||||
}
|
||||
},
|
||||
euiccSignEPR := 'AABBCCDDEEFF'O
|
||||
}
|
||||
}
|
||||
|
||||
/* GSMA SGP.32, section 6.3.2.7 */
|
||||
/* TODO rename tr_provideEimPackageResultResponse to something like tr_provideEimPackageResultResponse_eimAck */
|
||||
template (present) EsipaMessageFromEimToIpa
|
||||
tr_provideEimPackageResultResponse := {
|
||||
provideEimPackageResultResponse := {
|
||||
eimAcknowledgements := *
|
||||
}
|
||||
}
|
||||
template (value) EsipaMessageFromEimToIpa
|
||||
ts_provideEimPackageResultResponse(template (value) EimAcknowledgements eimAcknowledgements := {}) := {
|
||||
provideEimPackageResultResponse := {
|
||||
eimAcknowledgements := eimAcknowledgements
|
||||
}
|
||||
}
|
||||
|
||||
/* GSMA SGP.32, section 2.11.1.2 */
|
||||
template (present) GetCertsResponse
|
||||
tr_getCertsResponse := {
|
||||
certs := {
|
||||
eumCertificate := ?,
|
||||
euiccCertificate := ?
|
||||
}
|
||||
}
|
||||
template (value) GetCertsResponse
|
||||
ts_getCertsResponse := {
|
||||
certs := {
|
||||
eumCertificate := ts_cert_s_sm_dpauth_nist,
|
||||
euiccCertificate := ts_cert_eum_nist
|
||||
}
|
||||
}
|
||||
|
||||
/* GSMA SGP.32, section 5.9.18 */
|
||||
template (present) GetEimConfigurationDataResponse
|
||||
tr_getEimConfigurationDataResponse := {
|
||||
eimConfigurationDataList := ?
|
||||
}
|
||||
template (value) GetEimConfigurationDataResponse
|
||||
ts_getEimConfigurationDataResponse(template (value) charstring eimFqdn := "127.0.0.1") := {
|
||||
eimConfigurationDataList := {
|
||||
{
|
||||
eimId := "myEIM",
|
||||
eimFqdn := eimFqdn,
|
||||
eimIdType := omit,
|
||||
counterValue := omit,
|
||||
associationToken := 123,
|
||||
eimPublicKeyData := omit,
|
||||
trustedPublicKeyDataTls := omit,
|
||||
eimSupportedProtocol := omit,
|
||||
euiccCiPKId := omit
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* GSMA SGP.32, section 5.9.4 */
|
||||
template (present) AddInitialEimResponse
|
||||
tr_addInitialEimResponse := {
|
||||
addInitialEimOk := ?
|
||||
}
|
||||
template (value) AddInitialEimResponse
|
||||
ts_addInitialEimResponse(template (value) charstring eimFqdn := "127.0.0.1") := {
|
||||
addInitialEimOk := {
|
||||
{
|
||||
addOk := NULL
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
module SGP32Definitions_Types {
|
||||
|
||||
import from SGP32Definitions all;
|
||||
import from Native_Functions all;
|
||||
|
||||
external function dec_EsipaMessageFromIpaToEim(in octetstring stream) return EsipaMessageFromIpaToEim;
|
||||
external function enc_EsipaMessageFromIpaToEim(in EsipaMessageFromIpaToEim msg) return octetstring;
|
||||
|
||||
external function dec_EsipaMessageFromEimToIpa(in octetstring stream) return EsipaMessageFromEimToIpa;
|
||||
external function enc_EsipaMessageFromEimToIpa(in EsipaMessageFromEimToIpa msg) return octetstring;
|
||||
|
||||
external function dec_EuiccPackageResult(in octetstring stream) return EuiccPackageResult;
|
||||
external function enc_EuiccPackageResult(in EuiccPackageResult msg) return octetstring;
|
||||
|
||||
external function dec_GetCertsResponse(in octetstring stream) return GetCertsResponse;
|
||||
external function enc_GetCertsResponse(in GetCertsResponse msg) return octetstring;
|
||||
|
||||
external function dec_GetEimConfigurationDataResponse(in octetstring stream) return GetEimConfigurationDataResponse;
|
||||
external function enc_GetEimConfigurationDataResponse(in GetEimConfigurationDataResponse msg) return octetstring;
|
||||
|
||||
external function dec_AddInitialEimResponse(in octetstring stream) return AddInitialEimResponse;
|
||||
external function enc_AddInitialEimResponse(in AddInitialEimResponse msg) return octetstring;
|
||||
|
||||
}
|
Loading…
Reference in New Issue