1-- Copyright 2022 The OpenSSL Project Authors. All Rights Reserved.
2--
3-- Licensed under the Apache License 2.0 (the "License").  You may not use
4-- this file except in compliance with the License.  You can obtain a copy
5-- in the file LICENSE in the source distribution or at
6-- https://www.openssl.org/source/license.html
7
8-- -------------------------------------------------------------------
9-- Taken from RFC 3279, 3  ASN.1 Module
10-- (https://www.rfc-editor.org/rfc/rfc3279.html#section-3)
11
12ansi-X9-62  OBJECT IDENTIFIER ::= {
13     iso(1) member-body(2) us(840) 10045 }
14
15-- Arc for ECDSA signature OIDS
16
17id-ecSigType OBJECT IDENTIFIER ::= { ansi-X9-62 signatures(4) }
18
19-- OID for ECDSA signatures with SHA-1
20
21ecdsa-with-SHA1 OBJECT IDENTIFIER ::= { id-ecSigType 1 }
22
23id-publicKeyType OBJECT IDENTIFIER  ::= { ansi-X9-62 keyType(2) }
24
25id-ecPublicKey OBJECT IDENTIFIER ::= { id-publicKeyType 1 }
26
27-- Named Elliptic Curves in ANSI X9.62.
28
29ellipticCurve OBJECT IDENTIFIER ::= { ansi-X9-62 curves(3) }
30
31c-TwoCurve OBJECT IDENTIFIER ::= {
32     ellipticCurve characteristicTwo(0) }
33
34c2pnb163v1  OBJECT IDENTIFIER  ::=  { c-TwoCurve  1 }
35c2pnb163v2  OBJECT IDENTIFIER  ::=  { c-TwoCurve  2 }
36c2pnb163v3  OBJECT IDENTIFIER  ::=  { c-TwoCurve  3 }
37c2pnb176w1  OBJECT IDENTIFIER  ::=  { c-TwoCurve  4 }
38c2tnb191v1  OBJECT IDENTIFIER  ::=  { c-TwoCurve  5 }
39c2tnb191v2  OBJECT IDENTIFIER  ::=  { c-TwoCurve  6 }
40c2tnb191v3  OBJECT IDENTIFIER  ::=  { c-TwoCurve  7 }
41c2onb191v4  OBJECT IDENTIFIER  ::=  { c-TwoCurve  8 }
42c2onb191v5  OBJECT IDENTIFIER  ::=  { c-TwoCurve  9 }
43c2pnb208w1  OBJECT IDENTIFIER  ::=  { c-TwoCurve 10 }
44c2tnb239v1  OBJECT IDENTIFIER  ::=  { c-TwoCurve 11 }
45c2tnb239v2  OBJECT IDENTIFIER  ::=  { c-TwoCurve 12 }
46c2tnb239v3  OBJECT IDENTIFIER  ::=  { c-TwoCurve 13 }
47c2onb239v4  OBJECT IDENTIFIER  ::=  { c-TwoCurve 14 }
48c2onb239v5  OBJECT IDENTIFIER  ::=  { c-TwoCurve 15 }
49c2pnb272w1  OBJECT IDENTIFIER  ::=  { c-TwoCurve 16 }
50c2pnb304w1  OBJECT IDENTIFIER  ::=  { c-TwoCurve 17 }
51c2tnb359v1  OBJECT IDENTIFIER  ::=  { c-TwoCurve 18 }
52c2pnb368w1  OBJECT IDENTIFIER  ::=  { c-TwoCurve 19 }
53c2tnb431r1  OBJECT IDENTIFIER  ::=  { c-TwoCurve 20 }
54
55primeCurve OBJECT IDENTIFIER ::= { ellipticCurve prime(1) }
56
57prime192v1  OBJECT IDENTIFIER  ::=  { primeCurve  1 }
58prime192v2  OBJECT IDENTIFIER  ::=  { primeCurve  2 }
59prime192v3  OBJECT IDENTIFIER  ::=  { primeCurve  3 }
60prime239v1  OBJECT IDENTIFIER  ::=  { primeCurve  4 }
61prime239v2  OBJECT IDENTIFIER  ::=  { primeCurve  5 }
62prime239v3  OBJECT IDENTIFIER  ::=  { primeCurve  6 }
63prime256v1  OBJECT IDENTIFIER  ::=  { primeCurve  7 }
64
65-- -------------------------------------------------------------------
66-- Taken from RFC 5758, 3.2.  ECDSA Signature Algorithm
67-- (https://www.rfc-editor.org/rfc/rfc5758.html#section-3.2)
68
69ecdsa-with-SHA224 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
70     us(840) ansi-X9-62(10045) signatures(4) ecdsa-with-SHA2(3) 1 }
71
72ecdsa-with-SHA256 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
73     us(840) ansi-X9-62(10045) signatures(4) ecdsa-with-SHA2(3) 2 }
74
75ecdsa-with-SHA384 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
76     us(840) ansi-X9-62(10045) signatures(4) ecdsa-with-SHA2(3) 3 }
77
78ecdsa-with-SHA512 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
79     us(840) ansi-X9-62(10045) signatures(4) ecdsa-with-SHA2(3) 4 }
80
81-- -------------------------------------------------------------------
82-- Taken from https://csrc.nist.gov/projects/computer-security-objects-register/algorithm-registration
83
84sigAlgs OBJECT IDENTIFIER ::= { 2 16 840 1 101 3 4 3 }
85
86id-ecdsa-with-sha3-224 OBJECT IDENTIFIER ::= { sigAlgs 9 }
87id-ecdsa-with-sha3-256 OBJECT IDENTIFIER ::= { sigAlgs 10 }
88id-ecdsa-with-sha3-384 OBJECT IDENTIFIER ::= { sigAlgs 11 }
89id-ecdsa-with-sha3-512 OBJECT IDENTIFIER ::= { sigAlgs 12 }
90
91