aboutsummaryrefslogtreecommitdiffstats
path: root/lib/asn1/test/asn1_SUITE_data/rfcs/PKCS-5.asn1
blob: 91b0dc36bf3307d7107b5ad7edb0da7ecfd4b8e6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
-- PKCS #5 v2.1 ASN.1 Module
-- Revised October 27, 2012

-- This module has been checked for conformance with the
-- ASN.1 standard by the OSS ASN.1 Tools

PKCS-5 {
    iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-5(5) modules(16)
	pkcs5v2-1(2)}

DEFINITIONS EXPLICIT TAGS ::=

BEGIN

-- ============================
--   Basic object identifiers
-- ============================

nistAlgorithms OBJECT IDENTIFIER ::=
  {joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) 4}
oiw    OBJECT IDENTIFIER ::= {iso(1) identified-organization(3) 14}
rsadsi OBJECT IDENTIFIER ::= {iso(1) member-body(2) us(840) 113549}
pkcs   OBJECT IDENTIFIER ::= {rsadsi 1}
pkcs-5 OBJECT IDENTIFIER ::= {pkcs 5}


-- ============================
-- Basic types and classes
-- ============================

AlgorithmIdentifier { ALGORITHM-IDENTIFIER:InfoObjectSet } ::= SEQUENCE {
  algorithm ALGORITHM-IDENTIFIER.&id({InfoObjectSet}),
  parameters ALGORITHM-IDENTIFIER.&Type({InfoObjectSet} {@algorithm}) OPTIONAL
}

ALGORITHM-IDENTIFIER ::= TYPE-IDENTIFIER


-- ============================
-- PBKDF2
-- ============================

PBKDF2Algorithms ALGORITHM-IDENTIFIER ::=
  { {PBKDF2-params IDENTIFIED BY id-PBKDF2}, ...}

id-PBKDF2 OBJECT IDENTIFIER ::= {pkcs-5 12}

algid-hmacWithSHA1 AlgorithmIdentifier {{PBKDF2-PRFs}} ::=
  {algorithm id-hmacWithSHA1, parameters NULL : NULL}

PBKDF2-params ::= SEQUENCE {
  salt CHOICE {
    specified OCTET STRING,
    otherSource AlgorithmIdentifier {{PBKDF2-SaltSources}}
  },
  iterationCount INTEGER (1..MAX),
  keyLength INTEGER (1..MAX) OPTIONAL,
  prf AlgorithmIdentifier {{PBKDF2-PRFs}} DEFAULT algid-hmacWithSHA1
}

PBKDF2-SaltSources ALGORITHM-IDENTIFIER ::= { ... }

PBKDF2-PRFs ALGORITHM-IDENTIFIER ::= {
  {NULL IDENTIFIED BY id-hmacWithSHA1}       |
  {NULL IDENTIFIED BY id-hmacWithSHA224}     |
  {NULL IDENTIFIED BY id-hmacWithSHA256}     |
  {NULL IDENTIFIED BY id-hmacWithSHA384}     |
  {NULL IDENTIFIED BY id-hmacWithSHA512}     |
  {NULL IDENTIFIED BY id-hmacWithSHA512-224} |
  {NULL IDENTIFIED BY id-hmacWithSHA512-256},
   ...
}


-- ============================
 -- PBES1
-- ============================

PBES1Algorithms ALGORITHM-IDENTIFIER ::= {
  {PBEParameter IDENTIFIED BY pbeWithMD2AndDES-CBC}  |
  {PBEParameter IDENTIFIED BY pbeWithMD2AndRC2-CBC}  |
  {PBEParameter IDENTIFIED BY pbeWithMD5AndDES-CBC}  |
  {PBEParameter IDENTIFIED BY pbeWithMD5AndRC2-CBC}  |
  {PBEParameter IDENTIFIED BY pbeWithSHA1AndDES-CBC} |
  {PBEParameter IDENTIFIED BY pbeWithSHA1AndRC2-CBC},
   ...
}

pbeWithMD2AndDES-CBC OBJECT IDENTIFIER ::= {pkcs-5 1}
pbeWithMD2AndRC2-CBC OBJECT IDENTIFIER ::= {pkcs-5 4}
pbeWithMD5AndDES-CBC OBJECT IDENTIFIER ::= {pkcs-5 3}
pbeWithMD5AndRC2-CBC OBJECT IDENTIFIER ::= {pkcs-5 6}
pbeWithSHA1AndDES-CBC OBJECT IDENTIFIER ::= {pkcs-5 10}
pbeWithSHA1AndRC2-CBC OBJECT IDENTIFIER ::= {pkcs-5 11}

