1   PKIX1Algorithms88 { iso(1) identified-organization(3) dod(6)
2   internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
3   id-mod-pkix1-algorithms(17) }
4
5   DEFINITIONS EXPLICIT TAGS ::= BEGIN
6
7   -- EXPORTS All;
8
9   -- IMPORTS NONE;
10
11   --
12   --   One-way Hash Functions
13   --
14
15   md2  OBJECT IDENTIFIER ::= {
16     iso(1) member-body(2) us(840) rsadsi(113549)
17     digestAlgorithm(2) 2 }
18
19   md5  OBJECT IDENTIFIER ::= {
20     iso(1) member-body(2) us(840) rsadsi(113549)
21     digestAlgorithm(2) 5 }
22
23   id-sha1  OBJECT IDENTIFIER ::= {
24     iso(1) identified-organization(3) oiw(14) secsig(3)
25     algorithms(2) 26 }
26
27   --
28   --   DSA Keys and Signatures
29   --
30
31   -- OID for DSA public key
32
33   id-dsa OBJECT IDENTIFIER ::= {
34        iso(1) member-body(2) us(840) x9-57(10040) x9algorithm(4) 1 }
35
36   -- encoding for DSA public key
37
38   DSAPublicKey ::= INTEGER  -- public key, y
39
40   Dss-Parms  ::=  SEQUENCE  {
41      p             INTEGER,
42      q             INTEGER,
43      g             INTEGER  }
44
45   -- OID for DSA signature generated with SHA-1 hash
46
47   id-dsa-with-sha1 OBJECT IDENTIFIER ::=  {
48        iso(1) member-body(2) us(840) x9-57 (10040) x9algorithm(4) 3 }
49
50   -- encoding for DSA signature generated with SHA-1 hash
51
52   Dss-Sig-Value  ::=  SEQUENCE  {
53      r       INTEGER,
54      s       INTEGER  }
55
56   --
57   --   RSA Keys and Signatures
58   --
59
60   -- arc for RSA public key and RSA signature OIDs
61
62   pkcs-1 OBJECT IDENTIFIER ::= {
63         iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 1 }
64
65   -- OID for RSA public keys
66
67   rsaEncryption OBJECT IDENTIFIER ::=  { pkcs-1 1 }
68
69   -- OID for RSA signature generated with MD2 hash
70
71   md2WithRSAEncryption OBJECT IDENTIFIER  ::=  { pkcs-1 2 }
72
73   -- OID for RSA signature generated with MD5 hash
74
75   md5WithRSAEncryption OBJECT IDENTIFIER  ::=  { pkcs-1 4 }
76
77   -- OID for RSA signature generated with SHA-1 hash
78
79   sha1WithRSAEncryption OBJECT IDENTIFIER  ::=  { pkcs-1 5 }
80
81   -- encoding for RSA public key
82
83   RSAPublicKey ::= SEQUENCE {
84      modulus            INTEGER,    -- n
85      publicExponent     INTEGER  }  -- e
86
87   --
88   --   Diffie-Hellman Keys
89   --
90
91   dhpublicnumber OBJECT IDENTIFIER ::= {
92        iso(1) member-body(2) us(840) ansi-x942(10046)
93        number-type(2) 1 }
94
95   -- encoding for DSA public key
96
97   DHPublicKey ::= INTEGER  -- public key, y = g^x mod p
98
99   DomainParameters ::= SEQUENCE {
100      p       INTEGER,           -- odd prime, p=jq +1
101      g       INTEGER,           -- generator, g
102      q       INTEGER,           -- factor of p-1
103      j       INTEGER OPTIONAL,  -- subgroup factor, j>= 2
104      validationParms  ValidationParms OPTIONAL }
105
106   ValidationParms ::= SEQUENCE {
107      seed             BIT STRING,
108      pgenCounter      INTEGER }
109
110   --
111   --   KEA Keys
112   --
113
114   id-keyExchangeAlgorithm  OBJECT IDENTIFIER  ::=
115        { 2 16 840 1 101 2 1 1 22 }
116
117   KEA-Parms-Id ::= OCTET STRING
118
119   --
120   --   Elliptic Curve Keys, Signatures, and Curves
121   --
122
123   ansi-X9-62 OBJECT IDENTIFIER ::= {
124        iso(1) member-body(2) us(840) 10045 }
125
126   FieldID ::= SEQUENCE {                    -- Finite field
127      fieldType   OBJECT IDENTIFIER,
128      parameters  ANY DEFINED BY fieldType }
129
130   -- Arc for ECDSA signature OIDS
131
132   id-ecSigType OBJECT IDENTIFIER ::= { ansi-X9-62 signatures(4) }
133
134   -- OID for ECDSA signatures with SHA-1
135
136   ecdsa-with-SHA1 OBJECT IDENTIFIER ::= { id-ecSigType 1 }
137
138   -- OID for an elliptic curve signature
139   -- format for the value of an ECDSA signature value
140
141   ECDSA-Sig-Value ::= SEQUENCE {
142      r     INTEGER,
143      s     INTEGER }
144
145   -- recognized field type OIDs are defined in the following arc
146
147   id-fieldType OBJECT IDENTIFIER ::= { ansi-X9-62 fieldType(1) }
148
149   -- where fieldType is prime-field, the parameters are of type Prime-p
150
151   prime-field OBJECT IDENTIFIER ::= { id-fieldType 1 }
152
153   Prime-p ::= INTEGER -- Finite field F(p), where p is an odd prime
154
155   -- where fieldType is characteristic-two-field, the parameters are
156   -- of type Characteristic-two
157
158   characteristic-two-field OBJECT IDENTIFIER ::= { id-fieldType 2 }
159
160   Characteristic-two ::= SEQUENCE {
161      m           INTEGER,                   -- Field size 2^m
162      basis       OBJECT IDENTIFIER,
163      parameters  ANY DEFINED BY basis }
164
165   -- recognized basis type OIDs are defined in the following arc
166
167   id-characteristic-two-basis OBJECT IDENTIFIER ::= {
168        characteristic-two-field basisType(3) }
169
170   -- gnbasis is identified by OID gnBasis and indicates
171   -- parameters are NULL
172
173   gnBasis OBJECT IDENTIFIER ::= { id-characteristic-two-basis 1 }
174
175   -- parameters for this basis are NULL
176
177   -- trinomial basis is identified by OID tpBasis and indicates
178   -- parameters of type Pentanomial
179
180   tpBasis OBJECT IDENTIFIER ::= { id-characteristic-two-basis 2 }
181
182   -- Trinomial basis representation of F2^m
183   -- Integer k for reduction polynomial xm + xk + 1
184
185   Trinomial ::= INTEGER
186
187   -- for pentanomial basis is identified by OID ppBasis and indicates
188   -- parameters of type Pentanomial
189
190   ppBasis OBJECT IDENTIFIER ::= { id-characteristic-two-basis 3 }
191
192   -- Pentanomial basis representation of F2^m
193   -- reduction polynomial integers k1, k2, k3
194   -- f(x) = x**m + x**k3 + x**k2 + x**k1 + 1
195
196   Pentanomial ::= SEQUENCE {
197      k1  INTEGER,
198      k2  INTEGER,
199      k3  INTEGER }
200
201   -- The object identifiers gnBasis, tpBasis and ppBasis name
202   -- three kinds of basis for characteristic-two finite fields
203
204   FieldElement ::= OCTET STRING             -- Finite field element
205
206   ECPoint  ::= OCTET STRING                 -- Elliptic curve point
207
208   -- Elliptic Curve parameters may be specified explicitly,
209   -- specified implicitly through a "named curve", or
210   -- inherited from the CA
211
212   EcpkParameters ::= CHOICE {
213      ecParameters  ECParameters,
214      namedCurve    OBJECT IDENTIFIER,
215      implicitlyCA  NULL }
216
217   ECParameters  ::= SEQUENCE {         -- Elliptic curve parameters
218      version   ECPVer,
219      fieldID   FieldID,
220      curve     Curve,
221      base      ECPoint,                -- Base point G
222      order     INTEGER,                -- Order n of the base point
223      cofactor  INTEGER  OPTIONAL }     -- The integer h = #E(Fq)/n
224
225   ECPVer ::= INTEGER {ecpVer1(1)}
226
227   Curve  ::= SEQUENCE {
228      a     FieldElement,            -- Elliptic curve coefficient a
229      b     FieldElement,            -- Elliptic curve coefficient b
230      seed  BIT STRING  OPTIONAL }
231
232   id-publicKeyType OBJECT IDENTIFIER  ::= { ansi-X9-62 keyType(2) }
233
234   id-ecPublicKey OBJECT IDENTIFIER ::= { id-publicKeyType 1 }
235
236   -- Named Elliptic Curves in ANSI X9.62.
237
238   ellipticCurve OBJECT IDENTIFIER ::= { ansi-X9-62 curves(3) }
239
240   c-TwoCurve OBJECT IDENTIFIER ::= {
241        ellipticCurve characteristicTwo(0) }
242
243   c2pnb163v1  OBJECT IDENTIFIER  ::=  { c-TwoCurve  1 }
244   c2pnb163v2  OBJECT IDENTIFIER  ::=  { c-TwoCurve  2 }
245   c2pnb163v3  OBJECT IDENTIFIER  ::=  { c-TwoCurve  3 }
246   c2pnb176w1  OBJECT IDENTIFIER  ::=  { c-TwoCurve  4 }
247   c2tnb191v1  OBJECT IDENTIFIER  ::=  { c-TwoCurve  5 }
248   c2tnb191v2  OBJECT IDENTIFIER  ::=  { c-TwoCurve  6 }
249   c2tnb191v3  OBJECT IDENTIFIER  ::=  { c-TwoCurve  7 }
250   c2onb191v4  OBJECT IDENTIFIER  ::=  { c-TwoCurve  8 }
251   c2onb191v5  OBJECT IDENTIFIER  ::=  { c-TwoCurve  9 }
252   c2pnb208w1  OBJECT IDENTIFIER  ::=  { c-TwoCurve 10 }
253   c2tnb239v1  OBJECT IDENTIFIER  ::=  { c-TwoCurve 11 }
254   c2tnb239v2  OBJECT IDENTIFIER  ::=  { c-TwoCurve 12 }
255   c2tnb239v3  OBJECT IDENTIFIER  ::=  { c-TwoCurve 13 }
256   c2onb239v4  OBJECT IDENTIFIER  ::=  { c-TwoCurve 14 }
257   c2onb239v5  OBJECT IDENTIFIER  ::=  { c-TwoCurve 15 }
258   c2pnb272w1  OBJECT IDENTIFIER  ::=  { c-TwoCurve 16 }
259   c2pnb304w1  OBJECT IDENTIFIER  ::=  { c-TwoCurve 17 }
260   c2tnb359v1  OBJECT IDENTIFIER  ::=  { c-TwoCurve 18 }
261   c2pnb368w1  OBJECT IDENTIFIER  ::=  { c-TwoCurve 19 }
262   c2tnb431r1  OBJECT IDENTIFIER  ::=  { c-TwoCurve 20 }
263
264   primeCurve OBJECT IDENTIFIER ::= { ellipticCurve prime(1) }
265
266   prime192v1  OBJECT IDENTIFIER  ::=  { primeCurve  1 }
267   prime192v2  OBJECT IDENTIFIER  ::=  { primeCurve  2 }
268   prime192v3  OBJECT IDENTIFIER  ::=  { primeCurve  3 }
269   prime239v1  OBJECT IDENTIFIER  ::=  { primeCurve  4 }
270   prime239v2  OBJECT IDENTIFIER  ::=  { primeCurve  5 }
271   prime239v3  OBJECT IDENTIFIER  ::=  { primeCurve  6 }
272   prime256v1  OBJECT IDENTIFIER  ::=  { primeCurve  7 }
273
274   END
275