Introduced PKCS #5, PKCS #7, PKCS #8, PKCS #12 (it compiles, so let's ship it...)
[quick-der] / rfc / rfc2898.asn1
1    -- PKCS #5 v2.0 ASN.1 Module
2    -- Revised March 25, 1999
3
4    -- This module has been checked for conformance with the
5    -- ASN.1 standard by the OSS ASN.1 Tools
6
7    -- asn1ate: PKCS5v2-0 {iso(1) member-body(2) us(840) rsadsi(113549)
8    -- asn1ate:     pkcs(1) pkcs-5(5) modules(16) pkcs5v2-0(1)}
9    RFC2898
10
11    DEFINITIONS ::= BEGIN
12
13    -- Basic object identifiers
14
15    rsadsi OBJECT IDENTIFIER ::= {iso(1) member-body(2) us(840) 113549}
16    pkcs OBJECT IDENTIFIER ::= {rsadsi 1}
17
18    pkcs-5 OBJECT IDENTIFIER ::= {pkcs 5}
19
20    -- Basic types and classes
21
22    -- asn1ate: AlgorithmIdentifier { ALGORITHM-IDENTIFIER:InfoObjectSet } ::=
23    AlgorithmIdentifier ::=
24      SEQUENCE {
25        -- asn1ate: algorithm ALGORITHM-IDENTIFIER.&id({InfoObjectSet}),
26        -- asn1ate: parameters ALGORITHM-IDENTIFIER.&Type({InfoObjectSet}
27        -- asn1ate: {@algorithm}) OPTIONAL
28        algorithm OBJECT IDENTIFIER,
29        parameters ANY DEFINED BY algorithm OPTIONAL
30    }
31
32    -- asn1ate: ALGORITHM-IDENTIFIER ::= TYPE-IDENTIFIER
33
34    -- PBKDF2
35
36    -- asn1ate: PBKDF2Algorithms ALGORITHM-IDENTIFIER ::=
37    PBKDF2Algorithms ::=
38        -- asn1ate: { {PBKDF2-params IDENTIFIED BY id-PBKDF2}, ...}
39        ANY DEFINED BY id-PKKDF2
40
41    id-PBKDF2 OBJECT IDENTIFIER ::= {pkcs-5 12}
42
43    -- asn1ate: algid-hmacWithSHA1 AlgorithmIdentifier {{PBKDF2-PRFs}} ::=
44    -- asn1ate:     {algorithm id-hmacWithSHA1, parameters NULL : NULL}
45
46    PBKDF2-params ::= SEQUENCE {
47        salt CHOICE {
48          specified OCTET STRING,
49          -- asn1ate: otherSource AlgorithmIdentifier {{PBKDF2-SaltSources}}
50          otherSource AlgorithmIdentifier
51        },
52        iterationCount INTEGER (1..MAX),
53        keyLength INTEGER (1..MAX) OPTIONAL,
54        -- asn1ate: prf AlgorithmIdentifier {{PBKDF2-PRFs}} DEFAULT
55        prf AlgorithmIdentifier DEFAULT
56        algid-hmacWithSHA1
57    }
58
59    -- asn1ate: PBKDF2-SaltSources ALGORITHM-IDENTIFIER ::= { ... }
60
61    -- asn1ate: PBKDF2-PRFs ALGORITHM-IDENTIFIER ::=
62    -- asn1ate:     { {NULL IDENTIFIED BY id-hmacWithSHA1}, ... }
63
64    -- PBES1
65
66
67    -- asn1ate: PBES1Algorithms ALGORITHM-IDENTIFIER ::= {
68    -- asn1ate:     {PBEParameter IDENTIFIED BY pbeWithMD2AndDES-CBC}  |
69    -- asn1ate:     {PBEParameter IDENTIFIED BY pbeWithMD2AndRC2-CBC}  |
70    -- asn1ate:     {PBEParameter IDENTIFIED BY pbeWithMD5AndDES-CBC}  |
71    -- asn1ate:     {PBEParameter IDENTIFIED BY pbeWithMD5AndRC2-CBC}  |
72    -- asn1ate:     {PBEParameter IDENTIFIED BY pbeWithSHA1AndDES-CBC} |
73    -- asn1ate:     {PBEParameter IDENTIFIED BY pbeWithSHA1AndRC2-CBC},
74    -- asn1ate:     ...
75    -- asn1ate: }
76
77    pbeWithMD2AndDES-CBC OBJECT IDENTIFIER ::= {pkcs-5 1}
78    pbeWithMD2AndRC2-CBC OBJECT IDENTIFIER ::= {pkcs-5 4}
79    pbeWithMD5AndDES-CBC OBJECT IDENTIFIER ::= {pkcs-5 3}
80    pbeWithMD5AndRC2-CBC OBJECT IDENTIFIER ::= {pkcs-5 6}
81    pbeWithSHA1AndDES-CBC OBJECT IDENTIFIER ::= {pkcs-5 10}
82    pbeWithSHA1AndRC2-CBC OBJECT IDENTIFIER ::= {pkcs-5 11}
83
84    PBEParameter ::= SEQUENCE {
85        salt OCTET STRING (SIZE(8)),
86        iterationCount INTEGER
87    }
88
89    -- PBES2
90
91    -- asn1ate: PBES2Algorithms ALGORITHM-IDENTIFIER ::=
92    -- asn1ate:     { {PBES2-params IDENTIFIED BY id-PBES2}, ...}
93
94    id-PBES2 OBJECT IDENTIFIER ::= {pkcs-5 13}
95
96    PBES2-params ::= SEQUENCE {
97        -- asn1ate: keyDerivationFunc AlgorithmIdentifier {{PBES2-KDFs}},
98        -- asn1ate: encryptionScheme AlgorithmIdentifier {{PBES2-Encs}}
99        keyDerivationFunc AlgorithmIdentifier,
100        encryptionScheme AlgorithmIdentifier
101    }
102
103    -- asn1ate: PBES2-KDFs ALGORITHM-IDENTIFIER ::=
104    -- asn1ate:     { {PBKDF2-params IDENTIFIED BY id-PBKDF2}, ... }
105
106    -- asn1ate: PBES2-Encs ALGORITHM-IDENTIFIER ::= { ... }
107
108    -- PBMAC1
109
110    -- asn1ate: PBMAC1Algorithms ALGORITHM-IDENTIFIER ::=
111    -- asn1ate:     { {PBMAC1-params IDENTIFIED BY id-PBMAC1}, ...}
112
113    id-PBMAC1 OBJECT IDENTIFIER ::= {pkcs-5 14}
114
115    PBMAC1-params ::=  SEQUENCE {
116        -- asn1ate: keyDerivationFunc AlgorithmIdentifier {{PBMAC1-KDFs}},
117        -- asn1ate: messageAuthScheme AlgorithmIdentifier {{PBMAC1-MACs}}
118        keyDerivationFunc AlgorithmIdentifier,
119        messageAuthScheme AlgorithmIdentifier
120    }
121
122    -- asn1ate: PBMAC1-KDFs ALGORITHM-IDENTIFIER ::=
123    -- asn1ate:     { {PBKDF2-params IDENTIFIED BY id-PBKDF2}, ... }
124
125    -- asn1ate: PBMAC1-MACs ALGORITHM-IDENTIFIER ::= { ... }
126
127    -- Supporting techniques
128
129    digestAlgorithm OBJECT IDENTIFIER     ::= {rsadsi 2}
130    encryptionAlgorithm OBJECT IDENTIFIER ::= {rsadsi 3}
131
132    -- asn1ate: SupportingAlgorithms ALGORITHM-IDENTIFIER ::= {
133    -- asn1ate:     {NULL IDENTIFIED BY id-hmacWithSHA1} |
134    -- asn1ate:     {OCTET STRING (SIZE(8)) IDENTIFIED BY desCBC} |
135    -- asn1ate:     {OCTET STRING (SIZE(8)) IDENTIFIED BY des-EDE3-CBC} |
136    -- asn1ate:     {RC2-CBC-Parameter IDENTIFIED BY rc2CBC} |
137    -- asn1ate:     {RC5-CBC-Parameters IDENTIFIED BY rc5-CBC-PAD},
138    -- asn1ate:     ...
139    -- asn1ate: }
140
141    id-hmacWithSHA1 OBJECT IDENTIFIER ::= {digestAlgorithm 7}
142
143    desCBC OBJECT IDENTIFIER ::=
144        {iso(1) identified-organization(3) oiw(14) secsig(3)
145         algorithms(2) 7} -- from OIW
146
147    des-EDE3-CBC OBJECT IDENTIFIER ::= {encryptionAlgorithm 7}
148
149    rc2CBC OBJECT IDENTIFIER ::= {encryptionAlgorithm 2}
150
151    RC2-CBC-Parameter ::= SEQUENCE {
152        rc2ParameterVersion INTEGER OPTIONAL,
153        iv OCTET STRING (SIZE(8))
154    }
155
156    rc5-CBC-PAD OBJECT IDENTIFIER ::= {encryptionAlgorithm 9}
157
158    RC5-CBC-Parameters ::= SEQUENCE {
159        -- asn1ate: version INTEGER {v1-0(16)} (v1-0),
160        version INTEGER,
161        rounds INTEGER (8..127),
162        -- asn1ate: blockSizeInBits INTEGER (64 | 128),
163        blockSizeInBits INTEGER,
164        iv OCTET STRING OPTIONAL
165    }
166
167    END