PBEParameter ::= SEQUENCE {
  salt OCTET STRING (SIZE(8)),
  iterationCount INTEGER
}


-- ============================
-- PBES2
-- ============================

PBES2Algorithms ALGORITHM-IDENTIFIER ::= {
  {PBES2-params IDENTIFIED BY id-PBES2},
   ...
}

id-PBES2 OBJECT IDENTIFIER ::= {pkcs-5 13}

PBES2-params ::= SEQUENCE {
  keyDerivationFunc AlgorithmIdentifier {{PBES2-KDFs}},
  encryptionScheme AlgorithmIdentifier {{PBES2-Encs}}
}

PBES2-KDFs ALGORITHM-IDENTIFIER ::= {
  {PBKDF2-params IDENTIFIED BY id-PBKDF2},
   ...
}

PBES2-Encs ALGORITHM-IDENTIFIER ::= { ... }


-- ============================
-- PBMAC1
-- ============================

PBMAC1Algorithms ALGORITHM-IDENTIFIER ::= {
  {PBMAC1-params IDENTIFIED BY id-PBMAC1},
   ...
}

id-PBMAC1 OBJECT IDENTIFIER ::= {pkcs-5 14}

PBMAC1-params ::=  SEQUENCE {
  keyDerivationFunc AlgorithmIdentifier {{PBMAC1-KDFs}},
  messageAuthScheme AlgorithmIdentifier {{PBMAC1-MACs}}
}

PBMAC1-KDFs ALGORITHM-IDENTIFIER ::= {
  {PBKDF2-params IDENTIFIED BY id-PBKDF2},
   ...
}

PBMAC1-MACs ALGORITHM-IDENTIFIER ::= { ... }

-- ============================
-- Supporting techniques
-- ============================

digestAlgorithm OBJECT IDENTIFIER     ::= {rsadsi 2}
encryptionAlgorithm OBJECT IDENTIFIER ::= {rsadsi 3}

SupportingAlgorithms ALGORITHM-IDENTIFIER ::= {
  {NULL                    IDENTIFIED BY id-hmacWithSHA1} |
  {OCTET STRING (SIZE(8))  IDENTIFIED BY desCBC}          |
  {OCTET STRING (SIZE(8))  IDENTIFIED BY des-EDE3-CBC}    |
  {RC2-CBC-Parameter       IDENTIFIED BY rc2CBC}          |
  {RC5-CBC-Parameters      IDENTIFIED BY rc5-CBC-PAD}     |
  {OCTET STRING (SIZE(16)) IDENTIFIED BY aes128-CBC-PAD}  |
  {OCTET STRING (SIZE(16)) IDENTIFIED BY aes192-CBC-PAD}  |
  {OCTET STRING (SIZE(16)) IDENTIFIED BY aes256-CBC-PAD},
   ...
}

id-hmacWithSHA1       OBJECT IDENTIFIER ::= {digestAlgorithm 7}
id-hmacWithSHA224     OBJECT IDENTIFIER ::= {digestAlgorithm 8}
id-hmacWithSHA256     OBJECT IDENTIFIER ::= {digestAlgorithm 9}
id-hmacWithSHA384     OBJECT IDENTIFIER ::= {digestAlgorithm 10}
id-hmacWithSHA512     OBJECT IDENTIFIER ::= {digestAlgorithm 11}
id-hmacWithSHA512-224 OBJECT IDENTIFIER ::= {digestAlgorithm 12}
id-hmacWithSHA512-256 OBJECT IDENTIFIER ::= {digestAlgorithm 13}

-- from OIW
desCBC OBJECT IDENTIFIER ::= {oiw secsig(3) algorithms(2) 7}

des-EDE3-CBC OBJECT IDENTIFIER ::= {encryptionAlgorithm 7}

rc2CBC OBJECT IDENTIFIER ::= {encryptionAlgorithm 2}

RC2-CBC-Parameter ::= SEQUENCE {
  rc2ParameterVersion INTEGER OPTIONAL,
  iv OCTET STRING (SIZE(8))
}

rc5-CBC-PAD OBJECT IDENTIFIER ::= {encryptionAlgorithm 9}

RC5-CBC-Parameters ::= SEQUENCE {
  version INTEGER {v1-0(16)} (v1-0),
  rounds INTEGER (8..127),
  blockSizeInBits INTEGER (64 | 128),
  iv OCTET STRING OPTIONAL
}

aes OBJECT IDENTIFIER ::= { nistAlgorithms 1 }
aes128-CBC-PAD OBJECT IDENTIFIER ::= { aes 2 }
aes192-CBC-PAD OBJECT IDENTIFIER ::= { aes 22 }
aes256-CBC-PAD OBJECT IDENTIFIER ::= { aes 42 }

END