Revert "TODO epan/dissectors/asn1/kerberos/packet-kerberos-template.c new GSS flags"
[wireshark-sm.git] / epan / dissectors / asn1 / pkcs12 / pkcs12.asn
blob1bbf2a14686fb6849d0cac55078b075e089414ab
1 PKCS-12 {iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
2                  pkcs-12(12) modules(0)  pkcs-12(1)}
4 DEFINITIONS IMPLICIT TAGS ::=
6 BEGIN
8 -- EXPORTS ALL
9 -- All types and values defined in this module is exported for use in
10 -- other ASN.1 modules. 
12 IMPORTS
14 informationFramework
15         FROM UsefulDefinitions {joint-iso-itu-t(2) ds(5) module(1)
16         usefulDefinitions(0) 3}
18 Attribute
19         FROM InformationFramework informationFramework
21 ContentInfo, DigestInfo, Digest, DigestAlgorithmIdentifier
22         FROM PKCS-7 {iso(1) member-body(2) us(840) rsadsi(113549)
23         pkcs(1) pkcs-7(7) modules(0) pkcs-7(1)}
25 --PrivateKeyInfo, EncryptedPrivateKeyInfo
26 --      FROM PKCS-8 {iso(1) member-body(2) us(840) rsadsi(113549)
27 --      pkcs(1) pkcs-8(8) modules(1) pkcs-8(1)}
29 --pkcs-9, friendlyName, localKeyId, certTypes, crlTypes
30 --      FROM PKCS-9 {iso(1) member-body(2) us(840) rsadsi(113549)
31 --      pkcs(1) pkcs-9(9) modules(0) pkcs-9(1) };--
33 -- A PKCS#8 IMPORT from below
34 AlgorithmIdentifier, ALGORITHM-IDENTIFIER
35         FROM PKCS-5 {iso(1) member-body(2) us(840) rsadsi(113549)
36         pkcs(1) pkcs-5(5) modules(16) pkcs-5(1)};
39 -- Object identifiers
41 --rsadsi        OBJECT IDENTIFIER ::= {iso(1) member-body(2) us(840) rsadsi(113549)}
42 --pkcs    OBJECT IDENTIFIER ::= {rsadsi pkcs(1)}
43 --pkcs-12       OBJECT IDENTIFIER ::= {pkcs 12}
44 --pkcs-12PbeIds                         OBJECT IDENTIFIER ::= {pkcs-12 1}
45 --pbeWithSHAAnd128BitRC4          OBJECT IDENTIFIER ::= {pkcs-12PbeIds 1}
46 --pbeWithSHAAnd40BitRC4           OBJECT IDENTIFIER ::= {pkcs-12PbeIds 2}
47 --pbeWithSHAAnd3-KeyTripleDES-CBC       OBJECT IDENTIFIER ::= {pkcs-12PbeIds 3}
48 --pbeWithSHAAnd2-KeyTripleDES-CBC       OBJECT IDENTIFIER ::= {pkcs-12PbeIds 4}
49 --pbeWithSHAAnd128BitRC2-CBC      OBJECT IDENTIFIER ::= {pkcs-12PbeIds 5}
50 --pbewithSHAAnd40BitRC2-CBC       OBJECT IDENTIFIER ::= {pkcs-12PbeIds 6}
52 --bagtypes                      OBJECT IDENTIFIER ::= {pkcs-12 10 1}
54 -- The PFX PDU
56 PFX ::= SEQUENCE {
57         version         INTEGER {v3(3)}(v3,...),
58         authSafe        ContentInfo,
59         macData         MacData OPTIONAL
62 MacData ::= SEQUENCE {
63         mac             DigestInfo,
64         macSalt         OCTET STRING,
65         iterations      INTEGER DEFAULT 1
66 -- Note: The default is for historical reasons and its use is
67 -- deprecated. A higher value, like 1024 is recommended.
70 AuthenticatedSafe ::= SEQUENCE OF ContentInfo
71         -- Data if unencrypted
72         -- EncryptedData if password-encrypted
73         -- EnvelopedData if public key-encrypted
75 SafeContents ::= SEQUENCE OF SafeBag
77 SafeBag ::= SEQUENCE {
78         bagId           -- BAG-TYPE.&id ({PKCS12BagSet}) -- OBJECT IDENTIFIER,
79         bagValue        [0] EXPLICIT --BAG-TYPE.&Type({PKCS12BagSet}{@bagId}) -- ANY,
80         bagAttributes   SET OF PKCS12Attribute OPTIONAL
83 -- Bag types
85 --keyBag          BAG-TYPE ::= 
86 --      {KeyBag IDENTIFIED BY {bagtypes 1}}
87 --pkcs8ShroudedKeyBag BAG-TYPE ::=
88 --      {PKCS8ShroudedKeyBag IDENTIFIED BY {bagtypes 2}}
89 --certBag BAG-TYPE ::= 
90 --      {CertBag IDENTIFIED BY {bagtypes 3}}
91 --crlBag BAG-TYPE ::=
92 --      {CRLBag IDENTIFIED BY {bagtypes 4}}
93 --secretBag BAG-TYPE ::=    
94 --      {SecretBag IDENTIFIED BY {bagtypes 5}}
95 --safeContentsBag BAG-TYPE ::=
96 --      {SafeContents IDENTIFIED BY {bagtypes 6}}
98 --PKCS12BagSet BAG-TYPE ::= {
99 --      keyBag | 
100 --      pkcs8ShroudedKeyBag |
101 --      certBag |
102 --      crlBag | 
103 --      secretBag | 
104 --      safeContentsBag,
105 --      ... - - For future extensions
108 --BAG-TYPE ::= TYPE-IDENTIFIER
110 -- KeyBag
112 KeyBag ::= PrivateKeyInfo
114 -- Shrouded KeyBag
116 PKCS8ShroudedKeyBag ::= EncryptedPrivateKeyInfo
118 -- CertBag
120 CertBag ::= SEQUENCE {
121         certId    --BAG-TYPE.&id   ({CertTypes}) -- OBJECT IDENTIFIER,
122         certValue [0] EXPLICIT --BAG-TYPE.&Type ({CertTypes}{@certId})-- ANY
125 --x509Certificate BAG-TYPE ::=
126 --      {OCTET STRING IDENTIFIED BY {certTypes 1}}
127         -- DER-encoded X.509 certificate stored in OCTET STRING
128 --sdsiCertificate BAG-TYPE ::=
129 --      {IA5String IDENTIFIED BY {certTypes 2}}
130         -- Base64-encoded SDSI certificate stored in IA5String
132 --CertTypes BAG-TYPE ::= {
133 --      x509Certificate |
134 --      sdsiCertificate,
135 --      ... - - For future extensions
138 -- CRLBag
140 CRLBag ::= SEQUENCE {
141         crlId           --BAG-TYPE.&id ({CRLTypes})-- OBJECT IDENTIFIER,
142         crlValue        [0] EXPLICIT --BAG-TYPE.&Type ({CRLTypes}{@crlId})-- ANY
145 --x509CRL BAG-TYPE ::=
146 --      {OCTET STRING IDENTIFIED BY {crlTypes 1}}
147         -- DER-encoded X.509 CRL stored in OCTET STRING
149 --CRLTypes BAG-TYPE ::= {
150 --      x509CRL,
151 --      ... - - For future extensions
154 -- Secret Bag
156 SecretBag ::= SEQUENCE {
157         secretTypeId --BAG-TYPE.&id ({SecretTypes})-- OBJECT IDENTIFIER,
158         secretValue  [0] EXPLICIT --BAG-TYPE.&Type ({SecretTypes}{@secretTypeId})-- ANY
161 --SecretTypes BAG-TYPE ::= {
162 --      ... - - For future extensions
165 -- Attributes
167 PKCS12Attribute ::= SEQUENCE {
168         attrId          --ATTRIBUTE.&id ({PKCS12AttrSet})-- OBJECT IDENTIFIER,
169         attrValues      SET OF --ATTRIBUTE.&Type ({PKCS12AttrSet}{@attrId})-- ANY
170 } -- This type is compatible with the X.500 type 'Attribute'
172 --PKCS12AttrSet ATTRIBUTE ::= {
173 --      friendlyName |
174 --      localKeyId,
175 --      ... - - Other attributes are allowed
178 --END
180 -- We import PKCS#8 here directly rather than creating another dissector
182 --PKCS-8 {iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-8(8)
183 --        modules(1) pkcs-8(1)} 
185 -- $Revision: 1.5 $
187 -- This module has been checked for conformance with the ASN.1
188 -- standard by the OSS ASN.1 Tools
190 --DEFINITIONS IMPLICIT TAGS ::= 
192 --BEGIN
194 -- EXPORTS All --
195 -- All types and values defined in this module is exported for use in other
196 -- ASN.1 modules.
198 --IMPORTS
200 --informationFramework
201 --        FROM UsefulDefinitions {joint-iso-itu-t(2) ds(5) module(1)
202 --                                usefulDefinitions(0) 3} 
204 --Attribute
205 --        FROM InformationFramework informationFramework
207 --AlgorithmIdentifier, ALGORITHM-IDENTIFIER
208 --        FROM PKCS-5 {iso(1) member-body(2) us(840) rsadsi(113549)
209 --        pkcs(1) pkcs-5(5) modules(16) pkcs-5(1)};
211 -- Private-key information syntax
213 PrivateKeyInfo ::= SEQUENCE {
214   version Version,
215   privateKeyAlgorithm AlgorithmIdentifier --{{PrivateKeyAlgorithms}}--,
216   privateKey PrivateKey,
217   attributes [0] Attributes OPTIONAL }
219 Version ::= INTEGER {v1(0)} (v1,...)
221 PrivateKey ::= OCTET STRING
223 Attributes ::= SET OF Attribute
225 -- Encrypted private-key information syntax
227 EncryptedPrivateKeyInfo ::= SEQUENCE {
228     encryptionAlgorithm AlgorithmIdentifier --{{KeyEncryptionAlgorithms}}--,
229     encryptedData EncryptedData 
232 EncryptedData ::= OCTET STRING
234 --PrivateKeyAlgorithms ALGORITHM-IDENTIFIER ::= {
235 --    ... - - For local profiles
238 --KeyEncryptionAlgorithms ALGORITHM-IDENTIFIER ::= {
239 --    ... - - For local profiles
242 -- From RFC 2898
243 PBEParameter ::= SEQUENCE {
244     salt                OCTET STRING,
245     iterationCount      INTEGER
249 PBKDF2Params ::= SEQUENCE {
250     salt CHOICE {
251         specified OCTET STRING,
252         otherSource AlgorithmIdentifier --{{PBKDF2-SaltSources}}--
253         },
254     iterationCount INTEGER --(1..MAX)--,
255     keyLength INTEGER (1..MAX) OPTIONAL,
256     prf AlgorithmIdentifier --{{PBKDF2-PRFs}} DEFAULT algid-hmacWithSHA1-- OPTIONAL }
258 PBES2Params ::= SEQUENCE {
259     keyDerivationFunc AlgorithmIdentifier --{{PBES2-KDFs}}--,
260     encryptionScheme AlgorithmIdentifier --{{PBES2-Encs}}-- }
262 PBMAC1Params ::=  SEQUENCE {
263     keyDerivationFunc AlgorithmIdentifier --{{PBMAC1-KDFs}}--,
264     messageAuthScheme AlgorithmIdentifier --{{PBMAC1-MACs}}-- }