Coverage Report

Created: 2026-10-13 06:31

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/botan/src/lib/asn1/oid_maps.cpp
Line
Count
Source
1
/*
2
* OID maps
3
*
4
* This file was automatically generated by ./src/scripts/dev_tools/gen_oids.py on 2025-04-27
5
*
6
* All manual edits to this file will be lost. Edit the script
7
* then regenerate this source file.
8
*
9
* Botan is released under the Simplified BSD License (see license.txt)
10
*/
11
12
#include <botan/internal/oid_map.h>
13
#include <unordered_map>
14
15
namespace Botan {
16
17
namespace {
18
19
4
std::vector<std::pair<const char*, std::vector<uint32_t>>> oid_maps() {
20
   // clang-format off
21
4
   return {
22
4
      {"AES-128/CBC", {2, 16, 840, 1, 101, 3, 4, 1, 2}},
23
4
      {"AES-128/CCM", {2, 16, 840, 1, 101, 3, 4, 1, 7}},
24
4
      {"AES-128/GCM", {2, 16, 840, 1, 101, 3, 4, 1, 6}},
25
4
      {"AES-128/OCB", {1, 3, 6, 1, 4, 1, 25258, 3, 2, 1}},
26
4
      {"AES-128/SIV", {1, 3, 6, 1, 4, 1, 25258, 3, 4, 1}},
27
4
      {"AES-192/CBC", {2, 16, 840, 1, 101, 3, 4, 1, 22}},
28
4
      {"AES-192/CCM", {2, 16, 840, 1, 101, 3, 4, 1, 27}},
29
4
      {"AES-192/GCM", {2, 16, 840, 1, 101, 3, 4, 1, 26}},
30
4
      {"AES-192/OCB", {1, 3, 6, 1, 4, 1, 25258, 3, 2, 2}},
31
4
      {"AES-192/SIV", {1, 3, 6, 1, 4, 1, 25258, 3, 4, 2}},
32
4
      {"AES-256/CBC", {2, 16, 840, 1, 101, 3, 4, 1, 42}},
33
4
      {"AES-256/CCM", {2, 16, 840, 1, 101, 3, 4, 1, 47}},
34
4
      {"AES-256/GCM", {2, 16, 840, 1, 101, 3, 4, 1, 46}},
35
4
      {"AES-256/OCB", {1, 3, 6, 1, 4, 1, 25258, 3, 2, 3}},
36
4
      {"AES-256/SIV", {1, 3, 6, 1, 4, 1, 25258, 3, 4, 3}},
37
4
      {"CAST-128/CBC", {1, 2, 840, 113533, 7, 66, 10}},
38
4
      {"Camellia-128/CBC", {1, 2, 392, 200011, 61, 1, 1, 1, 2}},
39
4
      {"Camellia-128/GCM", {0, 3, 4401, 5, 3, 1, 9, 6}},
40
4
      {"Camellia-128/OCB", {1, 3, 6, 1, 4, 1, 25258, 3, 2, 6}},
41
4
      {"Camellia-128/SIV", {1, 3, 6, 1, 4, 1, 25258, 3, 4, 6}},
42
4
      {"Camellia-192/CBC", {1, 2, 392, 200011, 61, 1, 1, 1, 3}},
43
4
      {"Camellia-192/GCM", {0, 3, 4401, 5, 3, 1, 9, 26}},
44
4
      {"Camellia-192/OCB", {1, 3, 6, 1, 4, 1, 25258, 3, 2, 7}},
45
4
      {"Camellia-192/SIV", {1, 3, 6, 1, 4, 1, 25258, 3, 4, 7}},
46
4
      {"Camellia-256/CBC", {1, 2, 392, 200011, 61, 1, 1, 1, 4}},
47
4
      {"Camellia-256/GCM", {0, 3, 4401, 5, 3, 1, 9, 46}},
48
4
      {"Camellia-256/OCB", {1, 3, 6, 1, 4, 1, 25258, 3, 2, 8}},
49
4
      {"Camellia-256/SIV", {1, 3, 6, 1, 4, 1, 25258, 3, 4, 8}},
50
4
      {"Certificate Comment", {2, 16, 840, 1, 113730, 1, 13}},
51
4
      {"ChaCha20Poly1305", {1, 2, 840, 113549, 1, 9, 16, 3, 18}},
52
4
      {"ClassicMcEliece_348864", {1, 3, 6, 1, 4, 1, 22554, 5, 1, 1}},
53
4
      {"ClassicMcEliece_348864f", {1, 3, 6, 1, 4, 1, 22554, 5, 1, 2}},
54
4
      {"ClassicMcEliece_460896", {1, 3, 6, 1, 4, 1, 22554, 5, 1, 3}},
55
4
      {"ClassicMcEliece_460896f", {1, 3, 6, 1, 4, 1, 22554, 5, 1, 4}},
56
4
      {"ClassicMcEliece_6688128", {1, 3, 6, 1, 4, 1, 22554, 5, 1, 5}},
57
4
      {"ClassicMcEliece_6688128f", {1, 3, 6, 1, 4, 1, 22554, 5, 1, 6}},
58
4
      {"ClassicMcEliece_6688128pc", {1, 3, 6, 1, 4, 1, 25258, 1, 18, 1}},
59
4
      {"ClassicMcEliece_6688128pcf", {1, 3, 6, 1, 4, 1, 25258, 1, 18, 2}},
60
4
      {"ClassicMcEliece_6960119", {1, 3, 6, 1, 4, 1, 22554, 5, 1, 7}},
61
4
      {"ClassicMcEliece_6960119f", {1, 3, 6, 1, 4, 1, 22554, 5, 1, 8}},
62
4
      {"ClassicMcEliece_6960119pc", {1, 3, 6, 1, 4, 1, 25258, 1, 18, 3}},
63
4
      {"ClassicMcEliece_6960119pcf", {1, 3, 6, 1, 4, 1, 25258, 1, 18, 4}},
64
4
      {"ClassicMcEliece_8192128", {1, 3, 6, 1, 4, 1, 22554, 5, 1, 9}},
65
4
      {"ClassicMcEliece_8192128f", {1, 3, 6, 1, 4, 1, 22554, 5, 1, 10}},
66
4
      {"ClassicMcEliece_8192128pc", {1, 3, 6, 1, 4, 1, 25258, 1, 18, 5}},
67
4
      {"ClassicMcEliece_8192128pcf", {1, 3, 6, 1, 4, 1, 25258, 1, 18, 6}},
68
4
      {"Compression.Zlib", {1, 2, 840, 113549, 1, 9, 16, 3, 8}},
69
4
      {"DES/CBC", {1, 3, 14, 3, 2, 7}},
70
4
      {"DH", {1, 2, 840, 10046, 2, 1}},
71
4
      {"DSA", {1, 2, 840, 10040, 4, 1}},
72
4
      {"DSA/SHA-1", {1, 2, 840, 10040, 4, 3}},
73
4
      {"DSA/SHA-224", {2, 16, 840, 1, 101, 3, 4, 3, 1}},
74
4
      {"DSA/SHA-256", {2, 16, 840, 1, 101, 3, 4, 3, 2}},
75
4
      {"DSA/SHA-3(224)", {2, 16, 840, 1, 101, 3, 4, 3, 5}},
76
4
      {"DSA/SHA-3(256)", {2, 16, 840, 1, 101, 3, 4, 3, 6}},
77
4
      {"DSA/SHA-3(384)", {2, 16, 840, 1, 101, 3, 4, 3, 7}},
78
4
      {"DSA/SHA-3(512)", {2, 16, 840, 1, 101, 3, 4, 3, 8}},
79
4
      {"DSA/SHA-384", {2, 16, 840, 1, 101, 3, 4, 3, 3}},
80
4
      {"DSA/SHA-512", {2, 16, 840, 1, 101, 3, 4, 3, 4}},
81
4
      {"Dilithium-4x4-AES-r3", {1, 3, 6, 1, 4, 1, 25258, 1, 10, 1}},
82
4
      {"Dilithium-4x4-r3", {1, 3, 6, 1, 4, 1, 25258, 1, 9, 1}},
83
4
      {"Dilithium-6x5-AES-r3", {1, 3, 6, 1, 4, 1, 25258, 1, 10, 2}},
84
4
      {"Dilithium-6x5-r3", {1, 3, 6, 1, 4, 1, 25258, 1, 9, 2}},
85
4
      {"Dilithium-8x7-AES-r3", {1, 3, 6, 1, 4, 1, 25258, 1, 10, 3}},
86
4
      {"Dilithium-8x7-r3", {1, 3, 6, 1, 4, 1, 25258, 1, 9, 3}},
87
4
      {"ECDH", {1, 3, 132, 1, 12}},
88
4
      {"ECDSA", {1, 2, 840, 10045, 2, 1}},
89
4
      {"ECDSA/SHA-1", {1, 2, 840, 10045, 4, 1}},
90
4
      {"ECDSA/SHA-224", {1, 2, 840, 10045, 4, 3, 1}},
91
4
      {"ECDSA/SHA-256", {1, 2, 840, 10045, 4, 3, 2}},
92
4
      {"ECDSA/SHA-3(224)", {2, 16, 840, 1, 101, 3, 4, 3, 9}},
93
4
      {"ECDSA/SHA-3(256)", {2, 16, 840, 1, 101, 3, 4, 3, 10}},
94
4
      {"ECDSA/SHA-3(384)", {2, 16, 840, 1, 101, 3, 4, 3, 11}},
95
4
      {"ECDSA/SHA-3(512)", {2, 16, 840, 1, 101, 3, 4, 3, 12}},
96
4
      {"ECDSA/SHA-384", {1, 2, 840, 10045, 4, 3, 3}},
97
4
      {"ECDSA/SHA-512", {1, 2, 840, 10045, 4, 3, 4}},
98
4
      {"ECGDSA", {1, 3, 36, 3, 3, 2, 5, 2, 1}},
99
4
      {"ECGDSA/RIPEMD-160", {1, 3, 36, 3, 3, 2, 5, 4, 1}},
100
4
      {"ECGDSA/SHA-1", {1, 3, 36, 3, 3, 2, 5, 4, 2}},
101
4
      {"ECGDSA/SHA-224", {1, 3, 36, 3, 3, 2, 5, 4, 3}},
102
4
      {"ECGDSA/SHA-256", {1, 3, 36, 3, 3, 2, 5, 4, 4}},
103
4
      {"ECGDSA/SHA-384", {1, 3, 36, 3, 3, 2, 5, 4, 5}},
104
4
      {"ECGDSA/SHA-512", {1, 3, 36, 3, 3, 2, 5, 4, 6}},
105
4
      {"ECKCDSA", {1, 0, 14888, 3, 0, 5}},
106
4
      {"ECKCDSA/SHA-1", {1, 2, 410, 200004, 1, 100, 4, 3}},
107
4
      {"ECKCDSA/SHA-224", {1, 2, 410, 200004, 1, 100, 4, 4}},
108
4
      {"ECKCDSA/SHA-256", {1, 2, 410, 200004, 1, 100, 4, 5}},
109
4
      {"Ed25519", {1, 3, 101, 112}},
110
4
      {"Ed448", {1, 3, 101, 113}},
111
4
      {"ElGamal", {1, 3, 6, 1, 4, 1, 3029, 1, 2, 1}},
112
4
      {"FrodoKEM-1344-AES", {1, 3, 6, 1, 4, 1, 25258, 1, 15, 3}},
113
4
      {"FrodoKEM-1344-SHAKE", {1, 3, 6, 1, 4, 1, 25258, 1, 14, 3}},
114
4
      {"FrodoKEM-640-AES", {1, 3, 6, 1, 4, 1, 25258, 1, 15, 1}},
115
4
      {"FrodoKEM-640-SHAKE", {1, 3, 6, 1, 4, 1, 25258, 1, 14, 1}},
116
4
      {"FrodoKEM-976-AES", {1, 3, 6, 1, 4, 1, 25258, 1, 15, 2}},
117
4
      {"FrodoKEM-976-SHAKE", {1, 3, 6, 1, 4, 1, 25258, 1, 14, 2}},
118
4
      {"GOST-34.10", {1, 2, 643, 2, 2, 19}},
119
4
      {"GOST-34.10-2012-256", {1, 2, 643, 7, 1, 1, 1, 1}},
120
4
      {"GOST-34.10-2012-256/SHA-256", {1, 3, 6, 1, 4, 1, 25258, 1, 6, 1}},
121
4
      {"GOST-34.10-2012-256/Streebog-256", {1, 2, 643, 7, 1, 1, 3, 2}},
122
4
      {"GOST-34.10-2012-512", {1, 2, 643, 7, 1, 1, 1, 2}},
123
4
      {"GOST-34.10-2012-512/Streebog-512", {1, 2, 643, 7, 1, 1, 3, 3}},
124
4
      {"GOST-34.10/GOST-R-34.11-94", {1, 2, 643, 2, 2, 3}},
125
4
      {"GOST.INN", {1, 2, 643, 3, 131, 1, 1}},
126
4
      {"GOST.IssuerSigningTool", {1, 2, 643, 100, 112}},
127
4
      {"GOST.OGRN", {1, 2, 643, 100, 1}},
128
4
      {"GOST.SubjectSigningTool", {1, 2, 643, 100, 111}},
129
4
      {"HMAC(SHA-1)", {1, 2, 840, 113549, 2, 7}},
130
4
      {"HMAC(SHA-224)", {1, 2, 840, 113549, 2, 8}},
131
4
      {"HMAC(SHA-256)", {1, 2, 840, 113549, 2, 9}},
132
4
      {"HMAC(SHA-384)", {1, 2, 840, 113549, 2, 10}},
133
4
      {"HMAC(SHA-512)", {1, 2, 840, 113549, 2, 11}},
134
4
      {"HMAC(SHA-512-256)", {1, 2, 840, 113549, 2, 13}},
135
4
      {"HSS-LMS", {1, 2, 840, 113549, 1, 9, 16, 3, 17}},
136
4
      {"HSS-LMS-Private-Key", {1, 3, 6, 1, 4, 1, 25258, 1, 13}},
137
4
      {"KeyWrap.AES-128", {2, 16, 840, 1, 101, 3, 4, 1, 5}},
138
4
      {"KeyWrap.AES-192", {2, 16, 840, 1, 101, 3, 4, 1, 25}},
139
4
      {"KeyWrap.AES-256", {2, 16, 840, 1, 101, 3, 4, 1, 45}},
140
4
      {"KeyWrap.CAST-128", {1, 2, 840, 113533, 7, 66, 15}},
141
4
      {"KeyWrap.TripleDES", {1, 2, 840, 113549, 1, 9, 16, 3, 6}},
142
4
      {"Kyber-1024-90s-r3", {1, 3, 6, 1, 4, 1, 25258, 1, 11, 3}},
143
4
      {"Kyber-1024-r3", {1, 3, 6, 1, 4, 1, 25258, 1, 7, 3}},
144
4
      {"Kyber-512-90s-r3", {1, 3, 6, 1, 4, 1, 25258, 1, 11, 1}},
145
4
      {"Kyber-512-r3", {1, 3, 6, 1, 4, 1, 25258, 1, 7, 1}},
146
4
      {"Kyber-768-90s-r3", {1, 3, 6, 1, 4, 1, 25258, 1, 11, 2}},
147
4
      {"Kyber-768-r3", {1, 3, 6, 1, 4, 1, 25258, 1, 7, 2}},
148
4
      {"MD5", {1, 2, 840, 113549, 2, 5}},
149
4
      {"MGF1", {1, 2, 840, 113549, 1, 1, 8}},
150
4
      {"ML-DSA-4x4", {2, 16, 840, 1, 101, 3, 4, 3, 17}},
151
4
      {"ML-DSA-6x5", {2, 16, 840, 1, 101, 3, 4, 3, 18}},
152
4
      {"ML-DSA-8x7", {2, 16, 840, 1, 101, 3, 4, 3, 19}},
153
4
      {"ML-KEM-1024", {2, 16, 840, 1, 101, 3, 4, 4, 3}},
154
4
      {"ML-KEM-512", {2, 16, 840, 1, 101, 3, 4, 4, 1}},
155
4
      {"ML-KEM-768", {2, 16, 840, 1, 101, 3, 4, 4, 2}},
156
4
      {"McEliece", {1, 3, 6, 1, 4, 1, 25258, 1, 3}},
157
4
      {"Microsoft SmartcardLogon", {1, 3, 6, 1, 4, 1, 311, 20, 2, 2}},
158
4
      {"Microsoft UPN", {1, 3, 6, 1, 4, 1, 311, 20, 2, 3}},
159
4
      {"OpenPGP.Curve25519", {1, 3, 6, 1, 4, 1, 3029, 1, 5, 1}},
160
4
      {"OpenPGP.Ed25519", {1, 3, 6, 1, 4, 1, 11591, 15, 1}},
161
4
      {"PBE-PKCS5v20", {1, 2, 840, 113549, 1, 5, 13}},
162
4
      {"PKCS5.PBKDF2", {1, 2, 840, 113549, 1, 5, 12}},
163
4
      {"PKCS9.ChallengePassword", {1, 2, 840, 113549, 1, 9, 7}},
164
4
      {"PKCS9.ContentType", {1, 2, 840, 113549, 1, 9, 3}},
165
4
      {"PKCS9.EmailAddress", {1, 2, 840, 113549, 1, 9, 1}},
166
4
      {"PKCS9.ExtensionRequest", {1, 2, 840, 113549, 1, 9, 14}},
167
4
      {"PKCS9.MessageDigest", {1, 2, 840, 113549, 1, 9, 4}},
168
4
      {"PKCS9.UnstructuredName", {1, 2, 840, 113549, 1, 9, 2}},
169
4
      {"PKIX.AuthorityInformationAccess", {1, 3, 6, 1, 5, 5, 7, 1, 1}},
170
4
      {"PKIX.CertificateAuthorityIssuers", {1, 3, 6, 1, 5, 5, 7, 48, 2}},
171
4
      {"PKIX.ClientAuth", {1, 3, 6, 1, 5, 5, 7, 3, 2}},
172
4
      {"PKIX.CodeSigning", {1, 3, 6, 1, 5, 5, 7, 3, 3}},
173
4
      {"PKIX.EmailProtection", {1, 3, 6, 1, 5, 5, 7, 3, 4}},
174
4
      {"PKIX.IPsecEndSystem", {1, 3, 6, 1, 5, 5, 7, 3, 5}},
175
4
      {"PKIX.IPsecTunnel", {1, 3, 6, 1, 5, 5, 7, 3, 6}},
176
4
      {"PKIX.IPsecUser", {1, 3, 6, 1, 5, 5, 7, 3, 7}},
177
4
      {"PKIX.OCSP", {1, 3, 6, 1, 5, 5, 7, 48, 1}},
178
4
      {"PKIX.OCSP.BasicResponse", {1, 3, 6, 1, 5, 5, 7, 48, 1, 1}},
179
4
      {"PKIX.OCSP.NoCheck", {1, 3, 6, 1, 5, 5, 7, 48, 1, 5}},
180
4
      {"PKIX.OCSPSigning", {1, 3, 6, 1, 5, 5, 7, 3, 9}},
181
4
      {"PKIX.ServerAuth", {1, 3, 6, 1, 5, 5, 7, 3, 1}},
182
4
      {"PKIX.TNAuthList", {1, 3, 6, 1, 5, 5, 7, 1, 26}},
183
4
      {"PKIX.TimeStamping", {1, 3, 6, 1, 5, 5, 7, 3, 8}},
184
4
      {"PKIX.XMPPAddr", {1, 3, 6, 1, 5, 5, 7, 8, 5}},
185
4
      {"RIPEMD-160", {1, 3, 36, 3, 2, 1}},
186
4
      {"RSA", {1, 2, 840, 113549, 1, 1, 1}},
187
4
      {"RSA/OAEP", {1, 2, 840, 113549, 1, 1, 7}},
188
4
      {"RSA/PKCS1v15(MD2)", {1, 2, 840, 113549, 1, 1, 2}},
189
4
      {"RSA/PKCS1v15(MD5)", {1, 2, 840, 113549, 1, 1, 4}},
190
4
      {"RSA/PKCS1v15(RIPEMD-160)", {1, 3, 36, 3, 3, 1, 2}},
191
4
      {"RSA/PKCS1v15(SHA-1)", {1, 2, 840, 113549, 1, 1, 5}},
192
4
      {"RSA/PKCS1v15(SHA-224)", {1, 2, 840, 113549, 1, 1, 14}},
193
4
      {"RSA/PKCS1v15(SHA-256)", {1, 2, 840, 113549, 1, 1, 11}},
194
4
      {"RSA/PKCS1v15(SHA-3(224))", {2, 16, 840, 1, 101, 3, 4, 3, 13}},
195
4
      {"RSA/PKCS1v15(SHA-3(256))", {2, 16, 840, 1, 101, 3, 4, 3, 14}},
196
4
      {"RSA/PKCS1v15(SHA-3(384))", {2, 16, 840, 1, 101, 3, 4, 3, 15}},
197
4
      {"RSA/PKCS1v15(SHA-3(512))", {2, 16, 840, 1, 101, 3, 4, 3, 16}},
198
4
      {"RSA/PKCS1v15(SHA-384)", {1, 2, 840, 113549, 1, 1, 12}},
199
4
      {"RSA/PKCS1v15(SHA-512)", {1, 2, 840, 113549, 1, 1, 13}},
200
4
      {"RSA/PKCS1v15(SHA-512-256)", {1, 2, 840, 113549, 1, 1, 16}},
201
4
      {"RSA/PKCS1v15(SM3)", {1, 2, 156, 10197, 1, 504}},
202
4
      {"RSA/PSS", {1, 2, 840, 113549, 1, 1, 10}},
203
4
      {"SEED/CBC", {1, 2, 410, 200004, 1, 4}},
204
4
      {"SHA-1", {1, 3, 14, 3, 2, 26}},
205
4
      {"SHA-224", {2, 16, 840, 1, 101, 3, 4, 2, 4}},
206
4
      {"SHA-256", {2, 16, 840, 1, 101, 3, 4, 2, 1}},
207
4
      {"SHA-3(224)", {2, 16, 840, 1, 101, 3, 4, 2, 7}},
208
4
      {"SHA-3(256)", {2, 16, 840, 1, 101, 3, 4, 2, 8}},
209
4
      {"SHA-3(384)", {2, 16, 840, 1, 101, 3, 4, 2, 9}},
210
4
      {"SHA-3(512)", {2, 16, 840, 1, 101, 3, 4, 2, 10}},
211
4
      {"SHA-384", {2, 16, 840, 1, 101, 3, 4, 2, 2}},
212
4
      {"SHA-512", {2, 16, 840, 1, 101, 3, 4, 2, 3}},
213
4
      {"SHA-512-256", {2, 16, 840, 1, 101, 3, 4, 2, 6}},
214
4
      {"SHAKE-128", {2, 16, 840, 1, 101, 3, 4, 2, 11}},
215
4
      {"SHAKE-256", {2, 16, 840, 1, 101, 3, 4, 2, 12}},
216
4
      {"SLH-DSA-SHA2-128f", {2, 16, 840, 1, 101, 3, 4, 3, 21}},
217
4
      {"SLH-DSA-SHA2-128s", {2, 16, 840, 1, 101, 3, 4, 3, 20}},
218
4
      {"SLH-DSA-SHA2-192f", {2, 16, 840, 1, 101, 3, 4, 3, 23}},
219
4
      {"SLH-DSA-SHA2-192s", {2, 16, 840, 1, 101, 3, 4, 3, 22}},
220
4
      {"SLH-DSA-SHA2-256f", {2, 16, 840, 1, 101, 3, 4, 3, 25}},
221
4
      {"SLH-DSA-SHA2-256s", {2, 16, 840, 1, 101, 3, 4, 3, 24}},
222
4
      {"SLH-DSA-SHAKE-128f", {2, 16, 840, 1, 101, 3, 4, 3, 27}},
223
4
      {"SLH-DSA-SHAKE-128s", {2, 16, 840, 1, 101, 3, 4, 3, 26}},
224
4
      {"SLH-DSA-SHAKE-192f", {2, 16, 840, 1, 101, 3, 4, 3, 29}},
225
4
      {"SLH-DSA-SHAKE-192s", {2, 16, 840, 1, 101, 3, 4, 3, 28}},
226
4
      {"SLH-DSA-SHAKE-256f", {2, 16, 840, 1, 101, 3, 4, 3, 31}},
227
4
      {"SLH-DSA-SHAKE-256s", {2, 16, 840, 1, 101, 3, 4, 3, 30}},
228
4
      {"SM2", {1, 2, 156, 10197, 1, 301, 1}},
229
4
      {"SM2_Enc", {1, 2, 156, 10197, 1, 301, 3}},
230
4
      {"SM2_Kex", {1, 2, 156, 10197, 1, 301, 2}},
231
4
      {"SM2_Sig/SM3", {1, 2, 156, 10197, 1, 501}},
232
4
      {"SM3", {1, 2, 156, 10197, 1, 401}},
233
4
      {"SM4/CBC", {1, 2, 156, 10197, 1, 104, 2}},
234
4
      {"SM4/GCM", {1, 2, 156, 10197, 1, 104, 8}},
235
4
      {"SM4/OCB", {1, 2, 156, 10197, 1, 104, 100}},
236
4
      {"SM4/SIV", {1, 3, 6, 1, 4, 1, 25258, 3, 4, 9}},
237
4
      {"Scrypt", {1, 3, 6, 1, 4, 1, 11591, 4, 11}},
238
4
      {"Serpent/CBC", {1, 3, 6, 1, 4, 1, 25258, 3, 1}},
239
4
      {"Serpent/GCM", {1, 3, 6, 1, 4, 1, 25258, 3, 101}},
240
4
      {"Serpent/OCB", {1, 3, 6, 1, 4, 1, 25258, 3, 2, 4}},
241
4
      {"Serpent/SIV", {1, 3, 6, 1, 4, 1, 25258, 3, 4, 4}},
242
4
      {"SphincsPlus-haraka-128f-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 3, 2}},
243
4
      {"SphincsPlus-haraka-128s-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 3, 1}},
244
4
      {"SphincsPlus-haraka-192f-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 3, 4}},
245
4
      {"SphincsPlus-haraka-192s-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 3, 3}},
246
4
      {"SphincsPlus-haraka-256f-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 3, 6}},
247
4
      {"SphincsPlus-haraka-256s-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 3, 5}},
248
4
      {"SphincsPlus-sha2-128f-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 2, 2}},
249
4
      {"SphincsPlus-sha2-128s-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 2, 1}},
250
4
      {"SphincsPlus-sha2-192f-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 2, 4}},
251
4
      {"SphincsPlus-sha2-192s-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 2, 3}},
252
4
      {"SphincsPlus-sha2-256f-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 2, 6}},
253
4
      {"SphincsPlus-sha2-256s-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 2, 5}},
254
4
      {"SphincsPlus-shake-128f-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 1, 2}},
255
4
      {"SphincsPlus-shake-128s-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 1, 1}},
256
4
      {"SphincsPlus-shake-192f-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 1, 4}},
257
4
      {"SphincsPlus-shake-192s-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 1, 3}},
258
4
      {"SphincsPlus-shake-256f-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 1, 6}},
259
4
      {"SphincsPlus-shake-256s-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 1, 5}},
260
4
      {"Streebog-256", {1, 2, 643, 7, 1, 1, 2, 2}},
261
4
      {"Streebog-512", {1, 2, 643, 7, 1, 1, 2, 3}},
262
4
      {"Threefish-512/CBC", {1, 3, 6, 1, 4, 1, 25258, 3, 2}},
263
4
      {"TripleDES/CBC", {1, 2, 840, 113549, 3, 7}},
264
4
      {"Twofish/CBC", {1, 3, 6, 1, 4, 1, 25258, 3, 3}},
265
4
      {"Twofish/GCM", {1, 3, 6, 1, 4, 1, 25258, 3, 102}},
266
4
      {"Twofish/OCB", {1, 3, 6, 1, 4, 1, 25258, 3, 2, 5}},
267
4
      {"Twofish/SIV", {1, 3, 6, 1, 4, 1, 25258, 3, 4, 5}},
268
4
      {"X25519", {1, 3, 101, 110}},
269
4
      {"X448", {1, 3, 101, 111}},
270
4
      {"X509v3.AnyPolicy", {2, 5, 29, 32, 0}},
271
4
      {"X509v3.AuthorityKeyIdentifier", {2, 5, 29, 35}},
272
4
      {"X509v3.BasicConstraints", {2, 5, 29, 19}},
273
4
      {"X509v3.CRLDistributionPoints", {2, 5, 29, 31}},
274
4
      {"X509v3.CRLIssuingDistributionPoint", {2, 5, 29, 28}},
275
4
      {"X509v3.CRLNumber", {2, 5, 29, 20}},
276
4
      {"X509v3.CertificatePolicies", {2, 5, 29, 32}},
277
4
      {"X509v3.ExtendedKeyUsage", {2, 5, 29, 37}},
278
4
      {"X509v3.HoldInstructionCode", {2, 5, 29, 23}},
279
4
      {"X509v3.InvalidityDate", {2, 5, 29, 24}},
280
4
      {"X509v3.IssuerAlternativeName", {2, 5, 29, 18}},
281
4
      {"X509v3.KeyUsage", {2, 5, 29, 15}},
282
4
      {"X509v3.NameConstraints", {2, 5, 29, 30}},
283
4
      {"X509v3.PolicyConstraints", {2, 5, 29, 36}},
284
4
      {"X509v3.PrivateKeyUsagePeriod", {2, 5, 29, 16}},
285
4
      {"X509v3.ReasonCode", {2, 5, 29, 21}},
286
4
      {"X509v3.SubjectAlternativeName", {2, 5, 29, 17}},
287
4
      {"X509v3.SubjectKeyIdentifier", {2, 5, 29, 14}},
288
4
      {"X520.CommonName", {2, 5, 4, 3}},
289
4
      {"X520.Country", {2, 5, 4, 6}},
290
4
      {"X520.DNQualifier", {2, 5, 4, 46}},
291
4
      {"X520.GenerationalQualifier", {2, 5, 4, 44}},
292
4
      {"X520.GivenName", {2, 5, 4, 42}},
293
4
      {"X520.Initials", {2, 5, 4, 43}},
294
4
      {"X520.Locality", {2, 5, 4, 7}},
295
4
      {"X520.Organization", {2, 5, 4, 10}},
296
4
      {"X520.OrganizationalUnit", {2, 5, 4, 11}},
297
4
      {"X520.Pseudonym", {2, 5, 4, 65}},
298
4
      {"X520.SerialNumber", {2, 5, 4, 5}},
299
4
      {"X520.State", {2, 5, 4, 8}},
300
4
      {"X520.StreetAddress", {2, 5, 4, 9}},
301
4
      {"X520.Surname", {2, 5, 4, 4}},
302
4
      {"X520.Title", {2, 5, 4, 12}},
303
4
      {"XMSS", {0, 4, 0, 127, 0, 15, 1, 1, 13, 0}},
304
4
      {"XMSS-draft12", {1, 3, 6, 1, 4, 1, 25258, 1, 8}},
305
4
      {"XMSS-draft6", {1, 3, 6, 1, 4, 1, 25258, 1, 5}},
306
4
      {"brainpool160r1", {1, 3, 36, 3, 3, 2, 8, 1, 1, 1}},
307
4
      {"brainpool192r1", {1, 3, 36, 3, 3, 2, 8, 1, 1, 3}},
308
4
      {"brainpool224r1", {1, 3, 36, 3, 3, 2, 8, 1, 1, 5}},
309
4
      {"brainpool256r1", {1, 3, 36, 3, 3, 2, 8, 1, 1, 7}},
310
4
      {"brainpool320r1", {1, 3, 36, 3, 3, 2, 8, 1, 1, 9}},
311
4
      {"brainpool384r1", {1, 3, 36, 3, 3, 2, 8, 1, 1, 11}},
312
4
      {"brainpool512r1", {1, 3, 36, 3, 3, 2, 8, 1, 1, 13}},
313
4
      {"eFrodoKEM-1344-AES", {1, 3, 6, 1, 4, 1, 25258, 1, 17, 3}},
314
4
      {"eFrodoKEM-1344-SHAKE", {1, 3, 6, 1, 4, 1, 25258, 1, 16, 3}},
315
4
      {"eFrodoKEM-640-AES", {1, 3, 6, 1, 4, 1, 25258, 1, 17, 1}},
316
4
      {"eFrodoKEM-640-SHAKE", {1, 3, 6, 1, 4, 1, 25258, 1, 16, 1}},
317
4
      {"eFrodoKEM-976-AES", {1, 3, 6, 1, 4, 1, 25258, 1, 17, 2}},
318
4
      {"eFrodoKEM-976-SHAKE", {1, 3, 6, 1, 4, 1, 25258, 1, 16, 2}},
319
4
      {"frp256v1", {1, 2, 250, 1, 223, 101, 256, 1}},
320
4
      {"gost_256A", {1, 2, 643, 7, 1, 2, 1, 1, 1}},
321
4
      {"gost_256B", {1, 2, 643, 7, 1, 2, 1, 1, 2}},
322
4
      {"gost_512A", {1, 2, 643, 7, 1, 2, 1, 2, 1}},
323
4
      {"gost_512B", {1, 2, 643, 7, 1, 2, 1, 2, 2}},
324
4
      {"numsp256d1", {1, 3, 6, 1, 4, 1, 25258, 4, 1}},
325
4
      {"numsp384d1", {1, 3, 6, 1, 4, 1, 25258, 4, 2}},
326
4
      {"numsp512d1", {1, 3, 6, 1, 4, 1, 25258, 4, 3}},
327
4
      {"secp160k1", {1, 3, 132, 0, 9}},
328
4
      {"secp160r1", {1, 3, 132, 0, 8}},
329
4
      {"secp160r2", {1, 3, 132, 0, 30}},
330
4
      {"secp192k1", {1, 3, 132, 0, 31}},
331
4
      {"secp192r1", {1, 2, 840, 10045, 3, 1, 1}},
332
4
      {"secp224k1", {1, 3, 132, 0, 32}},
333
4
      {"secp224r1", {1, 3, 132, 0, 33}},
334
4
      {"secp256k1", {1, 3, 132, 0, 10}},
335
4
      {"secp256r1", {1, 2, 840, 10045, 3, 1, 7}},
336
4
      {"secp384r1", {1, 3, 132, 0, 34}},
337
4
      {"secp521r1", {1, 3, 132, 0, 35}},
338
4
      {"sm2p256v1", {1, 2, 156, 10197, 1, 301}},
339
4
      {"x962_p192v2", {1, 2, 840, 10045, 3, 1, 2}},
340
4
      {"x962_p192v3", {1, 2, 840, 10045, 3, 1, 3}},
341
4
      {"x962_p239v1", {1, 2, 840, 10045, 3, 1, 4}},
342
4
      {"x962_p239v2", {1, 2, 840, 10045, 3, 1, 5}},
343
4
      {"x962_p239v3", {1, 2, 840, 10045, 3, 1, 6}}
344
4
   };
345
   // clang-format on
346
4
}
347
348
}  // namespace
349
350
2
std::unordered_map<OID, std::string> OID_Map::load_oid2str_map() {
351
2
   std::pair<const char*, std::vector<uint32_t>> dup_oids[] = {
352
      // clang-format off
353
2
      {"RSA", {2, 5, 8, 1, 1}},
354
2
      {"secp521r1", {1, 3, 6, 1, 4, 1, 8301, 3, 1, 2, 9, 0, 38}},
355
2
      {"gost_256A", {1, 2, 643, 2, 2, 35, 1}},
356
2
      {"gost_256A", {1, 2, 643, 2, 2, 36, 0}}
357
      // clang-format on
358
2
   };
359
360
2
   std::unordered_map<OID, std::string> map;
361
362
644
   for(auto& entry : oid_maps()) {
363
644
      map.insert(std::make_pair(OID(std::move(entry.second)), std::string(entry.first)));
364
644
   }
365
366
8
   for(auto& entry : dup_oids) {
367
8
      map.insert(std::make_pair(OID(std::move(entry.second)), std::string(entry.first)));
368
8
   }
369
370
2
   return map;
371
2
}
372
373
2
std::unordered_map<std::string, OID> OID_Map::load_str2oid_map() {
374
2
   std::pair<const char*, std::vector<uint32_t>> aliases[] = {
375
      // clang-format off
376
2
      {"Curve25519", {1, 3, 101, 110}},
377
2
      {"SM2_Sig", {1, 2, 156, 10197, 1, 301, 1}},
378
2
      {"RSA/EMSA3(MD2)", {1, 2, 840, 113549, 1, 1, 2}},
379
2
      {"RSA/EMSA3(MD5)", {1, 2, 840, 113549, 1, 1, 4}},
380
2
      {"RSA/EMSA3(SHA-1)", {1, 2, 840, 113549, 1, 1, 5}},
381
2
      {"RSA/EMSA3(SHA-256)", {1, 2, 840, 113549, 1, 1, 11}},
382
2
      {"RSA/EMSA3(SHA-384)", {1, 2, 840, 113549, 1, 1, 12}},
383
2
      {"RSA/EMSA3(SHA-512)", {1, 2, 840, 113549, 1, 1, 13}},
384
2
      {"RSA/EMSA3(SHA-224)", {1, 2, 840, 113549, 1, 1, 14}},
385
2
      {"RSA/EMSA3(SHA-512-256)", {1, 2, 840, 113549, 1, 1, 16}},
386
2
      {"RSA/EMSA3(SHA-3(224))", {2, 16, 840, 1, 101, 3, 4, 3, 13}},
387
2
      {"RSA/EMSA3(SHA-3(256))", {2, 16, 840, 1, 101, 3, 4, 3, 14}},
388
2
      {"RSA/EMSA3(SHA-3(384))", {2, 16, 840, 1, 101, 3, 4, 3, 15}},
389
2
      {"RSA/EMSA3(SHA-3(512))", {2, 16, 840, 1, 101, 3, 4, 3, 16}},
390
2
      {"RSA/EMSA3(SM3)", {1, 2, 156, 10197, 1, 504}},
391
2
      {"RSA/EMSA3(RIPEMD-160)", {1, 3, 36, 3, 3, 1, 2}},
392
2
      {"RSA/EMSA4", {1, 2, 840, 113549, 1, 1, 10}},
393
2
      {"PBES2", {1, 2, 840, 113549, 1, 5, 13}}
394
      // clang-format on
395
2
   };
396
397
2
   std::unordered_map<std::string, OID> map;
398
399
644
   for(auto& entry : oid_maps()) {
400
644
      map.insert(std::make_pair(std::string(entry.first), OID(std::move(entry.second))));
401
644
   }
402
403
36
   for(auto& entry : aliases) {
404
36
      map.insert(std::make_pair(std::string(entry.first), OID(std::move(entry.second))));
405
36
   }
406
407
2
   return map;
408
2
}
409
410
}  // namespace Botan