-
-
Notifications
You must be signed in to change notification settings - Fork 118
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
KeyError on 'hexValue' started from version 0.3.2 #159
Comments
Thank you for rising this! Is it that just instantiation fails or is the failure manifests itself on decoding? What kind of failure is that? If you could provide a minimal reproducer, that would be helpful! |
Hi @etingof, Sorry for the late reply. The definition I use is SimAlliance definition (ARCHIVE: SIMalliance eUICC Profile Package: Interoperable Format Technical Specification Version 2.0 and ASN.1 Module) converted by asn1ate. I will try to give you more data once I have the access to my laptop. |
hi @etingof I'm back. ---PEDefinitionv2.0.asn
PEDefinitions {joint-iso-itu-t(2) international-organizations(23) simalliance(143) euicc-profile(1) spec-version(1) version-two(2)}
DEFINITIONS
AUTOMATIC TAGS
EXTENSIBILITY IMPLIED ::=
BEGIN
-- Basic integer types, for size constraints
maxUInt8 INTEGER ::= 255
UInt8 ::= INTEGER (0..maxUInt8)
maxUInt15 INTEGER ::= 32767
UInt15 ::= INTEGER (0..maxUInt15)
maxUInt16 INTEGER ::= 65535
UInt16 ::= INTEGER (0..maxUInt16)
-- maxUInt31 INTEGER ::= 2147483647
-- UInt31 ::= INTEGER (0..maxUInt31)
ApplicationIdentifier ::= OCTET STRING (SIZE(5..16))
PEHeader ::= SEQUENCE {
mandated NULL OPTIONAL,
-- if set, indicate that the support of this PE is mandatory
identification UInt15 -- Identification number of this PE
}
ProfileElement ::= CHOICE {
header ProfileHeader,
/* PEs */
genericFileManagement PE-GenericFileManagement,
pinCodes PE-PINCodes,
pukCodes PE-PUKCodes,
akaParameter PE-AKAParameter,
cdmaParameter PE-CDMAParameter,
securityDomain PE-SecurityDomain,
rfm PE-RFM,
application PE-Application,
nonStandard PE-NonStandard,
end PE-End,
rfu1 PE-Dummy, -- this avoids renumbering of tag values
rfu2 PE-Dummy, -- in case other non-file-system PEs are
rfu3 PE-Dummy, -- added here in future versions
rfu4 PE-Dummy,
rfu5 PE-Dummy,
/* PEs related to file system creation using templates defined in this specification */
mf PE-MF,
cd PE-CD,
telecom PE-TELECOM,
usim PE-USIM,
opt-usim PE-OPT-USIM,
isim PE-ISIM,
opt-isim PE-OPT-ISIM,
phonebook PE-PHONEBOOK,
gsm-access PE-GSM-ACCESS,
csim PE-CSIM,
opt-csim PE-OPT-CSIM,
...
}
PE-Dummy ::= SEQUENCE {
}
ServicesList ::= SEQUENCE {
/* Contactless */
contactless NULL OPTIONAL,
/* NAAs */
usim NULL OPTIONAL,
isim NULL OPTIONAL,
csim NULL OPTIONAL,
/* NAA algorithms */
milenage NULL OPTIONAL,
tuak128 NULL OPTIONAL,
cave NULL OPTIONAL,
/* USIM/ISIM services */
gba-usim NULL OPTIONAL,
gba-isim NULL OPTIONAL,
mbms NULL OPTIONAL,
eap NULL OPTIONAL,
/* Application Runtime environment */
javacard NULL OPTIONAL,
multos NULL OPTIONAL,
/* NAAs */
multiple-usim NULL OPTIONAL,
multiple-isim NULL OPTIONAL,
multiple-csim NULL OPTIONAL,
/* Additional algorithms */
tuak256 NULL OPTIONAL
}
ProfileHeader ::= SEQUENCE {
major-version UInt8, -- set to 2 for this version of the specification
minor-version UInt8, -- set to 0 for this version of the specification
profileType UTF8String OPTIONAL, -- Profile type
iccid OCTET STRING (SIZE (10)), -- ICCID of the Profile
pol OCTET STRING OPTIONAL,
eUICC-Mandatory-services ServicesList,
eUICC-Mandatory-GFSTEList SEQUENCE OF OBJECT IDENTIFIER,
connectivityParameters OCTET STRING OPTIONAL
}
ProprietaryInfo ::= SEQUENCE {
specialFileInformation [PRIVATE 0] OCTET STRING (SIZE (1)) DEFAULT '00'H,
/* fillPattern, repeatPattern
only one of the parameters may be present. Coding and rules defined within ETSI TS 102 222 [102 222] apply
*/
fillPattern [PRIVATE 1] OCTET STRING OPTIONAL,
repeatPattern [PRIVATE 2] OCTET STRING OPTIONAL
}
Fcp ::= SEQUENCE {
fileDescriptor [2] OCTET STRING (SIZE(2..4)) OPTIONAL,
/* fileID
For ADFs, the fileID is a temporary value (named temporary file ID in this document) used only during the profile creation. It has to be unique within a profile and is used for referencing files within this ADF using the file path.
*/
fileID [3] OCTET STRING (SIZE(2)) OPTIONAL,
/* dfName
Only applies for ADFs
*/
dfName [4] ApplicationIdentifier OPTIONAL,
/* lcsi
Coding according to ETSI TS 102 222 [102 222]
*/
lcsi [10] OCTET STRING (SIZE (1)) DEFAULT '05'H,
/* securityAttributesReferenced
Either containing EF ARR ID[2] + record number[1] or
record number[1] only and EF ARR ID implicitly known from the
context, i.e. '2F06' within the MF and '6F06' otherwise
*/
securityAttributesReferenced [11] OCTET STRING OPTIONAL,
/* efFileSize
Mandatory for EF file types
Not allowed for DF files
*/
efFileSize [0] OCTET STRING OPTIONAL,
/* pinStatusTemplateDO
Not allowed for EF files
Mandatory for DF/ADF files
The pinStatusTemplateDO includes a list of all
PINKeyReferenceValue values used within the DF
and which shall be returned by the (A)DF
within the PS_DO according ETSI TS 102 221 [102 221];
(e.g. '01810A'H as a typical value for an ADF_USIM)
*/
pinStatusTemplateDO [PRIVATE 6] OCTET STRING OPTIONAL,
/* shortEFID
Not allowed for DF files
Optional for EF file types / equivalent to ETSI TS 102 222
shortEFID not available: in case of a template file, SFI is set according to the respective file specification. For files created by using GenericFileManagement, SFI is calculated from FID
shortEFID available but not value: no SFI is supported
for this EF
shortEFID available with a length of 1 byte:
The Short File Identifier is coded from bits b8 to b4.
Bits b3,b2,b1 = 000.
*/
shortEFID [8] OCTET STRING (SIZE (0..1)) OPTIONAL,
/* proprietaryEFInfo
Optional for EF file types
Not allowed for DF files
*/
proprietaryEFInfo [5] ProprietaryInfo OPTIONAL,
/* linkPath
Specifies the path to the file to which shall be linked,
also valid for DFs/ADFs. Files within ADFs are addressed
by the temporary file ID of the respective ADF. For the coding
see filePath.
*/
linkPath [PRIVATE 7] OCTET STRING OPTIONAL
}
File ::= SEQUENCE OF CHOICE {
doNotCreate NULL, /* Indicates that this file shall not be created by the eUICC even if present in a PE referencing a "Created by Default" template.
This flag has no effect for the creation of files in the MF and shall not be used for all the files listed in a "Not Created by Default" template*/
fileDescriptor Fcp,
fillFileOffset UInt16,
fillFileContent OCTET STRING
}
PE-MF ::= SEQUENCE {
mf-header PEHeader,
templateID OBJECT IDENTIFIER,
mf File,
ef-pl File OPTIONAL,
ef-iccid File,
ef-dir File,
ef-arr File,
ef-umpc File OPTIONAL
}
PE-CD ::= SEQUENCE {
cd-header PEHeader,
templateID OBJECT IDENTIFIER,
df-cd File,
ef-launchpad File OPTIONAL, --
ef-icon File OPTIONAL
}
PE-TELECOM ::= SEQUENCE {
telecom-header PEHeader,
templateID OBJECT IDENTIFIER,
df-telecom File,
ef-arr File OPTIONAL,
ef-rma File OPTIONAL,
ef-sume File OPTIONAL,
ef-ice-dn File OPTIONAL,
ef-ice-ff File OPTIONAL,
ef-psismsc File OPTIONAL,
df-graphics File OPTIONAL,
ef-img File OPTIONAL,
ef-iidf File OPTIONAL,
ef-ice-graphics File OPTIONAL,
ef-launch-scws File OPTIONAL,
ef-icon File OPTIONAL,
df-phonebook File OPTIONAL,
ef-pbr File OPTIONAL,
ef-ext1 File OPTIONAL,
ef-aas File OPTIONAL,
ef-gas File OPTIONAL,
ef-psc File OPTIONAL,
ef-cc File OPTIONAL,
ef-puid File OPTIONAL,
ef-iap File OPTIONAL,
ef-adn File OPTIONAL,
ef-pbc File OPTIONAL,
ef-anr File OPTIONAL,
ef-puri File OPTIONAL,
ef-email File OPTIONAL,
ef-sne File OPTIONAL,
ef-uid File OPTIONAL,
ef-grp File OPTIONAL,
ef-ccp1 File OPTIONAL,
df-multimedia File OPTIONAL,
ef-mml File OPTIONAL,
ef-mmdf File OPTIONAL,
df-mmss File OPTIONAL,
ef-mlpl File OPTIONAL,
ef-mspl File OPTIONAL,
ef-mmssmode File OPTIONAL
}
PE-USIM ::= SEQUENCE {
usim-header PEHeader,
templateID OBJECT IDENTIFIER,
adf-usim File,
ef-imsi File,
ef-arr File,
ef-keys File OPTIONAL,
ef-keysPS File OPTIONAL,
ef-hpplmn File OPTIONAL,
ef-ust File, /* The content of UST file shall be modified by the eUICC during profile installation according to the functionality supported by the eUICC platform i.e. in the case where a service is not supported (and not indicated as required) the related bit(s) will be set to zero */
ef-fdn File OPTIONAL,
ef-sms File OPTIONAL,
ef-smsp File OPTIONAL,
ef-smss File OPTIONAL,
ef-spn File,
ef-est File,
ef-start-hfn File OPTIONAL,
ef-threshold File OPTIONAL,
ef-psloci File OPTIONAL,
ef-acc File,
ef-fplmn File OPTIONAL,
ef-loci File OPTIONAL,
ef-ad File OPTIONAL,
ef-ecc File,
ef-netpar File OPTIONAL,
ef-epsloci File OPTIONAL,
ef-epsnsc File OPTIONAL
}
PE-OPT-USIM ::= SEQUENCE {
optusim-header PEHeader,
templateID OBJECT IDENTIFIER,
ef-li File OPTIONAL,
ef-acmax File OPTIONAL,
ef-acm File OPTIONAL,
ef-gid1 File OPTIONAL,
ef-gid2 File OPTIONAL,
ef-msisdn File OPTIONAL,
ef-puct File OPTIONAL,
ef-cbmi File OPTIONAL,
ef-cbmid File OPTIONAL,
ef-sdn File OPTIONAL,
ef-ext2 File OPTIONAL,
ef-ext3 File OPTIONAL,
ef-cbmir File OPTIONAL,
ef-plmnwact File OPTIONAL,
ef-oplmnwact File OPTIONAL,
ef-hplmnwact File OPTIONAL,
ef-dck File OPTIONAL,
ef-cnl File OPTIONAL,
ef-smsr File OPTIONAL,
ef-bdn File OPTIONAL,
ef-ext5 File OPTIONAL,
ef-ccp2 File OPTIONAL,
ef-ext4 File OPTIONAL,
ef-acl File OPTIONAL,
ef-cmi File OPTIONAL,
ef-ici File OPTIONAL,
ef-oci File OPTIONAL,
ef-ict File OPTIONAL,
ef-oct File OPTIONAL,
ef-vgcs File OPTIONAL,
ef-vgcss File OPTIONAL,
ef-vbs File OPTIONAL,
ef-vbss File OPTIONAL,
ef-emlpp File OPTIONAL,
ef-aaem File OPTIONAL,
ef-hiddenkey File OPTIONAL,
ef-pnn File OPTIONAL,
ef-opl File OPTIONAL,
ef-mbdn File OPTIONAL,
ef-ext6 File OPTIONAL,
ef-mbi File OPTIONAL,
ef-mwis File OPTIONAL,
ef-cfis File OPTIONAL,
ef-ext7 File OPTIONAL,
ef-spdi File OPTIONAL,
ef-mmsn File OPTIONAL,
ef-ext8 File OPTIONAL,
ef-mmsicp File OPTIONAL,
ef-mmsup File OPTIONAL,
ef-mmsucp File OPTIONAL,
ef-nia File OPTIONAL,
ef-vgcsca File OPTIONAL,
ef-vbsca File OPTIONAL,
ef-gbabp File OPTIONAL,
ef-msk File OPTIONAL,
ef-muk File OPTIONAL,
ef-ehplmn File OPTIONAL,
ef-gbanl File OPTIONAL,
ef-ehplmnpi File OPTIONAL,
ef-lrplmnsi File OPTIONAL,
ef-nafkca File OPTIONAL,
ef-spni File OPTIONAL,
ef-pnni File OPTIONAL,
ef-ncp-ip File OPTIONAL,
ef-ufc File OPTIONAL,
ef-nasconfig File OPTIONAL,
ef-uicciari File OPTIONAL,
ef-pws File OPTIONAL,
ef-fdnuri File OPTIONAL,
ef-bdnuri File OPTIONAL,
ef-sdnuri File OPTIONAL,
ef-iwl File OPTIONAL,
ef-ips File OPTIONAL,
ef-ipd File OPTIONAL
}
PE-PHONEBOOK ::= SEQUENCE {
phonebook-header PEHeader,
templateID OBJECT IDENTIFIER,
df-phonebook File,
ef-pbr File OPTIONAL,
ef-ext1 File OPTIONAL,
ef-aas File OPTIONAL,
ef-gas File OPTIONAL,
ef-psc File OPTIONAL,
ef-cc File OPTIONAL,
ef-puid File OPTIONAL,
ef-iap File OPTIONAL,
ef-adn File OPTIONAL,
ef-pbc File OPTIONAL,
ef-anr File OPTIONAL,
ef-puri File OPTIONAL,
ef-email File OPTIONAL,
ef-sne File OPTIONAL,
ef-uid File OPTIONAL,
ef-grp File OPTIONAL,
ef-ccp1 File OPTIONAL
}
PE-GSM-ACCESS ::= SEQUENCE {
gsm-access-header PEHeader,
templateID OBJECT IDENTIFIER,
df-gsm-access File,
ef-kc File OPTIONAL,
ef-kcgprs File OPTIONAL,
ef-cpbcch File OPTIONAL,
ef-invscan File OPTIONAL
}
PE-ISIM ::= SEQUENCE {
isim-header PEHeader,
templateID OBJECT IDENTIFIER,
adf-isim File,
ef-impi File,
ef-impu File,
ef-domain File,
ef-ist File, /* The content of IST file shall be modified by the eUICC during profile installation according to the functionality supported by the eUICC platform i.e. in the case where a service is not supported (and not indicated as required) the related bit(s) will be set to zero */
ef-ad File OPTIONAL,
ef-arr File
}
PE-OPT-ISIM ::= SEQUENCE {
optisim-header PEHeader,
templateID OBJECT IDENTIFIER,
ef-pcscf File OPTIONAL,
ef-sms File OPTIONAL,
ef-smsp File OPTIONAL,
ef-smss File OPTIONAL,
ef-smsr File OPTIONAL,
ef-gbabp File OPTIONAL,
ef-gbanl File OPTIONAL,
ef-nafkca File OPTIONAL,
ef-uicciari File OPTIONAL
}
PE-CSIM ::= SEQUENCE {
csim-header PEHeader,
templateID OBJECT IDENTIFIER,
adf-csim File,
ef-arr File,
ef-call-count File,
ef-imsi-m File,
ef-imsi-t File,
ef-tmsi File,
ef-ah File,
ef-aop File,
ef-aloc File,
ef-cdmahome File,
ef-znregi File,
ef-snregi File,
ef-distregi File,
ef-accolc File,
ef-term File,
ef-acp File,
ef-prl File,
ef-ruimid File,
ef-csim-st File,
ef-spc File,
ef-otapaspc File,
ef-namlock File,
ef-ota File,
ef-sp File,
ef-esn-meid-me File,
ef-li File,
ef-usgind File,
ef-ad File,
ef-max-prl File,
ef-spcs File,
ef-mecrp File,
ef-home-tag File,
ef-group-tag File,
ef-specific-tag File,
ef-call-prompt File
}
PE-OPT-CSIM ::= SEQUENCE {
optcsim-header PEHeader,
templateID OBJECT IDENTIFIER,
ef-ssci File OPTIONAL,
ef-fdn File OPTIONAL,
ef-sms File OPTIONAL,
ef-smsp File OPTIONAL,
ef-smss File OPTIONAL,
ef-ssfc File OPTIONAL,
ef-spn File OPTIONAL,
ef-mdn File OPTIONAL,
ef-ecc File OPTIONAL,
ef-me3gpdopc File OPTIONAL,
ef-3gpdopm File OPTIONAL,
ef-sipcap File OPTIONAL,
ef-mipcap File OPTIONAL,
ef-sipupp File OPTIONAL,
ef-mipupp File OPTIONAL,
ef-sipsp File OPTIONAL,
ef-mipsp File OPTIONAL,
ef-sippapss File OPTIONAL,
ef-puzl File OPTIONAL,
ef-maxpuzl File OPTIONAL,
ef-hrpdcap File OPTIONAL,
ef-hrpdupp File OPTIONAL,
ef-csspr File OPTIONAL,
ef-atc File OPTIONAL,
ef-eprl File OPTIONAL,
ef-bcsmscfg File OPTIONAL,
ef-bcsmspref File OPTIONAL,
ef-bcsmstable File OPTIONAL,
ef-bcsmsp File OPTIONAL,
ef-bakpara File OPTIONAL,
ef-upbakpara File OPTIONAL,
ef-mmsn File OPTIONAL,
ef-ext8 File OPTIONAL,
ef-mmsicp File OPTIONAL,
ef-mmsup File OPTIONAL,
ef-mmsucp File OPTIONAL,
ef-auth-capability File OPTIONAL,
ef-3gcik File OPTIONAL,
ef-dck File OPTIONAL,
ef-gid1 File OPTIONAL,
ef-gid2 File OPTIONAL,
ef-cdmacnl File OPTIONAL,
ef-sf-euimid File OPTIONAL,
ef-est File OPTIONAL,
ef-hidden-key File OPTIONAL,
ef-lcsver File OPTIONAL,
ef-lcscp File OPTIONAL,
ef-sdn File OPTIONAL,
ef-ext2 File OPTIONAL,
ef-ext3 File OPTIONAL,
ef-ici File OPTIONAL,
ef-oci File OPTIONAL,
ef-ext5 File OPTIONAL,
ef-ccp2 File OPTIONAL,
ef-applabels File OPTIONAL,
ef-model File OPTIONAL,
ef-rc File OPTIONAL,
ef-smscap File OPTIONAL,
ef-mipflags File OPTIONAL,
ef-3gpduppext File OPTIONAL,
ef-ipv6cap File OPTIONAL,
ef-tcpconfig File OPTIONAL,
ef-dgc File OPTIONAL,
ef-wapbrowsercp File OPTIONAL,
ef-wapbrowserbm File OPTIONAL,
ef-mmsconfig File OPTIONAL,
ef-jdl File OPTIONAL
}
/* Create GenericFileManagement
*/
PE-GenericFileManagement ::= SEQUENCE {
gfm-header PEHeader,
fileManagementCMD SEQUENCE OF FileManagement
}
FileManagement ::= SEQUENCE OF CHOICE {
filePath [0] OCTET STRING, -- Use Temporary File ID for ADF
createFCP [APPLICATION 2] Fcp,
fillFileOffset UInt16,
fillFileContent [1] OCTET STRING
}
MappingParameter ::= SEQUENCE {
mappingOptions OCTET STRING (SIZE(1)),
mappingSource ApplicationIdentifier
}
AlgoParameter ::= SEQUENCE {
algorithmID INTEGER {
milenage(1),
tuak(2)
},
algorithmOptions OCTET STRING (SIZE(1)),
key OCTET STRING,
opc OCTET STRING, -- OPc for Milenage; TOPc for TUAK
-- rotationConstants only apply for Milenage; ignored in case of TUAK
rotationConstants OCTET STRING (SIZE (5)) DEFAULT '4000204060'H,
-- xoringConstants only apply for Milenage; ignored in case of TUAK
xoringConstants OCTET STRING (SIZE (80)) DEFAULT '0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000020000000000000000000000000000000400000000000000000000000000000008'H,
authCounterMax OCTET STRING (SIZE(3)) OPTIONAL
}
PE-AKAParameter ::= SEQUENCE {
aka-header PEHeader,
algoConfiguration CHOICE {
mappingParameter MappingParameter,
algoParameter AlgoParameter
},
sqnOptions OCTET STRING (SIZE(1)) DEFAULT '02'H,
sqnDelta OCTET STRING (SIZE(6)) DEFAULT '000010000000'H,
sqnAgeLimit OCTET STRING (SIZE(6)) DEFAULT '000010000000'H,
-- Sequence numbers do not include the index (IND)
sqnInit SEQUENCE (SIZE (32)) OF OCTET STRING (SIZE (6)) DEFAULT {
/* Index 0 */'000000000000'H, '000000000000'H, '000000000000'H, '000000000000'H,'000000000000'H, '000000000000'H, '000000000000'H, '000000000000'H, '000000000000'H, '000000000000'H, '000000000000'H, '000000000000'H,'000000000000'H, '000000000000'H, '000000000000'H, '000000000000'H, '000000000000'H, '000000000000'H, '000000000000'H, '000000000000'H,'000000000000'H, '000000000000'H, '000000000000'H, '000000000000'H, '000000000000'H, '000000000000'H, '000000000000'H, '000000000000'H,'000000000000'H, '000000000000'H, '000000000000'H,
/* Index 31 */'000000000000'H }
}
PE-CDMAParameter ::= SEQUENCE {
cdma-header PEHeader,
/* A-Key for CAVE Authentication */
authenticationKey OCTET STRING (SIZE(8)),
/*
Optional value for ssd
Bytes 1..8: value if shared secret data A
Bytes 9..16: value if shared secret data B
*/
ssd OCTET STRING (SIZE (16)) OPTIONAL,
/*
Shared Secrets for HRPD access authentication
Includes the shared secret data. Length is variable
*/
hrpdAccessAuthenticationData OCTET STRING (SIZE (8..255)) OPTIONAL,
/*
Parameters for simple IP authentication
The shared secrets will be provided as a list of TLVs
For each NAI-entry-index which will be provided within CHAP command the
shared secret will be coded as follows:
Tag: NAI-entry-index, length, Shared secret
up to 16 shared secret values may be provided
*/
simpleIPAuthenticationData OCTET STRING (SIZE (10..4112)) OPTIONAL,
/*
Parameters mobile IP authentication
The shared secrets will be provided as a list of Tag Value pairs
For each NAI-entry-index which will be provided within MN-HA command the
necessary values will be coded as follows:
Tag: NAI-entry-index, length of MN-AAA-SS, MN-AAA-SS value, length of
MN-HA-SS, MN-HA-SS value
up to 16 entries may be provided
*/
mobileIPAuthenticationData OCTET STRING (SIZE (19..8208)) OPTIONAL
}
PINKeyReferenceValue ::= INTEGER {
pinAppl1(1), -- PIN global of App 1
pinAppl2(2), -- PIN global of App 2
pinAppl3(3), -- PIN global of App 3
pinAppl4(4), -- PIN global of App 4
pinAppl5(5), -- PIN global of App 5
pinAppl6(6), -- PIN global of App 6
pinAppl7(7), -- PIN global of App 7
pinAppl8(8), -- PIN global of App 8
adm1(10), -- Administrative Key 1
adm2(11), -- Administrative Key 2
adm3(12), -- Administrative Key 3
adm4(13), -- Administrative Key 4
adm5(14), -- Administrative Key 5
secondPINAppl1(129), -- PIN local of App 1
secondPINAppl2(130), -- PIN local of App 2
secondPINAppl3(131), -- PIN local of App 3
secondPINAppl4(132), -- PIN local of App 4
secondPINAppl5(133), -- PIN local of App 5
secondPINAppl6(134), -- PIN local of App 6
secondPINAppl7(135), -- PIN local of App 7
secondPINAppl8(136), -- PIN local of App 8
adm6(138), -- Administrative Key 6
adm7(139), -- Administrative Key 7
adm8(140), -- Administrative Key 8
adm9(141), -- Administrative Key 9
adm10(142) -- Administrative Key 10
}
PINConfiguration ::= SEQUENCE {
keyReference PINKeyReferenceValue,
pinValue OCTET STRING (SIZE (8)),
unblockingPINReference PUKKeyReferenceValue OPTIONAL,
pinAttributes UInt8 DEFAULT 7,
maxNumOfAttemps-retryNumLeft UInt8 DEFAULT 51
/* maxNumOfAttemps-retryNumLeft is encoded as follows: max Number of Attempts is encoded in the high nibble of this value (Bits b8 to b5) and the Number of retry left is encoded in the low nibble of this value (Bits b4 to b1)*/
}
PE-PINCodes ::= SEQUENCE {
pin-Header PEHeader,
pinCodes CHOICE {
pinconfig SEQUENCE (SIZE (1..26))OF PINConfiguration,
filePath OCTET STRING /* temporary File ID for ADF, coding according to section 8.3.5 */
}
/* PIN can be either defined in the current context or shared
with another DF/ADF
Up to 26 PIN could be defined according to TS 102 221 [102 221]
*/
}
PUKKeyReferenceValue ::= INTEGER {
pukAppl1(1), -- PUK global of App 1
pukAppl2(2), -- PUK global of App 2
pukAppl3(3), -- PUK global of App 3
pukAppl4(4), -- PUK global of App 4
pukAppl5(5), -- PUK global of App 5
pukAppl6(6), -- PUK global of App 6
pukAppl7(7), -- PUK global of App 7
pukAppl8(8), -- PUK global of App 8
secondPUKAppl1(129), -- PUK local of App 1
secondPUKAppl2(130), -- PUK local of App 2
secondPUKAppl3(131), -- PUK local of App 3
secondPUKAppl4(132), -- PUK local of App 4
secondPUKAppl5(133), -- PUK local of App 5
secondPUKAppl6(134), -- PUK local of App 6
secondPUKAppl7(135), -- PUK local of App 7
secondPUKAppl8(136) -- PUK local of App 8
}
PUKConfiguration ::= SEQUENCE {
keyReference PUKKeyReferenceValue,
pukValue OCTET STRING (SIZE (8)),
maxNumOfAttemps-retryNumLeft UInt8 DEFAULT 170
/* maxNumOfAttemps-retryNumLeft is encoded as follows: max Number of Attempts is encoded in the high nibble of this value (Bits b8 to b5) and the Number of retry left is encoded in the low nibble of this value (Bits b4 to b1)*/
}
PE-PUKCodes ::= SEQUENCE {
puk-Header PEHeader,
pukCodes SEQUENCE (SIZE (1..16))OF PUKConfiguration
}
PE-SecurityDomain ::= SEQUENCE {
sd-Header PEHeader,
instance ApplicationInstance, -- see section 8.7.3
keyList SEQUENCE OF KeyObject OPTIONAL, -- see section 8.6.3
sdPersoData SEQUENCE OF OCTET STRING OPTIONAL -- see section 8.6.4
}
KeyObject::= SEQUENCE {
keyUsageQualifier [21] OCTET STRING (SIZE (1)),
keyAccess [22] OCTET STRING (SIZE (1)) DEFAULT '00'H,
keyIdentifier [2] OCTET STRING (SIZE (1)),
keyVersionNumber [3] OCTET STRING (SIZE (1)),
keyCounterValue [5] OCTET STRING OPTIONAL,
keyCompontents SEQUENCE OF SEQUENCE {
keyType [0] OCTET STRING,
keyData [6] OCTET STRING,
macLength[7] UInt8 DEFAULT 8
}
}
PE-Application ::= SEQUENCE {
app-Header PEHeader,
loadBlock ApplicationLoadPackage OPTIONAL,
instanceList SEQUENCE OF ApplicationInstance OPTIONAL
}
ApplicationLoadPackage ::= SEQUENCE {
loadPackageAID [APPLICATION 15] ApplicationIdentifier,
securityDomainAID [APPLICATION 15] ApplicationIdentifier OPTIONAL,
nonVolatileCodeLimitC6 [PRIVATE 6] OCTET STRING OPTIONAL,
volatileDataLimitC7 [PRIVATE 7] OCTET STRING OPTIONAL,
nonVolatileDataLimitC8 [PRIVATE 8] OCTET STRING OPTIONAL,
hashValue [PRIVATE 1] OCTET STRING OPTIONAL,
loadBlockObject [PRIVATE 4] OCTET STRING
}
ApplicationInstance ::= SEQUENCE {
applicationLoadPackageAID [APPLICATION 15] ApplicationIdentifier,
classAID [APPLICATION 15] ApplicationIdentifier,
instanceAID [APPLICATION 15] ApplicationIdentifier,
extraditeSecurityDomainAID [APPLICATION 15] ApplicationIdentifier OPTIONAL,
applicationPrivileges [2] OCTET STRING,
lifeCycleState [3] OCTET STRING (SIZE(1)) DEFAULT '07'H,
/* Coding according to GP Life Cycle State. */
applicationSpecificParametersC9 [PRIVATE 9] OCTET STRING,
systemSpecificParameters [PRIVATE 15] ApplicationSystemParameters OPTIONAL,
applicationParameters [PRIVATE 10] UICCApplicationParameters OPTIONAL,
processData SEQUENCE OF OCTET STRING OPTIONAL
}
ApplicationSystemParameters ::= SEQUENCE{
volatileMemoryQuotaC7 [PRIVATE 7] OCTET STRING OPTIONAL,
nonVolatileMemoryQuotaC8 [PRIVATE 8] OCTET STRING OPTIONAL,
globalServiceParameters [PRIVATE 11] OCTET STRING OPTIONAL,
implicitSelectionParameter [PRIVATE 15] OCTET STRING OPTIONAL,
volatileReservedMemory [PRIVATE 23] OCTET STRING OPTIONAL,
nonVolatileReservedMemory [PRIVATE 24] OCTET STRING OPTIONAL,
ts102226SIMFileAccessToolkitParameter [PRIVATE 10] OCTET STRING OPTIONAL,
ts102226AdditionalContactlessParameters [0] TS102226AdditionalContactlessParameters OPTIONAL,
contactlessProtocolParameters [PRIVATE 25] OCTET STRING OPTIONAL, /* Coded according to Contactless Protocol Parameters Structure as defined in GP Amd. C */
userInteractionContactlessParameters [PRIVATE 26] OCTET STRING OPTIONAL /* Coded according to User Interaction Parameters Structure as defined in GP Amd. C */
}
UICCApplicationParameters ::= SEQUENCE {
uiccToolkitApplicationSpecificParametersField [0] OCTET STRING OPTIONAL,
uiccAccessApplicationSpecificParametersField [1] OCTET STRING OPTIONAL,
uiccAdministrativeAccessApplicationSpecificParametersField [2] OCTET STRING OPTIONAL
}
TS102226AdditionalContactlessParameters ::= SEQUENCE{
protocolParameterData OCTET STRING /* Parameters for contactless applications encoded according to TS 102 226 */
}
PE-RFM ::= SEQUENCE {
rfm-header [0] PEHeader,
/* instanceAID
AID of the RFM instance
*/
instanceAID [APPLICATION 15] ApplicationIdentifier,
/* securityDomainAID to which the RFM instance is associated
*/
securityDomainAID [APPLICATION 15] ApplicationIdentifier OPTIONAL,
tarList [0] SEQUENCE OF OCTET STRING (SIZE(3)) OPTIONAL,
minimumSecurityLevel [1] OCTET STRING (SIZE (1)),
uiccAccessDomain OCTET STRING,
uiccAdminAccessDomain OCTET STRING,
/*
If the following parameter is available the respective ADF will be the directory selected by default within an RFM script. In case it is not available the MF will be the default selection.
*/
adfRFMAccess ADFRFMAccess OPTIONAL
}
ADFRFMAccess ::= SEQUENCE {
adfAID ApplicationIdentifier,
adfAccessDomain OCTET STRING,
adfAdminAccessDomain OCTET STRING
}
PE-NonStandard ::= SEQUENCE {
nonStandard-header PEHeader,
issuerID OBJECT IDENTIFIER,
content OCTET STRING
}
PE-End ::= SEQUENCE {
end-header PEHeader
}
PEStatus ::= SEQUENCE {
status INTEGER {
ok(0), pe-not-supported(1), memory-failure(2),bad-values(3),
not-enough-memory(4),invalid-request-format(5), invalid-parameter(6),
runtime-not-supported (7), lib-not-supported (8),
template-not-supported (9), feature-not-supported (10),
unsupported-profile-version(31)
/* ISO 7816 standard status values apply in the range of [24576...28671]
and [36864…40959] for reporting status values '6xxx'H and '9xxx'H
proprietary values apply in the range [40960...65535]
*/
},
identification UInt15 OPTIONAL,
-- Identification number of the PE triggering the error
additional-information UInt8 OPTIONAL
-- Additional information related to the status code
}
EUICCResponse ::= SEQUENCE {
peStatus SEQUENCE OF PEStatus,
profileInstallationAborted NULL OPTIONAL,
statusMessage UTF8String OPTIONAL
}
/*
Test Profile
*/
headerVal ProfileElement ::= header : {
major-version 2,
minor-version 0,
profileType "SIMalliance Sample Profile",
iccid '89019990001234567893'H,
eUICC-Mandatory-services {
usim NULL,
milenage NULL,
javacard NULL
},
eUICC-Mandatory-GFSTEList {
{ 2 23 143 1 2 1 },
{ 2 23 143 1 2 4 }
}
}
-- Creation of the MF file system using the template
mfVal ProfileElement ::= mf : {
mf-header {
mandated NULL,
identification 1
},
templateID { 2 23 143 1 2 1 },
mf {
fileDescriptor : {
pinStatusTemplateDO '01020A'H
}
},
ef-pl {
fileDescriptor : {
-- EF_PL modified to use Access Rule 15 within EF_ARR
securityAttributesReferenced '0F'H
}
},
ef-iccid {
-- swapped ICCID: 98109909002143658739
fillFileContent : '98109909002143658739'H
},
ef-dir {
fileDescriptor : {
-- Shareable Linear Fixed File
-- 4 records, record length: 38 bytes
fileDescriptor '42210026'H,
efFileSize '0098'H
},
-- USIM AID: A0000000871002FF33FF018900000100
fillFileContent : '61184F10A0000000871002FF33FF01890000010050045553494D'H
},
ef-arr {
fileDescriptor : {
-- Shareable Linear Fixed File
-- 15 records, record length: 37 bytes
-- ARR created with content recommended in Annex A (Section 9.9) plus one additional record for use with EF_PL
fileDescriptor '42210025'H,
efFileSize '01EF'H
},
fillFileContent : '8001019000800102A406830101950108800158A40683010A950108'H,
fillFileOffset : 10,
fillFileContent : '800101A40683010195010880015AA40683010A950108'H,
fillFileOffset : 15,
fillFileContent : '80015BA40683010A950108'H,
fillFileOffset : 26,
fillFileContent : '800101900080015A9700'H,
fillFileOffset : 27,
fillFileContent : '800103A406830101950108800158A40683010A950108'H,
fillFileOffset : 15,
fillFileContent : '800111A40683010195010880014AA40683010A950108'H,
fillFileOffset : 15,
fillFileContent : '800103A406830101950108800158A40683010A950108840132A406830101950108'H,
fillFileOffset : 4,
fillFileContent : '800101A406830101950108800102A406830181950108800158A40683010A950108'H,
fillFileOffset : 4,
fillFileContent : '800101900080011AA406830101950108800140A40683010A950108'H,
fillFileOffset : 10,
fillFileContent : '800101900080015AA40683010A950108'H,
fillFileOffset : 21,
fillFileContent : '8001019000800118A40683010A9501088001429700'H,
fillFileOffset : 14,
fillFileContent : '800101A40683010195010880015A9700'H,
fillFileOffset : 21,
fillFileContent : '800113A406830101950108800148A40683010A950108'H,
fillFileOffset : 13,
fillFileContent : '80015EA40683010A950108'H,
fillFileOffset : 26,
-- Rule 15: [Read: Always][Update/CreateEF: PIN Appl 1|PIN Appl 2][Deactivate, Activate, DeleteSelf: ADM1]
fillFileContent : '8001019000800102A010A406830101950108A406830102950108800158A40683010A950108'H
}
}
-- Creation of the MF using Generic File Management (Alternative to usage of the template. A real Profile Package shall not use both)!!!
altMFVal ProfileElement ::= genericFileManagement : {
gfm-header {
mandated NULL,
identification 1
},
fileManagementCMD {
{
-- create MF
createFCP : {
fileDescriptor '7821'H,
fileID '3F00'H,
securityAttributesReferenced '0E'H,
pinStatusTemplateDO '01020A'H
},
-- create PL
createFCP : {
fileDescriptor '4121'H,
fileID '2F05'H,
securityAttributesReferenced '0F'H,
efFileSize '03'H,
shortEFID '28'H
},
-- create ICCID
createFCP : {
fileDescriptor '4121'H,
fileID '2FE2'H,
securityAttributesReferenced '0B'H,
efFileSize '0A'H
},
-- swapped ICCID: 98109909002143658739
fillFileContent : '98109909002143658739'H,
-- create DIR
-- Shareable Linear Fixed File
-- 4 records, record length: 38 bytes
createFCP : {
fileDescriptor '42210026'H,
fileID '2F00'H,
securityAttributesReferenced '0A'H,
efFileSize '0098'H,
shortEFID 'F0'H
},
-- USIM AID: A0000000871002FF33FF018900000100
fillFileContent : '61184F10A0000000871002FF33FF01890000010050045553494D'H,
-- create ARR
createFCP : {
-- Shareable Linear Fixed File
-- 15 records, record length: 37 bytes
fileDescriptor '42210025'H,
fileID '2F06'H,
securityAttributesReferenced '0A'H,
efFileSize '01EF'H
},
fillFileContent : '8001019000800102A406830101950108800158A40683010A950108'H,
fillFileOffset : 10,
fillFileContent : '800101A40683010195010880015AA40683010A950108'H,
fillFileOffset : 15,
fillFileContent : '80015BA40683010A950108'H,
fillFileOffset : 26,
fillFileContent : '800101900080015A9700'H,
fillFileOffset : 27,
fillFileContent : '800103A406830101950108800158A40683010A950108'H,
fillFileOffset : 15,
fillFileContent : '800111A40683010195010880014AA40683010A950108'H,
fillFileOffset : 15,
fillFileContent : '800103A406830101950108800158A40683010A950108840132A406830101950108'H,
fillFileOffset : 4,
fillFileContent : '800101A406830101950108800102A406830181950108800158A40683010A950108'H,
fillFileOffset : 4,
fillFileContent : '800101900080011AA406830101950108800140A40683010A950108'H,
fillFileOffset : 10,
fillFileContent : '800101900080015AA40683010A950108'H,
fillFileOffset : 21,
fillFileContent : '8001019000800118A40683010A9501088001429700'H,
fillFileOffset : 14,
fillFileContent : '800101A40683010195010880015A9700'H,
fillFileOffset : 21,
fillFileContent : '800113A406830101950108800148A40683010A950108'H,
fillFileOffset : 13,
fillFileContent : '80015EA40683010A950108'H,
fillFileOffset : 26,
-- Rule 15: [Read: Always][Update/CreateEF: PIN Appl 1|PIN Appl 2][Deactivate, Activate, DeleteSelf: ADM1]
fillFileContent : '8001019000800102A010A406830101950108A406830102950108800158A40683010A950108'H,
-- create UMPC
createFCP : {
fileDescriptor '4121'H,
fileID '2F08'H,
securityAttributesReferenced '0A'H,
efFileSize '05'H
}
}
}
}
pukVal ProfileElement ::= pukCodes : {
puk-Header {
mandated NULL,
identification 2
},
pukCodes {
{
keyReference pukAppl1,
-- PUK = 00000000
pukValue '3030303030303030'H,
-- maxNumOfAttemps:9, retryNumLeft:9
maxNumOfAttemps-retryNumLeft 153
},
{
keyReference pukAppl2,
-- PUK = 12345678
pukValue '3132333435363738'H
},
{
keyReference secondPUKAppl1,
-- PUK = 12345678
pukValue '3132333435363738'H,
-- maxNumOfAttemps:8, retryNumLeft:8
maxNumOfAttemps-retryNumLeft 136
}
}
}
pinVal ProfileElement ::= pinCodes : {
pin-Header {
mandated NULL,
identification 3
},
pinCodes pinconfig : {
{
keyReference pinAppl1,
-- PIN = 1234
pinValue '31323334FFFFFFFF'H,
unblockingPINReference pukAppl1
},
{
keyReference pinAppl2,
-- PIN = 0000
pinValue '30303030FFFFFFFF'H,
unblockingPINReference pukAppl2
},
{
keyReference adm1,
-- PIN = 5678
pinValue '35363738FFFFFFFF'H,
pinAttributes 1
}
}
}
-- USIM file system creation using template
usimValue ProfileElement ::= usim : {
usim-header {
mandated NULL,
identification 4
},
templateID { 2 23 143 1 2 4 },
adf-usim {
fileDescriptor : {
fileID '7FF1'H,
dfName 'A0000000871002FF33FF018900000100'H,
pinStatusTemplateDO '01810A'H
}
},
ef-imsi {
-- numerical format: 234101943787656
fillFileContent : '082943019134876765'H
},
ef-arr {
fileDescriptor : {
linkPath '2F06'H
}
},
ef-ust {
-- Service Dialling Numbers, Short Message Storage
fillFileContent : '0A2E178CE73204000000000000'H
},
ef-spn {
-- ASCII format: "SIMalliance"
fillFileContent : '0253494D616C6C69616E6365'H
},
ef-est {
-- Services deactivated
fillFileContent : '00'H
},
ef-acc {
-- Access class 4
fillFileContent : '0040'H
},
ef-ecc {
-- Emergency Call Code 911
fillFileContent : '19F1FF01'H
}
}
-- Creation of the USIM File system using Generic File Management (Alternative to usage of the template. A real Profile Package shall not use both)!!!
altUsimValue ProfileElement ::= genericFileManagement : {
gfm-header {
mandated NULL,
identification 4
},
fileManagementCMD {
{
-- ADF_USIM
createFCP : {
fileDescriptor '7821'H,
fileID '7FF1'H,
dfName 'A0000000871002FF33FF018900000100'H,
securityAttributesReferenced '0A'H,
pinStatusTemplateDO '01810A'H
},
-- EF_IMSI
createFCP : {
fileDescriptor '4121'H,
fileID '6F07'H,
securityAttributesReferenced '02'H,
efFileSize '09'H,
shortEFID '38'H
},
-- provide content for EF_IMSI
-- numerical format: 234101943787656
fillFileContent : '082943019134876765'H,
-- EF_ARR Link
createFCP : {
fileID '6F06'H,
securityAttributesReferenced '0A'H,
linkPath '2F06'H
},
-- EF_Keys
createFCP : {
fileDescriptor '4121'H,
fileID '6F08'H,
securityAttributesReferenced '05'H,
efFileSize '21'H,
shortEFID '40'H,
proprietaryEFInfo {
specialFileInformation '80'H,
fillPattern '07FF'H
}
},
-- EF_KeysPS
createFCP : {
fileDescriptor '4121'H,
fileID '6F09'H,
securityAttributesReferenced '05'H,
efFileSize '21'H,
shortEFID '40'H,
proprietaryEFInfo {
specialFileInformation '80'H,
fillPattern '07FF'H
}
},
-- EF_HPPLMN
createFCP : {
fileDescriptor '4121'H,
fileID '6F31'H,
securityAttributesReferenced '02'H,
efFileSize '01'H,
shortEFID '90'H,
proprietaryEFInfo {
-- specialFileInformation with Default value
specialFileInformation '00'H,
fillPattern '0A'H
}
},
-- EF_UST
createFCP : {
fileDescriptor '4121'H,
fileID '6F38'H,
securityAttributesReferenced '02'H,
efFileSize '0E'H,
shortEFID '20'H
},
-- provide UST settings
-- Service Dialling Numbers, Short Message Storage…
fillFileContent : '0A2E178CE73204000000000000'H,
-- EF_FDN
createFCP : {
fileDescriptor '4221001A'H,
fileID '6F3B'H,
securityAttributesReferenced '08'H,
efFileSize '0208'H,
proprietaryEFInfo {
fillPattern '00FF'H
}
},
-- EF_SMS
createFCP : {
fileDescriptor '422100B0'H,
fileID '6F3C'H,
securityAttributesReferenced '00'H,
efFileSize '06E0'H,
proprietaryEFInfo {
fillPattern '00FF'H
}
},
-- EF_SMSP
createFCP : {
fileDescriptor '42210026'H,
fileID '6F42'H,
securityAttributesReferenced '05'H,
efFileSize '26'H
},
-- EF_SMSS
createFCP : {
fileDescriptor '4121'H,
fileID '6F43'H,
securityAttributesReferenced '05'H,
efFileSize '02'H,
proprietaryEFInfo {
specialFileInformation '80'H
}
},
-- EF_SPN
createFCP : {
fileDescriptor '4121'H,
fileID '6F46'H,
-- provide the full access rule including EF_ARR File ID
securityAttributesReferenced '6F060A'H,
efFileSize '11'H
},
-- ASCII format: "SIMalliance"
fillFileContent : '0253494D616C6C69616E6365'H,
-- EF_EST
createFCP : {
fileDescriptor '4121'H,
fileID '6F56'H,
securityAttributesReferenced '08'H,
efFileSize '01'H,
shortEFID '28'H
},
-- EST Services deactivated
fillFileContent : '00'H,
-- EF_START-HFN
createFCP : {
fileDescriptor '4121'H,
fileID '6F5B'H,
securityAttributesReferenced '05'H,
efFileSize '06'H,
shortEFID '78'H,
proprietaryEFInfo {
specialFileInformation '80'H,
-- ues of repeat pattern to initialize the content
repeatPattern 'F00000'H
}
},
-- EF_THRESHOLD
createFCP : {
fileDescriptor '4121'H,
fileID '6F5C'H,
securityAttributesReferenced '02'H,
efFileSize '03'H,
shortEFID '80'H,
proprietaryEFInfo {
specialFileInformation '80'H
}
},
-- EF_PSLOCI
createFCP : {
fileDescriptor '4121'H,
fileID '6F73'H,
securityAttributesReferenced '05'H,
efFileSize '0E'H,
shortEFID '60'H,
proprietaryEFInfo {
specialFileInformation '80'H
}
},
-- Initialize PSLOCI
fillFileOffset : 7,
fillFileContent : '00F1100000FF01'H,
-- EF_ACC
createFCP : {
fileDescriptor '4121'H,
fileID '6F78'H,
securityAttributesReferenced '02'H,
efFileSize '02'H,
shortEFID '30'H
},
-- Provide Content for ACC
-- Access class 4
fillFileContent : '0040'H,
-- EF_FPLMN
createFCP : {
fileDescriptor '4121'H,
fileID '6F7B'H,
securityAttributesReferenced '05'H,
efFileSize '0C'H,
shortEFID '68'H
},
-- EF_LOCI
createFCP : {
fileDescriptor '4121'H,
fileID '6F7E'H,
securityAttributesReferenced '05'H,
efFileSize '0B'H,
shortEFID '58'H,
proprietaryEFInfo {
specialFileInformation '80'H
}
},
-- Initialize LOCI
fillFileOffset : 7,
fillFileContent : '0000FF01'H,
-- EF_AD
createFCP : {
fileDescriptor '4121'H,
fileID '6FAD'H,
securityAttributesReferenced '0A'H,
efFileSize '04'H,
shortEFID '18'H,
proprietaryEFInfo {
-- use of fillPattern in Combination with fillFileContent (not efficient in this example)
fillPattern '00'H
}
},
-- Initialize AD
fillFileOffset : 3,
fillFileContent : '02'H,
-- EF_ECC
createFCP : {
fileDescriptor '42210004'H,
fileID '6FB7'H,
securityAttributesReferenced '0A'H,
efFileSize '04'H,
shortEFID '08'H
},
-- Initialize ECC
-- Emergency Call Code 911
fillFileContent : '19F1FF01'H,
-- EF_NETPAR
createFCP : {
fileDescriptor '4121'H,
fileID '6FC4'H,
securityAttributesReferenced '05'H,
efFileSize '80'H,
proprietaryEFInfo {
specialFileInformation '80'H
}
},
-- EF_EPSLOCI
createFCP : {
fileDescriptor '4121'H,
fileID '6FE3'H,
securityAttributesReferenced '05'H,
efFileSize '12'H,
shortEFID 'F0'H,
proprietaryEFInfo {
specialFileInformation '80'H
}
},
-- Initialize EF_EPSLOCI
fillFileOffset : 15,
fillFileContent : '000001'H,
-- EF_EPSNSC
createFCP : {
fileDescriptor '4121'H,
fileID '6FE4'H,
securityAttributesReferenced '05'H,
efFileSize '50'H,
shortEFID 'C0'H,
proprietaryEFInfo {
specialFileInformation '80'H
}
}
}
}
}
usimPin ProfileElement ::= pinCodes : { -- Local USIM PIN
pin-Header {
mandated NULL,
identification 5
},
pinCodes pinconfig : {
{
keyReference secondPINAppl1,
-- PIN = 1234
pinValue '31323334FFFFFFFF'H,
unblockingPINReference secondPUKAppl1,
-- PIN is Enabled
pinAttributes 1,
-- maxNumOfAttemps:2, retryNumLeft:2
maxNumOfAttemps-retryNumLeft 34
}
}
}
akaMilenage ProfileElement ::= akaParameter : {
aka-header {
mandated NULL,
identification 6
},
algoConfiguration algoParameter : {
algorithmID milenage,
algorithmOptions '01'H, -- RES and MAC 64 bits, CK and IK 128 bits
key '000102030405060708090A0B0C0D0E0F'H,
opc '0102030405060708090A0B0C0D0E0F00'H,
-- rotationConstants uses default: '4000204060'H,
-- xoringConstants uses default: '00000000000000000000000000000001000000000000000200000000000000040000000000000008'H,
authCounterMax '010203'H
}
-- sqnOptions uses default: '02'H, i.e. Anonymity key used, SQN wrap around not allowed
-- sqnDelta uses default: '000010000000'H
-- sqnAgeLimit uses default: '000010000000'H
-- sqnInit: uses default: all bytes zero
}
mnoSdValue ProfileElement ::= securityDomain : {
sd-Header {
mandated NULL,
identification 7
},
instance {
applicationLoadPackageAID 'A0000001515350'H,
classAID 'A000000151535041'H,
instanceAID 'A000000151000000'H,
applicationPrivileges '82FC80'H,
-- Secured
lifeCycleState '0F'H,
-- SCP80 supported
applicationSpecificParametersC9 '81028000'H,
-- other parameters may be necessary
applicationParameters {
-- TAR: B20100, MSL: 12
uiccToolkitApplicationSpecificParametersField
'0100000100000002011203B2010000'H
}
},
keyList {
{
-- C-ENC + R-ENC
keyUsageQualifier '38'H,
-- may be used by SD and application
keyAccess '00'H,
-- ENC key
keyIdentifier '01'H,
keyVersionNumber '01'H,
keyCompontents {
{
-- DES mode implicitly known (as an example)
keyType '80'H,
-- This value may be freely changed
keyData '112233445566778899AABBCCDDEEFF10'H
}
}
},
{
-- C-MAC + R-MAC
keyUsageQualifier '34'H,
-- may be used by SD and application
keyAccess '00'H,
-- MAC key
keyIdentifier '02'H,
keyVersionNumber '01'H,
keyCompontents {
{
-- DES mode implicitly known(as an example)
keyType '80'H,
-- This value may be freely changed
keyData '112233445566778899AABBCCDDEEFF10'H
}
}
},
{
-- C-DEK + R-DEK
keyUsageQualifier 'C8'H,
-- may be used by SD and application
keyAccess '00'H,
-- data ENC key
keyIdentifier '03'H,
keyVersionNumber '01'H,
keyCompontents {
{
-- DES mode implicitly known (as an example)
keyType '80'H,
-- This value may be freely changed
keyData '112233445566778899AABBCCDDEEFF10'H
}
}
}
}
}
ssdValue ProfileElement ::= securityDomain : {
sd-Header {
mandated NULL,
identification 8
},
instance {
applicationLoadPackageAID 'A0000001515350'H,
classAID 'A000000151535041'H,
instanceAID 'A00000055910100102736456616C7565'H,
-- by default extradited under MNO extraditeSecurityDomainAID 'A000000151000000'H
-- Security Domain + Trusted Path
applicationPrivileges '808000'H,
-- Personalized
lifeCycleState '0F'H,
-- SCP80 supported
applicationSpecificParametersC9 '81028000'H,
applicationParameters {
-- TAR: 6C7565, MSL: 12
uiccToolkitApplicationSpecificParametersField
'01000001000000020112036C756500'H
}
},
keyList {
{
-- C-ENC + R-ENC
keyUsageQualifier '38'H,
-- may be used by SD and application
keyAccess '00'H,
-- ENC key
keyIdentifier '01'H,
keyVersionNumber '01'H,
keyCompontents {
{
-- DES mode implicitly known (as an example)
keyType '80'H,
-- This value may be freely changed
keyData '88112233445566778811223344556677'H
}
}
},
{
-- C-MAC + R-MAC
keyUsageQualifier '34'H,
-- keyAccess '00'H, may be used by SD and application
-- MAC key
keyIdentifier '02'H,
keyVersionNumber '01'H,
keyCompontents {
{
-- DES mode implicitly known (as an example)
keyType '80'H,
-- This value may be freely changed
keyData '88112233445566778811223344556677'H
}
}
},
{
-- C-DEK + R-DEK
keyUsageQualifier 'C8'H,
-- keyAccess '00'H, may be used by SD and application
-- data ENC key
keyIdentifier '03'H,
keyVersionNumber '01'H,
keyCompontents {
{
-- DES mode implicitly known (as an example)
keyType '80'H,
-- This value may be freely changed
keyData '88112233445566778811223344556677'H
}
}
}
}
}
applet1 ProfileElement ::= application : {
app-Header {
mandated NULL,
identification 9
},
loadBlock {
loadPackageAID 'A000000559101001'H,
loadBlockObject '01002EDECAFFED020204000108A0000005591010011B636F6D2F67736D612F65756963632F746573742F6170706C657431020021002E0021000F003B002A00210066000A000E0000008A040F00000000000004010004003B04030107A0000000620101000110A0000000090005FFFFFFFF8912000000010110A0000000871005FFFFFFFF8913200000000107A000000062000103000F010BA0000005591010011122330008060021000044800300FF00050400000033FFFF0030004081070082000080020081080108070066000110188C00007A04328F00013D8C00022E181D252904160461081B8B0003700C1B181D044116048B00041B8C00057A00207A02301E046B071967041877017702211D7500160001000200098D00062D1A048E0200071770027A02108D0008058E020009007A08000A0000000000000000000005002A000A06800300010002000600000103800301038003020600005A06810F0001810400068110000181090009000E0000000A0506040E0C04200709050B008A010001000204000000068107820080028108008100010016000500000000010900080018002600000000070100300023000100000000050100330027000B0000000008010040002E001800000000FF02005A0016000A00000000000A0016FFFF0016001600180016001BFFFF001FFFFF011004B4310568104005681090066800A10B6800636800200241'H
},
instanceList {
{
applicationLoadPackageAID 'A000000559101001'H,
classAID 'A000000559101001112233'H,
instanceAID 'A00000055910100111223301'H,
applicationPrivileges '000000'H,
applicationSpecificParametersC9 '00'H,
applicationParameters {
uiccToolkitApplicationSpecificParametersField
-- TAR: 112233
'0100000000000311223300'H
}
}
}
}
applet2 ProfileElement ::= application : {
app-Header {
identification 10
},
loadBlock {
loadPackageAID 'A000000559101003'H,
loadBlockObject '01002EDECAFFED020204000108A0000005591010031B636F6D2F67736D612F65756963632F746573742F6170706C657433020021002E0021000F00150016000E002F000A00090000004301F400000000000002010004001502030107A0000000620101000107A000000062000103000F010BA000000559101003445566000806000E000000800300FF0007010000002C07002F000110188C00007A04328F00013D8C00022E181D252904160461081B8B0003700C1B181D044116048B00047A00207A08000A0000000000000000000005001600050680030001000200060000010380030103800302090009000000050506040E0C0B00430100010002000000000300810001000C00050000000001090008000E0022000000000701002C00110001000000000005000CFFFF000C000C000E011004B431066800A1'H
},
instanceList {
{
applicationLoadPackageAID 'A000000559101003'H,
classAID 'A000000559101003445566'H,
instanceAID 'A00000055910100344556601'H,
extraditeSecurityDomainAID 'A00000055910100102736456616C7565'H,
applicationPrivileges '000000'H,
applicationSpecificParametersC9 '00'H
}
}
}
rfmUicc ProfileElement ::= rfm : {
rfm-header {
identification 11
},
-- Instance AID
instanceAID 'A00000055910100001'H,
tarList {
'B00000'H
},
-- cryptographic checksum + counter higher
minimumSecurityLevel '12'H,
-- full access
uiccAccessDomain '00'H,
-- full access
uiccAdminAccessDomain '00'H
}
rfmUsim ProfileElement ::= rfm : {
rfm-header {
identification 12
},
-- Instance AID
instanceAID 'A00000055910100002'H,
tarList {
'B00020'H
},
-- cryptographic checksum + counter higher
minimumSecurityLevel '12'H,
-- full access
uiccAccessDomain '00'H,
-- full access
uiccAdminAccessDomain '00'H,
adfRFMAccess {
adfAID 'A0000000871002FF33FF018900000100'H,
-- UICC access condition: ADM1
adfAccessDomain '02000100'H,
-- UICC access condition: ADM1
adfAdminAccessDomain '02000100'H
}
}
endVal ProfileElement ::= end : {
end-header {
mandated NULL,
identification 99
}
}
-- Response message from the eUICC
respValue EUICCResponse ::= {
peStatus {
{
-- Library not supported in Application 2 loaded in the SSD
status lib-not-supported,
identification 10
}
}
}
END |
this is the converted scheme (using asnate1 ) I use in my code : # Auto-generated by asn1ate v.0.6.0 from PEDefinitions V2.0.asn
# (last modified on 2018-01-30 12:06:19.703745)
from pyasn1.type import univ, char, namedtype, namedval, tag, constraint, useful
class ApplicationIdentifier(univ.OctetString):
pass
ApplicationIdentifier.subtypeSpec = constraint.ValueSizeConstraint(5, 16)
class ADFRFMAccess(univ.Sequence):
pass
ADFRFMAccess.componentType = namedtype.NamedTypes(
namedtype.NamedType('adfAID', ApplicationIdentifier().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),
namedtype.NamedType('adfAccessDomain', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),
namedtype.NamedType('adfAdminAccessDomain', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2)))
)
class AlgoParameter(univ.Sequence):
pass
AlgoParameter.componentType = namedtype.NamedTypes(
namedtype.NamedType('algorithmID', univ.Integer(namedValues=namedval.NamedValues(('milenage', 1), ('tuak', 2))).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),
namedtype.NamedType('algorithmOptions', univ.OctetString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, 1)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),
namedtype.NamedType('key', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),
namedtype.NamedType('opc', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))),
namedtype.DefaultedNamedType('rotationConstants', univ.OctetString().subtype(subtypeSpec=constraint.ValueSizeConstraint(5, 5)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 4)).subtype(hexValue='4000204060')),
namedtype.DefaultedNamedType('xoringConstants', univ.OctetString().subtype(subtypeSpec=constraint.ValueSizeConstraint(80, 80)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 5)).subtype(hexValue='0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000020000000000000000000000000000000400000000000000000000000000000008')),
namedtype.OptionalNamedType('authCounterMax', univ.OctetString().subtype(subtypeSpec=constraint.ValueSizeConstraint(3, 3)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 6)))
)
class TS102226AdditionalContactlessParameters(univ.Sequence):
pass
TS102226AdditionalContactlessParameters.componentType = namedtype.NamedTypes(
namedtype.NamedType('protocolParameterData', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0)))
)
class ApplicationSystemParameters(univ.Sequence):
pass
ApplicationSystemParameters.componentType = namedtype.NamedTypes(
namedtype.OptionalNamedType('volatileMemoryQuotaC7', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassPrivate, tag.tagFormatSimple, 7))),
namedtype.OptionalNamedType('nonVolatileMemoryQuotaC8', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassPrivate, tag.tagFormatSimple, 8))),
namedtype.OptionalNamedType('globalServiceParameters', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassPrivate, tag.tagFormatSimple, 11))),
namedtype.OptionalNamedType('implicitSelectionParameter', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassPrivate, tag.tagFormatSimple, 15))),
namedtype.OptionalNamedType('volatileReservedMemory', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassPrivate, tag.tagFormatSimple, 23))),
namedtype.OptionalNamedType('nonVolatileReservedMemory', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassPrivate, tag.tagFormatSimple, 24))),
namedtype.OptionalNamedType('ts102226SIMFileAccessToolkitParameter', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassPrivate, tag.tagFormatSimple, 10))),
namedtype.OptionalNamedType('ts102226AdditionalContactlessParameters', TS102226AdditionalContactlessParameters().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),
namedtype.OptionalNamedType('contactlessProtocolParameters', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassPrivate, tag.tagFormatSimple, 25))),
namedtype.OptionalNamedType('userInteractionContactlessParameters', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassPrivate, tag.tagFormatSimple, 26)))
)
class UICCApplicationParameters(univ.Sequence):
pass
UICCApplicationParameters.componentType = namedtype.NamedTypes(
namedtype.OptionalNamedType('uiccToolkitApplicationSpecificParametersField', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),
namedtype.OptionalNamedType('uiccAccessApplicationSpecificParametersField', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),
namedtype.OptionalNamedType('uiccAdministrativeAccessApplicationSpecificParametersField', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2)))
)
class ApplicationInstance(univ.Sequence):
pass
ApplicationInstance.componentType = namedtype.NamedTypes(
namedtype.NamedType('applicationLoadPackageAID', ApplicationIdentifier().subtype(implicitTag=tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 15))),
namedtype.NamedType('classAID', ApplicationIdentifier().subtype(implicitTag=tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 15))),
namedtype.NamedType('instanceAID', ApplicationIdentifier().subtype(implicitTag=tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 15))),
namedtype.OptionalNamedType('extraditeSecurityDomainAID', ApplicationIdentifier().subtype(implicitTag=tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 15))),
namedtype.NamedType('applicationPrivileges', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),
namedtype.DefaultedNamedType('lifeCycleState', univ.OctetString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, 1)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3)).subtype(hexValue='07')),
namedtype.NamedType('applicationSpecificParametersC9', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassPrivate, tag.tagFormatSimple, 9))),
namedtype.OptionalNamedType('systemSpecificParameters', ApplicationSystemParameters().subtype(implicitTag=tag.Tag(tag.tagClassPrivate, tag.tagFormatConstructed, 15))),
namedtype.OptionalNamedType('applicationParameters', UICCApplicationParameters().subtype(implicitTag=tag.Tag(tag.tagClassPrivate, tag.tagFormatConstructed, 10))),
namedtype.OptionalNamedType('processData', univ.SequenceOf(componentType=univ.OctetString()))
)
class ApplicationLoadPackage(univ.Sequence):
pass
ApplicationLoadPackage.componentType = namedtype.NamedTypes(
namedtype.NamedType('loadPackageAID', ApplicationIdentifier().subtype(implicitTag=tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 15))),
namedtype.OptionalNamedType('securityDomainAID', ApplicationIdentifier().subtype(implicitTag=tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 15))),
namedtype.OptionalNamedType('nonVolatileCodeLimitC6', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassPrivate, tag.tagFormatSimple, 6))),
namedtype.OptionalNamedType('volatileDataLimitC7', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassPrivate, tag.tagFormatSimple, 7))),
namedtype.OptionalNamedType('nonVolatileDataLimitC8', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassPrivate, tag.tagFormatSimple, 8))),
namedtype.OptionalNamedType('hashValue', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassPrivate, tag.tagFormatSimple, 1))),
namedtype.NamedType('loadBlockObject', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassPrivate, tag.tagFormatSimple, 4)))
)
maxUInt15 = univ.Integer(32767)
class UInt15(univ.Integer):
pass
UInt15.subtypeSpec = constraint.ValueRangeConstraint(0, maxUInt15)
maxUInt8 = univ.Integer(255)
class UInt8(univ.Integer):
pass
UInt8.subtypeSpec = constraint.ValueRangeConstraint(0, maxUInt8)
class PEStatus(univ.Sequence):
pass
PEStatus.componentType = namedtype.NamedTypes(
namedtype.NamedType('status', univ.Integer(namedValues=namedval.NamedValues(('ok', 0), ('pe-not-supported', 1), ('memory-failure', 2), ('bad-values', 3), ('not-enough-memory', 4), ('invalid-request-format', 5), ('invalid-parameter', 6), ('runtime-not-supported', 7), ('lib-not-supported', 8), ('template-not-supported', 9), ('feature-not-supported', 10), ('unsupported-profile-version', 31))).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),
namedtype.OptionalNamedType('identification', UInt15().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),
namedtype.OptionalNamedType('additional-information', UInt8().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2)))
)
class EUICCResponse(univ.Sequence):
pass
EUICCResponse.componentType = namedtype.NamedTypes(
namedtype.NamedType('peStatus', univ.SequenceOf(componentType=PEStatus()).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),
namedtype.OptionalNamedType('profileInstallationAborted', univ.Null().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),
namedtype.OptionalNamedType('statusMessage', char.UTF8String().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2)))
)
class ProprietaryInfo(univ.Sequence):
pass
ProprietaryInfo.componentType = namedtype.NamedTypes(
namedtype.DefaultedNamedType('specialFileInformation', univ.OctetString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, 1)).subtype(implicitTag=tag.Tag(tag.tagClassPrivate, tag.tagFormatSimple, 0)).subtype(hexValue='00')),
namedtype.OptionalNamedType('fillPattern', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassPrivate, tag.tagFormatSimple, 1))),
namedtype.OptionalNamedType('repeatPattern', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassPrivate, tag.tagFormatSimple, 2)))
)
class Fcp(univ.Sequence):
pass
Fcp.componentType = namedtype.NamedTypes(
namedtype.OptionalNamedType('fileDescriptor', univ.OctetString().subtype(subtypeSpec=constraint.ValueSizeConstraint(2, 4)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),
namedtype.OptionalNamedType('fileID', univ.OctetString().subtype(subtypeSpec=constraint.ValueSizeConstraint(2, 2)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))),
namedtype.OptionalNamedType('dfName', ApplicationIdentifier().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 4))),
namedtype.DefaultedNamedType('lcsi', univ.OctetString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, 1)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 10)).subtype(hexValue='05')),
namedtype.OptionalNamedType('securityAttributesReferenced', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 11))),
namedtype.OptionalNamedType('efFileSize', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),
namedtype.OptionalNamedType('pinStatusTemplateDO', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassPrivate, tag.tagFormatSimple, 6))),
namedtype.OptionalNamedType('shortEFID', univ.OctetString().subtype(subtypeSpec=constraint.ValueSizeConstraint(0, 1)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 8))),
namedtype.OptionalNamedType('proprietaryEFInfo', ProprietaryInfo().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 5))),
namedtype.OptionalNamedType('linkPath', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassPrivate, tag.tagFormatSimple, 7)))
)
maxUInt16 = univ.Integer(65535)
class UInt16(univ.Integer):
pass
UInt16.subtypeSpec = constraint.ValueRangeConstraint(0, maxUInt16)
class File(univ.SequenceOf):
pass
File.componentType = univ.Choice(componentType=namedtype.NamedTypes(
namedtype.NamedType('doNotCreate', univ.Null().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),
namedtype.NamedType('fileDescriptor', Fcp().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1))),
namedtype.NamedType('fillFileOffset', UInt16().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),
namedtype.NamedType('fillFileContent', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3)))
))
class FileManagement(univ.SequenceOf):
pass
FileManagement.componentType = univ.Choice(componentType=namedtype.NamedTypes(
namedtype.NamedType('filePath', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),
namedtype.NamedType('createFCP', Fcp().subtype(implicitTag=tag.Tag(tag.tagClassApplication, tag.tagFormatConstructed, 2))),
namedtype.NamedType('fillFileOffset', UInt16()),
namedtype.NamedType('fillFileContent', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))
))
class KeyObject(univ.Sequence):
pass
KeyObject.componentType = namedtype.NamedTypes(
namedtype.NamedType('keyUsageQualifier', univ.OctetString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, 1)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 21))),
namedtype.DefaultedNamedType('keyAccess', univ.OctetString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, 1)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 22)).subtype(hexValue='00')),
namedtype.NamedType('keyIdentifier', univ.OctetString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, 1)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),
namedtype.NamedType('keyVersionNumber', univ.OctetString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, 1)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))),
namedtype.OptionalNamedType('keyCounterValue', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 5))),
namedtype.NamedType('keyCompontents', univ.SequenceOf(componentType=univ.Sequence(componentType=namedtype.NamedTypes(
namedtype.NamedType('keyType', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),
namedtype.NamedType('keyData', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 6))),
namedtype.DefaultedNamedType('macLength', UInt8().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 7)).subtype(value=8))
))
))
)
class MappingParameter(univ.Sequence):
pass
MappingParameter.componentType = namedtype.NamedTypes(
namedtype.NamedType('mappingOptions', univ.OctetString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, 1)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),
namedtype.NamedType('mappingSource', ApplicationIdentifier().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))
)
class PEHeader(univ.Sequence):
pass
PEHeader.componentType = namedtype.NamedTypes(
namedtype.OptionalNamedType('mandated', univ.Null().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),
namedtype.NamedType('identification', UInt15().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))
)
class PE_AKAParameter(univ.Sequence):
pass
PE_AKAParameter.componentType = namedtype.NamedTypes(
namedtype.NamedType('aka-header', PEHeader().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),
namedtype.NamedType('algoConfiguration', univ.Choice(componentType=namedtype.NamedTypes(
namedtype.NamedType('mappingParameter', MappingParameter().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),
namedtype.NamedType('algoParameter', AlgoParameter().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1)))
))
.subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1))),
namedtype.DefaultedNamedType('sqnOptions', univ.OctetString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, 1)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2)).subtype(hexValue='02')),
namedtype.DefaultedNamedType('sqnDelta', univ.OctetString().subtype(subtypeSpec=constraint.ValueSizeConstraint(6, 6)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3)).subtype(hexValue='000010000000')),
namedtype.DefaultedNamedType('sqnAgeLimit', univ.OctetString().subtype(subtypeSpec=constraint.ValueSizeConstraint(6, 6)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 4)).subtype(hexValue='000010000000')),
namedtype.DefaultedNamedType('sqnInit', univ.SequenceOf(componentType=univ.OctetString().subtype(subtypeSpec=constraint.ValueSizeConstraint(6, 6))).subtype(subtypeSpec=constraint.ValueSizeConstraint(32, 32)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 5)))
)
class PE_Application(univ.Sequence):
pass
PE_Application.componentType = namedtype.NamedTypes(
namedtype.NamedType('app-Header', PEHeader().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),
namedtype.OptionalNamedType('loadBlock', ApplicationLoadPackage().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1))),
namedtype.OptionalNamedType('instanceList', univ.SequenceOf(componentType=ApplicationInstance()).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2)))
)
class PE_CD(univ.Sequence):
pass
PE_CD.componentType = namedtype.NamedTypes(
namedtype.NamedType('cd-header', PEHeader().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),
namedtype.NamedType('templateID', univ.ObjectIdentifier().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),
namedtype.NamedType('df-cd', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),
namedtype.OptionalNamedType('ef-launchpad', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))),
namedtype.OptionalNamedType('ef-icon', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 4)))
)
class PE_CDMAParameter(univ.Sequence):
pass
PE_CDMAParameter.componentType = namedtype.NamedTypes(
namedtype.NamedType('cdma-header', PEHeader().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),
namedtype.NamedType('authenticationKey', univ.OctetString().subtype(subtypeSpec=constraint.ValueSizeConstraint(8, 8)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),
namedtype.OptionalNamedType('ssd', univ.OctetString().subtype(subtypeSpec=constraint.ValueSizeConstraint(16, 16)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),
namedtype.OptionalNamedType('hrpdAccessAuthenticationData', univ.OctetString().subtype(subtypeSpec=constraint.ValueSizeConstraint(8, 255)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))),
namedtype.OptionalNamedType('simpleIPAuthenticationData', univ.OctetString().subtype(subtypeSpec=constraint.ValueSizeConstraint(10, 4112)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 4))),
namedtype.OptionalNamedType('mobileIPAuthenticationData', univ.OctetString().subtype(subtypeSpec=constraint.ValueSizeConstraint(19, 8208)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 5)))
)
class PE_CSIM(univ.Sequence):
pass
PE_CSIM.componentType = namedtype.NamedTypes(
namedtype.NamedType('csim-header', PEHeader().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),
namedtype.NamedType('templateID', univ.ObjectIdentifier().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),
namedtype.NamedType('adf-csim', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),
namedtype.NamedType('ef-arr', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))),
namedtype.NamedType('ef-call-count', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 4))),
namedtype.NamedType('ef-imsi-m', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 5))),
namedtype.NamedType('ef-imsi-t', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 6))),
namedtype.NamedType('ef-tmsi', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 7))),
namedtype.NamedType('ef-ah', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 8))),
namedtype.NamedType('ef-aop', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 9))),
namedtype.NamedType('ef-aloc', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 10))),
namedtype.NamedType('ef-cdmahome', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 11))),
namedtype.NamedType('ef-znregi', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 12))),
namedtype.NamedType('ef-snregi', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 13))),
namedtype.NamedType('ef-distregi', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 14))),
namedtype.NamedType('ef-accolc', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 15))),
namedtype.NamedType('ef-term', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 16))),
namedtype.NamedType('ef-acp', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 17))),
namedtype.NamedType('ef-prl', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 18))),
namedtype.NamedType('ef-ruimid', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 19))),
namedtype.NamedType('ef-csim-st', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 20))),
namedtype.NamedType('ef-spc', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 21))),
namedtype.NamedType('ef-otapaspc', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 22))),
namedtype.NamedType('ef-namlock', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 23))),
namedtype.NamedType('ef-ota', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 24))),
namedtype.NamedType('ef-sp', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 25))),
namedtype.NamedType('ef-esn-meid-me', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 26))),
namedtype.NamedType('ef-li', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 27))),
namedtype.NamedType('ef-usgind', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 28))),
namedtype.NamedType('ef-ad', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 29))),
namedtype.NamedType('ef-max-prl', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 30))),
namedtype.NamedType('ef-spcs', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 31))),
namedtype.NamedType('ef-mecrp', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 32))),
namedtype.NamedType('ef-home-tag', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 33))),
namedtype.NamedType('ef-group-tag', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 34))),
namedtype.NamedType('ef-specific-tag', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 35))),
namedtype.NamedType('ef-call-prompt', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 36)))
)
class PE_Dummy(univ.Sequence):
pass
PE_Dummy.componentType = namedtype.NamedTypes(
)
class PE_End(univ.Sequence):
pass
PE_End.componentType = namedtype.NamedTypes(
namedtype.NamedType('end-header', PEHeader().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0)))
)
class PE_GSM_ACCESS(univ.Sequence):
pass
PE_GSM_ACCESS.componentType = namedtype.NamedTypes(
namedtype.NamedType('gsm-access-header', PEHeader().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),
namedtype.NamedType('templateID', univ.ObjectIdentifier().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),
namedtype.NamedType('df-gsm-access', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),
namedtype.OptionalNamedType('ef-kc', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))),
namedtype.OptionalNamedType('ef-kcgprs', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 4))),
namedtype.OptionalNamedType('ef-cpbcch', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 5))),
namedtype.OptionalNamedType('ef-invscan', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 6)))
)
class PE_GenericFileManagement(univ.Sequence):
pass
PE_GenericFileManagement.componentType = namedtype.NamedTypes(
namedtype.NamedType('gfm-header', PEHeader().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),
namedtype.NamedType('fileManagementCMD', univ.SequenceOf(componentType=FileManagement()).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))
)
class PE_ISIM(univ.Sequence):
pass
PE_ISIM.componentType = namedtype.NamedTypes(
namedtype.NamedType('isim-header', PEHeader().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),
namedtype.NamedType('templateID', univ.ObjectIdentifier().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),
namedtype.NamedType('adf-isim', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),
namedtype.NamedType('ef-impi', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))),
namedtype.NamedType('ef-impu', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 4))),
namedtype.NamedType('ef-domain', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 5))),
namedtype.NamedType('ef-ist', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 6))),
namedtype.OptionalNamedType('ef-ad', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 7))),
namedtype.NamedType('ef-arr', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 8)))
)
class PE_MF(univ.Sequence):
pass
PE_MF.componentType = namedtype.NamedTypes(
namedtype.NamedType('mf-header', PEHeader().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),
namedtype.NamedType('templateID', univ.ObjectIdentifier().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),
namedtype.NamedType('mf', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),
namedtype.OptionalNamedType('ef-pl', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))),
namedtype.NamedType('ef-iccid', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 4))),
namedtype.NamedType('ef-dir', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 5))),
namedtype.NamedType('ef-arr', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 6))),
namedtype.OptionalNamedType('ef-umpc', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 7)))
)
class PE_NonStandard(univ.Sequence):
pass
PE_NonStandard.componentType = namedtype.NamedTypes(
namedtype.NamedType('nonStandard-header', PEHeader().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),
namedtype.NamedType('issuerID', univ.ObjectIdentifier().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),
namedtype.NamedType('content', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2)))
)
class PE_OPT_CSIM(univ.Sequence):
pass
PE_OPT_CSIM.componentType = namedtype.NamedTypes(
namedtype.NamedType('optcsim-header', PEHeader().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),
namedtype.NamedType('templateID', univ.ObjectIdentifier().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),
namedtype.OptionalNamedType('ef-ssci', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),
namedtype.OptionalNamedType('ef-fdn', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))),
namedtype.OptionalNamedType('ef-sms', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 4))),
namedtype.OptionalNamedType('ef-smsp', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 5))),
namedtype.OptionalNamedType('ef-smss', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 6))),
namedtype.OptionalNamedType('ef-ssfc', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 7))),
namedtype.OptionalNamedType('ef-spn', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 8))),
namedtype.OptionalNamedType('ef-mdn', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 9))),
namedtype.OptionalNamedType('ef-ecc', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 10))),
namedtype.OptionalNamedType('ef-me3gpdopc', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 11))),
namedtype.OptionalNamedType('ef-3gpdopm', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 12))),
namedtype.OptionalNamedType('ef-sipcap', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 13))),
namedtype.OptionalNamedType('ef-mipcap', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 14))),
namedtype.OptionalNamedType('ef-sipupp', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 15))),
namedtype.OptionalNamedType('ef-mipupp', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 16))),
namedtype.OptionalNamedType('ef-sipsp', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 17))),
namedtype.OptionalNamedType('ef-mipsp', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 18))),
namedtype.OptionalNamedType('ef-sippapss', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 19))),
namedtype.OptionalNamedType('ef-puzl', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 20))),
namedtype.OptionalNamedType('ef-maxpuzl', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 21))),
namedtype.OptionalNamedType('ef-hrpdcap', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 22))),
namedtype.OptionalNamedType('ef-hrpdupp', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 23))),
namedtype.OptionalNamedType('ef-csspr', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 24))),
namedtype.OptionalNamedType('ef-atc', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 25))),
namedtype.OptionalNamedType('ef-eprl', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 26))),
namedtype.OptionalNamedType('ef-bcsmscfg', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 27))),
namedtype.OptionalNamedType('ef-bcsmspref', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 28))),
namedtype.OptionalNamedType('ef-bcsmstable', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 29))),
namedtype.OptionalNamedType('ef-bcsmsp', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 30))),
namedtype.OptionalNamedType('ef-bakpara', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 31))),
namedtype.OptionalNamedType('ef-upbakpara', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 32))),
namedtype.OptionalNamedType('ef-mmsn', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 33))),
namedtype.OptionalNamedType('ef-ext8', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 34))),
namedtype.OptionalNamedType('ef-mmsicp', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 35))),
namedtype.OptionalNamedType('ef-mmsup', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 36))),
namedtype.OptionalNamedType('ef-mmsucp', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 37))),
namedtype.OptionalNamedType('ef-auth-capability', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 38))),
namedtype.OptionalNamedType('ef-3gcik', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 39))),
namedtype.OptionalNamedType('ef-dck', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 40))),
namedtype.OptionalNamedType('ef-gid1', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 41))),
namedtype.OptionalNamedType('ef-gid2', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 42))),
namedtype.OptionalNamedType('ef-cdmacnl', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 43))),
namedtype.OptionalNamedType('ef-sf-euimid', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 44))),
namedtype.OptionalNamedType('ef-est', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 45))),
namedtype.OptionalNamedType('ef-hidden-key', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 46))),
namedtype.OptionalNamedType('ef-lcsver', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 47))),
namedtype.OptionalNamedType('ef-lcscp', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 48))),
namedtype.OptionalNamedType('ef-sdn', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 49))),
namedtype.OptionalNamedType('ef-ext2', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 50))),
namedtype.OptionalNamedType('ef-ext3', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 51))),
namedtype.OptionalNamedType('ef-ici', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 52))),
namedtype.OptionalNamedType('ef-oci', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 53))),
namedtype.OptionalNamedType('ef-ext5', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 54))),
namedtype.OptionalNamedType('ef-ccp2', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 55))),
namedtype.OptionalNamedType('ef-applabels', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 56))),
namedtype.OptionalNamedType('ef-model', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 57))),
namedtype.OptionalNamedType('ef-rc', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 58))),
namedtype.OptionalNamedType('ef-smscap', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 59))),
namedtype.OptionalNamedType('ef-mipflags', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 60))),
namedtype.OptionalNamedType('ef-3gpduppext', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 61))),
namedtype.OptionalNamedType('ef-ipv6cap', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 62))),
namedtype.OptionalNamedType('ef-tcpconfig', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 63))),
namedtype.OptionalNamedType('ef-dgc', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 64))),
namedtype.OptionalNamedType('ef-wapbrowsercp', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 65))),
namedtype.OptionalNamedType('ef-wapbrowserbm', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 66))),
namedtype.OptionalNamedType('ef-mmsconfig', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 67))),
namedtype.OptionalNamedType('ef-jdl', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 68)))
)
class PE_OPT_ISIM(univ.Sequence):
pass
PE_OPT_ISIM.componentType = namedtype.NamedTypes(
namedtype.NamedType('optisim-header', PEHeader().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),
namedtype.NamedType('templateID', univ.ObjectIdentifier().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),
namedtype.OptionalNamedType('ef-pcscf', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),
namedtype.OptionalNamedType('ef-sms', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))),
namedtype.OptionalNamedType('ef-smsp', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 4))),
namedtype.OptionalNamedType('ef-smss', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 5))),
namedtype.OptionalNamedType('ef-smsr', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 6))),
namedtype.OptionalNamedType('ef-gbabp', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 7))),
namedtype.OptionalNamedType('ef-gbanl', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 8))),
namedtype.OptionalNamedType('ef-nafkca', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 9))),
namedtype.OptionalNamedType('ef-uicciari', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 10)))
)
class PE_OPT_USIM(univ.Sequence):
pass
PE_OPT_USIM.componentType = namedtype.NamedTypes(
namedtype.NamedType('optusim-header', PEHeader().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),
namedtype.NamedType('templateID', univ.ObjectIdentifier().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),
namedtype.OptionalNamedType('ef-li', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),
namedtype.OptionalNamedType('ef-acmax', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))),
namedtype.OptionalNamedType('ef-acm', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 4))),
namedtype.OptionalNamedType('ef-gid1', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 5))),
namedtype.OptionalNamedType('ef-gid2', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 6))),
namedtype.OptionalNamedType('ef-msisdn', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 7))),
namedtype.OptionalNamedType('ef-puct', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 8))),
namedtype.OptionalNamedType('ef-cbmi', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 9))),
namedtype.OptionalNamedType('ef-cbmid', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 10))),
namedtype.OptionalNamedType('ef-sdn', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 11))),
namedtype.OptionalNamedType('ef-ext2', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 12))),
namedtype.OptionalNamedType('ef-ext3', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 13))),
namedtype.OptionalNamedType('ef-cbmir', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 14))),
namedtype.OptionalNamedType('ef-plmnwact', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 15))),
namedtype.OptionalNamedType('ef-oplmnwact', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 16))),
namedtype.OptionalNamedType('ef-hplmnwact', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 17))),
namedtype.OptionalNamedType('ef-dck', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 18))),
namedtype.OptionalNamedType('ef-cnl', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 19))),
namedtype.OptionalNamedType('ef-smsr', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 20))),
namedtype.OptionalNamedType('ef-bdn', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 21))),
namedtype.OptionalNamedType('ef-ext5', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 22))),
namedtype.OptionalNamedType('ef-ccp2', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 23))),
namedtype.OptionalNamedType('ef-ext4', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 24))),
namedtype.OptionalNamedType('ef-acl', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 25))),
namedtype.OptionalNamedType('ef-cmi', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 26))),
namedtype.OptionalNamedType('ef-ici', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 27))),
namedtype.OptionalNamedType('ef-oci', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 28))),
namedtype.OptionalNamedType('ef-ict', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 29))),
namedtype.OptionalNamedType('ef-oct', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 30))),
namedtype.OptionalNamedType('ef-vgcs', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 31))),
namedtype.OptionalNamedType('ef-vgcss', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 32))),
namedtype.OptionalNamedType('ef-vbs', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 33))),
namedtype.OptionalNamedType('ef-vbss', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 34))),
namedtype.OptionalNamedType('ef-emlpp', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 35))),
namedtype.OptionalNamedType('ef-aaem', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 36))),
namedtype.OptionalNamedType('ef-hiddenkey', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 37))),
namedtype.OptionalNamedType('ef-pnn', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 38))),
namedtype.OptionalNamedType('ef-opl', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 39))),
namedtype.OptionalNamedType('ef-mbdn', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 40))),
namedtype.OptionalNamedType('ef-ext6', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 41))),
namedtype.OptionalNamedType('ef-mbi', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 42))),
namedtype.OptionalNamedType('ef-mwis', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 43))),
namedtype.OptionalNamedType('ef-cfis', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 44))),
namedtype.OptionalNamedType('ef-ext7', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 45))),
namedtype.OptionalNamedType('ef-spdi', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 46))),
namedtype.OptionalNamedType('ef-mmsn', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 47))),
namedtype.OptionalNamedType('ef-ext8', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 48))),
namedtype.OptionalNamedType('ef-mmsicp', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 49))),
namedtype.OptionalNamedType('ef-mmsup', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 50))),
namedtype.OptionalNamedType('ef-mmsucp', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 51))),
namedtype.OptionalNamedType('ef-nia', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 52))),
namedtype.OptionalNamedType('ef-vgcsca', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 53))),
namedtype.OptionalNamedType('ef-vbsca', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 54))),
namedtype.OptionalNamedType('ef-gbabp', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 55))),
namedtype.OptionalNamedType('ef-msk', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 56))),
namedtype.OptionalNamedType('ef-muk', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 57))),
namedtype.OptionalNamedType('ef-ehplmn', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 58))),
namedtype.OptionalNamedType('ef-gbanl', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 59))),
namedtype.OptionalNamedType('ef-ehplmnpi', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 60))),
namedtype.OptionalNamedType('ef-lrplmnsi', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 61))),
namedtype.OptionalNamedType('ef-nafkca', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 62))),
namedtype.OptionalNamedType('ef-spni', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 63))),
namedtype.OptionalNamedType('ef-pnni', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 64))),
namedtype.OptionalNamedType('ef-ncp-ip', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 65))),
namedtype.OptionalNamedType('ef-ufc', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 66))),
namedtype.OptionalNamedType('ef-nasconfig', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 67))),
namedtype.OptionalNamedType('ef-uicciari', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 68))),
namedtype.OptionalNamedType('ef-pws', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 69))),
namedtype.OptionalNamedType('ef-fdnuri', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 70))),
namedtype.OptionalNamedType('ef-bdnuri', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 71))),
namedtype.OptionalNamedType('ef-sdnuri', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 72))),
namedtype.OptionalNamedType('ef-iwl', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 73))),
namedtype.OptionalNamedType('ef-ips', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 74))),
namedtype.OptionalNamedType('ef-ipd', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 75)))
)
class PE_PHONEBOOK(univ.Sequence):
pass
PE_PHONEBOOK.componentType = namedtype.NamedTypes(
namedtype.NamedType('phonebook-header', PEHeader().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),
namedtype.NamedType('templateID', univ.ObjectIdentifier().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),
namedtype.NamedType('df-phonebook', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),
namedtype.OptionalNamedType('ef-pbr', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))),
namedtype.OptionalNamedType('ef-ext1', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 4))),
namedtype.OptionalNamedType('ef-aas', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 5))),
namedtype.OptionalNamedType('ef-gas', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 6))),
namedtype.OptionalNamedType('ef-psc', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 7))),
namedtype.OptionalNamedType('ef-cc', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 8))),
namedtype.OptionalNamedType('ef-puid', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 9))),
namedtype.OptionalNamedType('ef-iap', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 10))),
namedtype.OptionalNamedType('ef-adn', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 11))),
namedtype.OptionalNamedType('ef-pbc', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 12))),
namedtype.OptionalNamedType('ef-anr', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 13))),
namedtype.OptionalNamedType('ef-puri', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 14))),
namedtype.OptionalNamedType('ef-email', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 15))),
namedtype.OptionalNamedType('ef-sne', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 16))),
namedtype.OptionalNamedType('ef-uid', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 17))),
namedtype.OptionalNamedType('ef-grp', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 18))),
namedtype.OptionalNamedType('ef-ccp1', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 19)))
)
class PUKKeyReferenceValue(univ.Integer):
pass
PUKKeyReferenceValue.namedValues = namedval.NamedValues(
('pukAppl1', 1),
('pukAppl2', 2),
('pukAppl3', 3),
('pukAppl4', 4),
('pukAppl5', 5),
('pukAppl6', 6),
('pukAppl7', 7),
('pukAppl8', 8),
('secondPUKAppl1', 129),
('secondPUKAppl2', 130),
('secondPUKAppl3', 131),
('secondPUKAppl4', 132),
('secondPUKAppl5', 133),
('secondPUKAppl6', 134),
('secondPUKAppl7', 135),
('secondPUKAppl8', 136)
)
class PINKeyReferenceValue(univ.Integer):
pass
PINKeyReferenceValue.namedValues = namedval.NamedValues(
('pinAppl1', 1),
('pinAppl2', 2),
('pinAppl3', 3),
('pinAppl4', 4),
('pinAppl5', 5),
('pinAppl6', 6),
('pinAppl7', 7),
('pinAppl8', 8),
('adm1', 10),
('adm2', 11),
('adm3', 12),
('adm4', 13),
('adm5', 14),
('secondPINAppl1', 129),
('secondPINAppl2', 130),
('secondPINAppl3', 131),
('secondPINAppl4', 132),
('secondPINAppl5', 133),
('secondPINAppl6', 134),
('secondPINAppl7', 135),
('secondPINAppl8', 136),
('adm6', 138),
('adm7', 139),
('adm8', 140),
('adm9', 141),
('adm10', 142)
)
class PINConfiguration(univ.Sequence):
pass
PINConfiguration.componentType = namedtype.NamedTypes(
namedtype.NamedType('keyReference', PINKeyReferenceValue().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),
namedtype.NamedType('pinValue', univ.OctetString().subtype(subtypeSpec=constraint.ValueSizeConstraint(8, 8)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),
namedtype.OptionalNamedType('unblockingPINReference', PUKKeyReferenceValue().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),
namedtype.DefaultedNamedType('pinAttributes', UInt8().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3)).subtype(value=7)),
namedtype.DefaultedNamedType('maxNumOfAttemps-retryNumLeft', UInt8().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 4)).subtype(value=51))
)
class PE_PINCodes(univ.Sequence):
pass
PE_PINCodes.componentType = namedtype.NamedTypes(
namedtype.NamedType('pin-Header', PEHeader().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),
namedtype.NamedType('pinCodes', univ.Choice(componentType=namedtype.NamedTypes(
namedtype.NamedType('pinconfig', univ.SequenceOf(componentType=PINConfiguration()).subtype(subtypeSpec=constraint.ValueSizeConstraint(1, 26)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),
namedtype.NamedType('filePath', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))
))
.subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1)))
)
class PUKConfiguration(univ.Sequence):
pass
PUKConfiguration.componentType = namedtype.NamedTypes(
namedtype.NamedType('keyReference', PUKKeyReferenceValue().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),
namedtype.NamedType('pukValue', univ.OctetString().subtype(subtypeSpec=constraint.ValueSizeConstraint(8, 8)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),
namedtype.DefaultedNamedType('maxNumOfAttemps-retryNumLeft', UInt8().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2)).subtype(value=170))
)
class PE_PUKCodes(univ.Sequence):
pass
PE_PUKCodes.componentType = namedtype.NamedTypes(
namedtype.NamedType('puk-Header', PEHeader().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),
namedtype.NamedType('pukCodes', univ.SequenceOf(componentType=PUKConfiguration()).subtype(subtypeSpec=constraint.ValueSizeConstraint(1, 16)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))
)
class PE_RFM(univ.Sequence):
pass
PE_RFM.componentType = namedtype.NamedTypes(
namedtype.NamedType('rfm-header', PEHeader().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),
namedtype.NamedType('instanceAID', ApplicationIdentifier().subtype(implicitTag=tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 15))),
namedtype.OptionalNamedType('securityDomainAID', ApplicationIdentifier().subtype(implicitTag=tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 15))),
namedtype.OptionalNamedType('tarList', univ.SequenceOf(componentType=univ.OctetString().subtype(subtypeSpec=constraint.ValueSizeConstraint(3, 3))).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),
namedtype.NamedType('minimumSecurityLevel', univ.OctetString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, 1)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),
namedtype.NamedType('uiccAccessDomain', univ.OctetString()),
namedtype.NamedType('uiccAdminAccessDomain', univ.OctetString()),
namedtype.OptionalNamedType('adfRFMAccess', ADFRFMAccess())
)
class PE_SecurityDomain(univ.Sequence):
pass
PE_SecurityDomain.componentType = namedtype.NamedTypes(
namedtype.NamedType('sd-Header', PEHeader().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),
namedtype.NamedType('instance', ApplicationInstance().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1))),
namedtype.OptionalNamedType('keyList', univ.SequenceOf(componentType=KeyObject()).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),
namedtype.OptionalNamedType('sdPersoData', univ.SequenceOf(componentType=univ.OctetString()).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3)))
)
class PE_TELECOM(univ.Sequence):
pass
PE_TELECOM.componentType = namedtype.NamedTypes(
namedtype.NamedType('telecom-header', PEHeader().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),
namedtype.NamedType('templateID', univ.ObjectIdentifier().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),
namedtype.NamedType('df-telecom', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),
namedtype.OptionalNamedType('ef-arr', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))),
namedtype.OptionalNamedType('ef-rma', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 4))),
namedtype.OptionalNamedType('ef-sume', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 5))),
namedtype.OptionalNamedType('ef-ice-dn', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 6))),
namedtype.OptionalNamedType('ef-ice-ff', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 7))),
namedtype.OptionalNamedType('ef-psismsc', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 8))),
namedtype.OptionalNamedType('df-graphics', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 9))),
namedtype.OptionalNamedType('ef-img', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 10))),
namedtype.OptionalNamedType('ef-iidf', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 11))),
namedtype.OptionalNamedType('ef-ice-graphics', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 12))),
namedtype.OptionalNamedType('ef-launch-scws', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 13))),
namedtype.OptionalNamedType('ef-icon', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 14))),
namedtype.OptionalNamedType('df-phonebook', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 15))),
namedtype.OptionalNamedType('ef-pbr', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 16))),
namedtype.OptionalNamedType('ef-ext1', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 17))),
namedtype.OptionalNamedType('ef-aas', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 18))),
namedtype.OptionalNamedType('ef-gas', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 19))),
namedtype.OptionalNamedType('ef-psc', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 20))),
namedtype.OptionalNamedType('ef-cc', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 21))),
namedtype.OptionalNamedType('ef-puid', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 22))),
namedtype.OptionalNamedType('ef-iap', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 23))),
namedtype.OptionalNamedType('ef-adn', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 24))),
namedtype.OptionalNamedType('ef-pbc', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 25))),
namedtype.OptionalNamedType('ef-anr', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 26))),
namedtype.OptionalNamedType('ef-puri', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 27))),
namedtype.OptionalNamedType('ef-email', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 28))),
namedtype.OptionalNamedType('ef-sne', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 29))),
namedtype.OptionalNamedType('ef-uid', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 30))),
namedtype.OptionalNamedType('ef-grp', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 31))),
namedtype.OptionalNamedType('ef-ccp1', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 32))),
namedtype.OptionalNamedType('df-multimedia', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 33))),
namedtype.OptionalNamedType('ef-mml', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 34))),
namedtype.OptionalNamedType('ef-mmdf', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 35))),
namedtype.OptionalNamedType('df-mmss', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 36))),
namedtype.OptionalNamedType('ef-mlpl', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 37))),
namedtype.OptionalNamedType('ef-mspl', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 38))),
namedtype.OptionalNamedType('ef-mmssmode', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 39)))
)
class PE_USIM(univ.Sequence):
pass
PE_USIM.componentType = namedtype.NamedTypes(
namedtype.NamedType('usim-header', PEHeader().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),
namedtype.NamedType('templateID', univ.ObjectIdentifier().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),
namedtype.NamedType('adf-usim', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),
namedtype.NamedType('ef-imsi', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))),
namedtype.NamedType('ef-arr', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 4))),
namedtype.OptionalNamedType('ef-keys', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 5))),
namedtype.OptionalNamedType('ef-keysPS', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 6))),
namedtype.OptionalNamedType('ef-hpplmn', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 7))),
namedtype.NamedType('ef-ust', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 8))),
namedtype.OptionalNamedType('ef-fdn', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 9))),
namedtype.OptionalNamedType('ef-sms', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 10))),
namedtype.OptionalNamedType('ef-smsp', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 11))),
namedtype.OptionalNamedType('ef-smss', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 12))),
namedtype.NamedType('ef-spn', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 13))),
namedtype.NamedType('ef-est', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 14))),
namedtype.OptionalNamedType('ef-start-hfn', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 15))),
namedtype.OptionalNamedType('ef-threshold', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 16))),
namedtype.OptionalNamedType('ef-psloci', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 17))),
namedtype.NamedType('ef-acc', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 18))),
namedtype.OptionalNamedType('ef-fplmn', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 19))),
namedtype.OptionalNamedType('ef-loci', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 20))),
namedtype.OptionalNamedType('ef-ad', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 21))),
namedtype.NamedType('ef-ecc', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 22))),
namedtype.OptionalNamedType('ef-netpar', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 23))),
namedtype.OptionalNamedType('ef-epsloci', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 24))),
namedtype.OptionalNamedType('ef-epsnsc', File().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 25)))
)
class ServicesList(univ.Sequence):
pass
ServicesList.componentType = namedtype.NamedTypes(
namedtype.OptionalNamedType('contactless', univ.Null().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),
namedtype.OptionalNamedType('usim', univ.Null().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),
namedtype.OptionalNamedType('isim', univ.Null().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),
namedtype.OptionalNamedType('csim', univ.Null().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))),
namedtype.OptionalNamedType('milenage', univ.Null().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 4))),
namedtype.OptionalNamedType('tuak128', univ.Null().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 5))),
namedtype.OptionalNamedType('cave', univ.Null().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 6))),
namedtype.OptionalNamedType('gba-usim', univ.Null().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 7))),
namedtype.OptionalNamedType('gba-isim', univ.Null().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 8))),
namedtype.OptionalNamedType('mbms', univ.Null().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 9))),
namedtype.OptionalNamedType('eap', univ.Null().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 10))),
namedtype.OptionalNamedType('javacard', univ.Null().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 11))),
namedtype.OptionalNamedType('multos', univ.Null().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 12))),
namedtype.OptionalNamedType('multiple-usim', univ.Null().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 13))),
namedtype.OptionalNamedType('multiple-isim', univ.Null().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 14))),
namedtype.OptionalNamedType('multiple-csim', univ.Null().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 15))),
namedtype.OptionalNamedType('tuak256', univ.Null().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 16)))
)
class ProfileHeader(univ.Sequence):
pass
ProfileHeader.componentType = namedtype.NamedTypes(
namedtype.NamedType('major-version', UInt8().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),
namedtype.NamedType('minor-version', UInt8().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),
namedtype.OptionalNamedType('profileType', char.UTF8String().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),
namedtype.NamedType('iccid', univ.OctetString().subtype(subtypeSpec=constraint.ValueSizeConstraint(10, 10)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))),
namedtype.OptionalNamedType('pol', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 4))),
namedtype.NamedType('eUICC-Mandatory-services', ServicesList().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 5))),
namedtype.NamedType('eUICC-Mandatory-GFSTEList', univ.SequenceOf(componentType=univ.ObjectIdentifier()).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 6))),
namedtype.OptionalNamedType('connectivityParameters', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 7)))
)
class ProfileElement(univ.Choice):
pass
ProfileElement.componentType = namedtype.NamedTypes(
namedtype.NamedType('header', ProfileHeader().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),
namedtype.NamedType('genericFileManagement', PE_GenericFileManagement().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1))),
namedtype.NamedType('pinCodes', PE_PINCodes().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 2))),
namedtype.NamedType('pukCodes', PE_PUKCodes().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 3))),
namedtype.NamedType('akaParameter', PE_AKAParameter().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 4))),
namedtype.NamedType('cdmaParameter', PE_CDMAParameter().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 5))),
namedtype.NamedType('securityDomain', PE_SecurityDomain().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 6))),
namedtype.NamedType('rfm', PE_RFM().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 7))),
namedtype.NamedType('application', PE_Application().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 8))),
namedtype.NamedType('nonStandard', PE_NonStandard().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 9))),
namedtype.NamedType('end', PE_End().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 10))),
namedtype.NamedType('rfu1', PE_Dummy().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 11))),
namedtype.NamedType('rfu2', PE_Dummy().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 12))),
namedtype.NamedType('rfu3', PE_Dummy().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 13))),
namedtype.NamedType('rfu4', PE_Dummy().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 14))),
namedtype.NamedType('rfu5', PE_Dummy().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 15))),
namedtype.NamedType('mf', PE_MF().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 16))),
namedtype.NamedType('cd', PE_CD().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 17))),
namedtype.NamedType('telecom', PE_TELECOM().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 18))),
namedtype.NamedType('usim', PE_USIM().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 19))),
namedtype.NamedType('opt-usim', PE_OPT_USIM().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 20))),
namedtype.NamedType('isim', PE_ISIM().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 21))),
namedtype.NamedType('opt-isim', PE_OPT_ISIM().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 22))),
namedtype.NamedType('phonebook', PE_PHONEBOOK().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 23))),
namedtype.NamedType('gsm-access', PE_GSM_ACCESS().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 24))),
namedtype.NamedType('csim', PE_CSIM().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 25))),
namedtype.NamedType('opt-csim', PE_OPT_CSIM().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 26)))
)
|
this is the result in oss playground :
|
and this is the returned value from pyasn1 version 0.2.3
|
and this is the DER file that I want to decode :
|
lastly, this is my decoding method : def decode_all(self, file_path, saip_version='2.0'):
if(saip_version == '2.0'):
SAIP = SAIP20
elif(saip_version == '2.1'):
SAIP = SAIP21
else:
return None
print("> Using SAIP " + saip_version + " definition")
decode_output = []
SAIPelements = []
with open(file_path, 'r', encoding="utf-8") as fp:
try:
fullContent = fp.read()
except UnicodeDecodeError:
with open(file_path, 'rb') as fp:
fullContent = binascii.hexlify(fp.read()).decode("utf-8")
profile = ''.join(fullContent.split())
try:
profile = bytes.fromhex(profile)
while True:
singlePE = decoder.decode(profile, asn1Spec=SAIP.ProfileElement())
SAIPelements.append(singlePE[0])
if singlePE[0] is not None:
pass
else:
break
if len(singlePE[1]) != 0:
profile = singlePE[1]
else:
break
for element in SAIPelements:
decode_output.append(element.prettyPrint())
except ValueError:
decode_output = "[ERROR] - INVALID FILE CONTENT FORMAT"
return decode_output ps: sorry for the very long post |
Hi @etingof ,
I have an issue with pyAsn1 starting from version 0.3.2
it seems like the version after 0.3.1 pyAsn1 can't decode element which has subtype (hexValue) key. Below is the following example :
it will failed on rotationConstants & xoringConstants Named Type.
on version 0.3.1 and 0.2.3 (the one I use) there is no problem with the decoding.
sorry I can't give more detailed information regarding this since I'm still lost with ASN1 concept and the knowledge
The text was updated successfully, but these errors were encountered: