• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

randombit / botan / 15401894564

02 Jun 2025 08:16PM UTC coverage: 90.572% (-0.4%) from 90.971%
15401894564

Pull #4896

github

web-flow
Merge 41ad803b9 into 0ffb30b0c
Pull Request #4896: Use compile time generated switch statements for OID lookups

98747 of 109026 relevant lines covered (90.57%)

12566938.64 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

60.18
/src/lib/asn1/oid_maps.cpp
1
/*
2
* This file was automatically generated by ./src/scripts/dev_tools/gen_oids.py on 2025-06-02
3
*
4
* All manual edits to this file will be lost. Edit the script then regenerate this source file.
5
*
6
* Botan is released under the Simplified BSD License (see license.txt)
7
*/
8

9
#include <botan/internal/oid_map.h>
10
#include <unordered_map>
11

12
namespace Botan {
13

14
namespace {
15

16
// The hash can collide so we must verify the actual value matches before returning
17
std::optional<std::string> if_match(const OID& oid, std::initializer_list<uint32_t> val, const char* name) {
61,382✔
18
   if(oid.matches(val)) {
61,382✔
19
      return std::string(name);
122,764✔
20
   } else {
21
      return {};
×
22
   }
23
}
24

25
std::optional<OID> if_match(std::string_view req, const char* actual, std::initializer_list<uint32_t> oid) {
114,863✔
26
   if(req == std::string_view(actual)) {
114,863✔
27
      return OID(oid);
114,863✔
28
   } else {
29
      return {};
×
30
   }
31
}
32

33
uint32_t oid_name_hash(std::string_view s) {
115,128✔
34
   uint32_t hash = 0x411ECD00 + static_cast<uint32_t>(s.size());
115,128✔
35

36
   for(char c : s) {
1,977,860✔
37
      hash *= 251;
1,862,732✔
38
      hash += c;
1,862,732✔
39
   }
40

41
   return hash & 0x00FFFFFF;
115,128✔
42
}
43

44
}  // namespace
45

46
//static
47
std::optional<std::string> OID_Map::lookup_static_oid(const OID& oid) {
71,940✔
48
   const uint32_t hc = static_cast<uint32_t>(oid.hash_code() & 0x00FFFFFF);
71,940✔
49

50
   // clang-format off
51
   switch(hc) {
71,940✔
52

53
      case 0x0483B8:
×
54
         return if_match(oid, {1, 3, 14, 3, 2, 7}, "DES/CBC");
×
55
      case 0x0483CB:
57✔
56
         return if_match(oid, {1, 3, 14, 3, 2, 26}, "SHA-1");
57✔
57
      case 0x05B380:
×
58
         return if_match(oid, {1, 2, 410, 200004, 1, 4}, "SEED/CBC");
×
59
      case 0x0BF327:
9✔
60
         return if_match(oid, {1, 2, 840, 10045, 3, 1, 1}, "secp192r1");
9✔
61
      case 0x0BF328:
6✔
62
         return if_match(oid, {1, 2, 840, 10045, 3, 1, 2}, "x962_p192v2");
6✔
63
      case 0x0BF329:
22✔
64
         return if_match(oid, {1, 2, 840, 10045, 3, 1, 3}, "x962_p192v3");
22✔
65
      case 0x0BF32A:
6✔
66
         return if_match(oid, {1, 2, 840, 10045, 3, 1, 4}, "x962_p239v1");
6✔
67
      case 0x0BF32B:
7✔
68
         return if_match(oid, {1, 2, 840, 10045, 3, 1, 5}, "x962_p239v2");
7✔
69
      case 0x0BF32C:
6✔
70
         return if_match(oid, {1, 2, 840, 10045, 3, 1, 6}, "x962_p239v3");
6✔
71
      case 0x0BF32D:
316✔
72
         return if_match(oid, {1, 2, 840, 10045, 3, 1, 7}, "secp256r1");
316✔
73
      case 0x0CF72A:
4✔
74
         return if_match(oid, {1, 2, 840, 10045, 4, 3, 1}, "ECDSA/SHA-224");
4✔
75
      case 0x0CF72B:
2,677✔
76
         return if_match(oid, {1, 2, 840, 10045, 4, 3, 2}, "ECDSA/SHA-256");
2,677✔
77
      case 0x0CF72C:
1,831✔
78
         return if_match(oid, {1, 2, 840, 10045, 4, 3, 3}, "ECDSA/SHA-384");
1,831✔
79
      case 0x0CF72D:
53✔
80
         return if_match(oid, {1, 2, 840, 10045, 4, 3, 4}, "ECDSA/SHA-512");
53✔
81
      case 0x0D8FCB:
×
82
         return if_match(oid, {1, 3, 36, 3, 3, 1, 2}, "RSA/PKCS1v15(RIPEMD-160)");
×
83
      case 0x0E7B71:
98✔
84
         return if_match(oid, {1, 3, 101, 110}, "X25519");
98✔
85
      case 0x0E7B72:
14✔
86
         return if_match(oid, {1, 3, 101, 111}, "X448");
14✔
87
      case 0x0E7B73:
798✔
88
         return if_match(oid, {1, 3, 101, 112}, "Ed25519");
798✔
89
      case 0x0E7B74:
123✔
90
         return if_match(oid, {1, 3, 101, 113}, "Ed448");
123✔
91
      case 0x1320A8:
237✔
92
         return if_match(oid, {2, 5, 4, 3}, "X520.CommonName");
237✔
93
      case 0x1320A9:
2✔
94
         return if_match(oid, {2, 5, 4, 4}, "X520.Surname");
2✔
95
      case 0x1320AA:
4✔
96
         return if_match(oid, {2, 5, 4, 5}, "X520.SerialNumber");
4✔
97
      case 0x1320AB:
169✔
98
         return if_match(oid, {2, 5, 4, 6}, "X520.Country");
169✔
99
      case 0x1320AC:
30✔
100
         return if_match(oid, {2, 5, 4, 7}, "X520.Locality");
30✔
101
      case 0x1320AD:
22✔
102
         return if_match(oid, {2, 5, 4, 8}, "X520.State");
22✔
103
      case 0x1320AE:
×
104
         return if_match(oid, {2, 5, 4, 9}, "X520.StreetAddress");
×
105
      case 0x1320AF:
168✔
106
         return if_match(oid, {2, 5, 4, 10}, "X520.Organization");
168✔
107
      case 0x1320B0:
74✔
108
         return if_match(oid, {2, 5, 4, 11}, "X520.OrganizationalUnit");
74✔
109
      case 0x1320B1:
3✔
110
         return if_match(oid, {2, 5, 4, 12}, "X520.Title");
3✔
111
      case 0x1320CF:
2✔
112
         return if_match(oid, {2, 5, 4, 42}, "X520.GivenName");
2✔
113
      case 0x1320D0:
3✔
114
         return if_match(oid, {2, 5, 4, 43}, "X520.Initials");
3✔
115
      case 0x1320D1:
2✔
116
         return if_match(oid, {2, 5, 4, 44}, "X520.GenerationalQualifier");
2✔
117
      case 0x1320D3:
4✔
118
         return if_match(oid, {2, 5, 4, 46}, "X520.DNQualifier");
4✔
119
      case 0x1320E6:
3✔
120
         return if_match(oid, {2, 5, 4, 65}, "X520.Pseudonym");
3✔
121
      case 0x1339CC:
8✔
122
         return if_match(oid, {2, 5, 29, 14}, "X509v3.SubjectKeyIdentifier");
8✔
123
      case 0x1339CD:
7✔
124
         return if_match(oid, {2, 5, 29, 15}, "X509v3.KeyUsage");
7✔
125
      case 0x1339CE:
×
126
         return if_match(oid, {2, 5, 29, 16}, "X509v3.PrivateKeyUsagePeriod");
×
127
      case 0x1339CF:
4✔
128
         return if_match(oid, {2, 5, 29, 17}, "X509v3.SubjectAlternativeName");
4✔
129
      case 0x1339D0:
2✔
130
         return if_match(oid, {2, 5, 29, 18}, "X509v3.IssuerAlternativeName");
2✔
131
      case 0x1339D1:
7✔
132
         return if_match(oid, {2, 5, 29, 19}, "X509v3.BasicConstraints");
7✔
133
      case 0x1339D2:
2✔
134
         return if_match(oid, {2, 5, 29, 20}, "X509v3.CRLNumber");
2✔
135
      case 0x1339D3:
2✔
136
         return if_match(oid, {2, 5, 29, 21}, "X509v3.ReasonCode");
2✔
137
      case 0x1339D5:
2✔
138
         return if_match(oid, {2, 5, 29, 23}, "X509v3.HoldInstructionCode");
2✔
139
      case 0x1339D6:
×
140
         return if_match(oid, {2, 5, 29, 24}, "X509v3.InvalidityDate");
×
141
      case 0x1339DA:
17✔
142
         return if_match(oid, {2, 5, 29, 28}, "X509v3.CRLIssuingDistributionPoint");
17✔
143
      case 0x1339DC:
12✔
144
         return if_match(oid, {2, 5, 29, 30}, "X509v3.NameConstraints");
12✔
145
      case 0x1339DD:
6✔
146
         return if_match(oid, {2, 5, 29, 31}, "X509v3.CRLDistributionPoints");
6✔
147
      case 0x1339DE:
6✔
148
         return if_match(oid, {2, 5, 29, 32}, "X509v3.CertificatePolicies");
6✔
149
      case 0x1339E1:
5✔
150
         return if_match(oid, {2, 5, 29, 35}, "X509v3.AuthorityKeyIdentifier");
5✔
151
      case 0x1339E2:
2✔
152
         return if_match(oid, {2, 5, 29, 36}, "X509v3.PolicyConstraints");
2✔
153
      case 0x1339E3:
4✔
154
         return if_match(oid, {2, 5, 29, 37}, "X509v3.ExtendedKeyUsage");
4✔
155
      case 0x30A083:
32✔
156
         return if_match(oid, {1, 3, 6, 1, 4, 1, 3029, 1, 2, 1}, "ElGamal");
32✔
157
      case 0x30A386:
×
158
         return if_match(oid, {1, 3, 6, 1, 4, 1, 3029, 1, 5, 1}, "OpenPGP.Curve25519");
×
159
      case 0x34E263:
28✔
160
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 12, 1, 1}, "SphincsPlus-shake-128s-r3.1");
28✔
161
      case 0x34E264:
29✔
162
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 12, 1, 2}, "SphincsPlus-shake-128f-r3.1");
29✔
163
      case 0x34E265:
28✔
164
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 12, 1, 3}, "SphincsPlus-shake-192s-r3.1");
28✔
165
      case 0x34E266:
28✔
166
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 12, 1, 4}, "SphincsPlus-shake-192f-r3.1");
28✔
167
      case 0x34E267:
28✔
168
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 12, 1, 5}, "SphincsPlus-shake-256s-r3.1");
28✔
169
      case 0x34E268:
28✔
170
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 12, 1, 6}, "SphincsPlus-shake-256f-r3.1");
28✔
171
      case 0x34E364:
28✔
172
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 12, 2, 1}, "SphincsPlus-sha2-128s-r3.1");
28✔
173
      case 0x34E365:
29✔
174
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 12, 2, 2}, "SphincsPlus-sha2-128f-r3.1");
29✔
175
      case 0x34E366:
28✔
176
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 12, 2, 3}, "SphincsPlus-sha2-192s-r3.1");
28✔
177
      case 0x34E367:
28✔
178
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 12, 2, 4}, "SphincsPlus-sha2-192f-r3.1");
28✔
179
      case 0x34E368:
28✔
180
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 12, 2, 5}, "SphincsPlus-sha2-256s-r3.1");
28✔
181
      case 0x34E369:
28✔
182
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 12, 2, 6}, "SphincsPlus-sha2-256f-r3.1");
28✔
183
      case 0x34E465:
×
184
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 12, 3, 1}, "SphincsPlus-haraka-128s-r3.1");
×
185
      case 0x34E466:
×
186
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 12, 3, 2}, "SphincsPlus-haraka-128f-r3.1");
×
187
      case 0x34E467:
×
188
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 12, 3, 3}, "SphincsPlus-haraka-192s-r3.1");
×
189
      case 0x34E468:
×
190
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 12, 3, 4}, "SphincsPlus-haraka-192f-r3.1");
×
191
      case 0x34E469:
×
192
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 12, 3, 5}, "SphincsPlus-haraka-256s-r3.1");
×
193
      case 0x34E46A:
×
194
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 12, 3, 6}, "SphincsPlus-haraka-256f-r3.1");
×
195
      case 0x369E45:
×
196
         return if_match(oid, {2, 16, 840, 1, 113730, 1, 13}, "Certificate Comment");
×
197
      case 0x3709D5:
2✔
198
         return if_match(oid, {1, 3, 36, 3, 3, 2, 8, 1, 1, 1}, "brainpool160r1");
2✔
199
      case 0x3709D7:
2✔
200
         return if_match(oid, {1, 3, 36, 3, 3, 2, 8, 1, 1, 3}, "brainpool192r1");
2✔
201
      case 0x3709D9:
2✔
202
         return if_match(oid, {1, 3, 36, 3, 3, 2, 8, 1, 1, 5}, "brainpool224r1");
2✔
203
      case 0x3709DB:
9✔
204
         return if_match(oid, {1, 3, 36, 3, 3, 2, 8, 1, 1, 7}, "brainpool256r1");
9✔
205
      case 0x3709DD:
2✔
206
         return if_match(oid, {1, 3, 36, 3, 3, 2, 8, 1, 1, 9}, "brainpool320r1");
2✔
207
      case 0x3709DF:
5✔
208
         return if_match(oid, {1, 3, 36, 3, 3, 2, 8, 1, 1, 11}, "brainpool384r1");
5✔
209
      case 0x3709E1:
7✔
210
         return if_match(oid, {1, 3, 36, 3, 3, 2, 8, 1, 1, 13}, "brainpool512r1");
7✔
211
      case 0x38D4B2:
×
212
         return if_match(oid, {1, 2, 392, 200011, 61, 1, 1, 1, 2}, "Camellia-128/CBC");
×
213
      case 0x38D4B3:
×
214
         return if_match(oid, {1, 2, 392, 200011, 61, 1, 1, 1, 3}, "Camellia-192/CBC");
×
215
      case 0x38D4B4:
×
216
         return if_match(oid, {1, 2, 392, 200011, 61, 1, 1, 1, 4}, "Camellia-256/CBC");
×
217
      case 0x39C422:
864✔
218
         return if_match(oid, {1, 2, 840, 10040, 4, 1}, "DSA");
864✔
219
      case 0x39C424:
43✔
220
         return if_match(oid, {1, 2, 840, 10040, 4, 3}, "DSA/SHA-1");
43✔
221
      case 0x3B9695:
3✔
222
         return if_match(oid, {1, 2, 840, 113549, 1, 9, 16, 3, 6}, "KeyWrap.TripleDES");
3✔
223
      case 0x3B9697:
×
224
         return if_match(oid, {1, 2, 840, 113549, 1, 9, 16, 3, 8}, "Compression.Zlib");
×
225
      case 0x3B96A0:
67✔
226
         return if_match(oid, {1, 2, 840, 113549, 1, 9, 16, 3, 17}, "HSS-LMS");
67✔
227
      case 0x3B96A1:
×
228
         return if_match(oid, {1, 2, 840, 113549, 1, 9, 16, 3, 18}, "ChaCha20Poly1305");
×
229
      case 0x3E86B8:
5✔
230
         return if_match(oid, {1, 3, 6, 1, 5, 5, 7, 1, 1}, "PKIX.AuthorityInformationAccess");
5✔
231
      case 0x3E86BE:
×
232
         return if_match(oid, {1, 3, 6, 1, 5, 5, 7, 1, 7}, "PKIX.IpAddrBlocks");
×
233
      case 0x3E86BF:
×
234
         return if_match(oid, {1, 3, 6, 1, 5, 5, 7, 1, 8}, "PKIX.AutonomousSysIds");
×
235
      case 0x3E86D1:
×
236
         return if_match(oid, {1, 3, 6, 1, 5, 5, 7, 1, 26}, "PKIX.TNAuthList");
×
237
      case 0x3E88BA:
1✔
238
         return if_match(oid, {1, 3, 6, 1, 5, 5, 7, 3, 1}, "PKIX.ServerAuth");
1✔
239
      case 0x3E88BB:
1✔
240
         return if_match(oid, {1, 3, 6, 1, 5, 5, 7, 3, 2}, "PKIX.ClientAuth");
1✔
241
      case 0x3E88BC:
1✔
242
         return if_match(oid, {1, 3, 6, 1, 5, 5, 7, 3, 3}, "PKIX.CodeSigning");
1✔
243
      case 0x3E88BD:
×
244
         return if_match(oid, {1, 3, 6, 1, 5, 5, 7, 3, 4}, "PKIX.EmailProtection");
×
245
      case 0x3E88BE:
1✔
246
         return if_match(oid, {1, 3, 6, 1, 5, 5, 7, 3, 5}, "PKIX.IPsecEndSystem");
1✔
247
      case 0x3E88BF:
×
248
         return if_match(oid, {1, 3, 6, 1, 5, 5, 7, 3, 6}, "PKIX.IPsecTunnel");
×
249
      case 0x3E88C0:
1✔
250
         return if_match(oid, {1, 3, 6, 1, 5, 5, 7, 3, 7}, "PKIX.IPsecUser");
1✔
251
      case 0x3E88C1:
1✔
252
         return if_match(oid, {1, 3, 6, 1, 5, 5, 7, 3, 8}, "PKIX.TimeStamping");
1✔
253
      case 0x3E88C2:
1✔
254
         return if_match(oid, {1, 3, 6, 1, 5, 5, 7, 3, 9}, "PKIX.OCSPSigning");
1✔
255
      case 0x3E8DC3:
1✔
256
         return if_match(oid, {1, 3, 6, 1, 5, 5, 7, 8, 5}, "PKIX.XMPPAddr");
1✔
257
      case 0x3EB5E7:
5✔
258
         return if_match(oid, {1, 3, 6, 1, 5, 5, 7, 48, 1}, "PKIX.OCSP");
5✔
259
      case 0x3EB5E8:
4✔
260
         return if_match(oid, {1, 3, 6, 1, 5, 5, 7, 48, 2}, "PKIX.CertificateAuthorityIssuers");
4✔
261
      case 0x3ECC25:
10,977✔
262
         return if_match(oid, {1, 2, 840, 10045, 2, 1}, "ECDSA");
10,977✔
263
      case 0x3ECE27:
6✔
264
         return if_match(oid, {1, 2, 840, 10045, 4, 1}, "ECDSA/SHA-1");
6✔
265
      case 0x3FCE26:
73✔
266
         return if_match(oid, {1, 2, 840, 10046, 2, 1}, "DH");
73✔
267
      case 0x46C5C8:
×
268
         return if_match(oid, {1, 3, 36, 3, 2, 1}, "RIPEMD-160");
×
269
      case 0x49E1F9:
×
270
         return if_match(oid, {1, 3, 6, 1, 4, 1, 311, 20, 2, 2}, "Microsoft SmartcardLogon");
×
271
      case 0x49E1FA:
×
272
         return if_match(oid, {1, 3, 6, 1, 4, 1, 311, 20, 2, 3}, "Microsoft UPN");
×
273
      case 0x4D17DE:
3✔
274
         return if_match(oid, {2, 5, 29, 32, 0}, "X509v3.AnyPolicy");
3✔
275
      case 0x4D77E7:
×
276
         return if_match(oid, {1, 2, 410, 200004, 1, 100, 4, 3}, "ECKCDSA/SHA-1");
×
277
      case 0x4D77E8:
×
278
         return if_match(oid, {1, 2, 410, 200004, 1, 100, 4, 4}, "ECKCDSA/SHA-224");
×
279
      case 0x4D77E9:
59✔
280
         return if_match(oid, {1, 2, 410, 200004, 1, 100, 4, 5}, "ECKCDSA/SHA-256");
59✔
281
      case 0x623B2B:
90✔
282
         return if_match(oid, {1, 2, 643, 7, 1, 1, 1, 1}, "GOST-34.10-2012-256");
90✔
283
      case 0x623B2C:
×
284
         return if_match(oid, {1, 2, 643, 7, 1, 1, 1, 2}, "GOST-34.10-2012-512");
×
285
      case 0x623C2D:
×
286
         return if_match(oid, {1, 2, 643, 7, 1, 1, 2, 2}, "Streebog-256");
×
287
      case 0x623C2E:
×
288
         return if_match(oid, {1, 2, 643, 7, 1, 1, 2, 3}, "Streebog-512");
×
289
      case 0x623D2E:
10✔
290
         return if_match(oid, {1, 2, 643, 7, 1, 1, 3, 2}, "GOST-34.10-2012-256/Streebog-256");
10✔
291
      case 0x623D2F:
×
292
         return if_match(oid, {1, 2, 643, 7, 1, 1, 3, 3}, "GOST-34.10-2012-512/Streebog-512");
×
293
      case 0x63DF27:
×
294
         return if_match(oid, {1, 2, 643, 2, 2, 3}, "GOST-34.10/GOST-R-34.11-94");
×
295
      case 0x63DF37:
×
296
         return if_match(oid, {1, 2, 643, 2, 2, 19}, "GOST-34.10");
×
297
      case 0x6BB4E6:
×
298
         return if_match(oid, {0, 3, 4401, 5, 3, 1, 9, 6}, "Camellia-128/GCM");
×
299
      case 0x6BB4FA:
×
300
         return if_match(oid, {0, 3, 4401, 5, 3, 1, 9, 26}, "Camellia-192/GCM");
×
301
      case 0x6BB50E:
×
302
         return if_match(oid, {0, 3, 4401, 5, 3, 1, 9, 46}, "Camellia-256/GCM");
×
303
      case 0x8E90B5:
×
304
         return if_match(oid, {1, 2, 840, 113533, 7, 66, 10}, "CAST-128/CBC");
×
305
      case 0x8E90BA:
×
306
         return if_match(oid, {1, 2, 840, 113533, 7, 66, 15}, "KeyWrap.CAST-128");
×
307
      case 0x951F58:
9✔
308
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 3}, "McEliece");
9✔
309
      case 0x951F5A:
×
310
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 5}, "XMSS-draft6");
×
311
      case 0x951F5D:
×
312
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 8}, "XMSS-draft12");
×
313
      case 0x951F62:
12✔
314
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 13}, "HSS-LMS-Private-Key");
12✔
315
      case 0x952158:
×
316
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 3, 1}, "Serpent/CBC");
×
317
      case 0x952159:
×
318
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 3, 2}, "Threefish-512/CBC");
×
319
      case 0x95215A:
×
320
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 3, 3}, "Twofish/CBC");
×
321
      case 0x9521BC:
×
322
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 3, 101}, "Serpent/GCM");
×
323
      case 0x9521BD:
×
324
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 3, 102}, "Twofish/GCM");
×
325
      case 0x952259:
2✔
326
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 4, 1}, "numsp256d1");
2✔
327
      case 0x95225A:
×
328
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 4, 2}, "numsp384d1");
×
329
      case 0x95225B:
2✔
330
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 4, 3}, "numsp512d1");
2✔
331
      case 0x95ED64:
445✔
332
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 1, 2}, "AES-128/CBC");
445✔
333
      case 0x95ED67:
×
334
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 1, 5}, "KeyWrap.AES-128");
×
335
      case 0x95ED68:
2✔
336
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 1, 6}, "AES-128/GCM");
2✔
337
      case 0x95ED69:
×
338
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 1, 7}, "AES-128/CCM");
×
339
      case 0x95ED78:
×
340
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 1, 22}, "AES-192/CBC");
×
341
      case 0x95ED7B:
×
342
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 1, 25}, "KeyWrap.AES-192");
×
343
      case 0x95ED7C:
×
344
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 1, 26}, "AES-192/GCM");
×
345
      case 0x95ED7D:
×
346
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 1, 27}, "AES-192/CCM");
×
347
      case 0x95ED8C:
39✔
348
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 1, 42}, "AES-256/CBC");
39✔
349
      case 0x95ED8F:
×
350
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 1, 45}, "KeyWrap.AES-256");
×
351
      case 0x95ED90:
12✔
352
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 1, 46}, "AES-256/GCM");
12✔
353
      case 0x95ED91:
×
354
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 1, 47}, "AES-256/CCM");
×
355
      case 0x95EE64:
494✔
356
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 2, 1}, "SHA-256");
494✔
357
      case 0x95EE65:
10✔
358
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 2, 2}, "SHA-384");
10✔
359
      case 0x95EE66:
10✔
360
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 2, 3}, "SHA-512");
10✔
361
      case 0x95EE67:
5✔
362
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 2, 4}, "SHA-224");
5✔
363
      case 0x95EE69:
×
364
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 2, 6}, "SHA-512-256");
×
365
      case 0x95EE6A:
×
366
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 2, 7}, "SHA-3(224)");
×
367
      case 0x95EE6B:
×
368
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 2, 8}, "SHA-3(256)");
×
369
      case 0x95EE6C:
×
370
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 2, 9}, "SHA-3(384)");
×
371
      case 0x95EE6D:
×
372
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 2, 10}, "SHA-3(512)");
×
373
      case 0x95EE6E:
×
374
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 2, 11}, "SHAKE-128");
×
375
      case 0x95EE6F:
×
376
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 2, 12}, "SHAKE-256");
×
377
      case 0x95EF65:
×
378
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 3, 1}, "DSA/SHA-224");
×
379
      case 0x95EF66:
59✔
380
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 3, 2}, "DSA/SHA-256");
59✔
381
      case 0x95EF67:
×
382
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 3, 3}, "DSA/SHA-384");
×
383
      case 0x95EF68:
×
384
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 3, 4}, "DSA/SHA-512");
×
385
      case 0x95EF69:
×
386
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 3, 5}, "DSA/SHA-3(224)");
×
387
      case 0x95EF6A:
×
388
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 3, 6}, "DSA/SHA-3(256)");
×
389
      case 0x95EF6B:
×
390
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 3, 7}, "DSA/SHA-3(384)");
×
391
      case 0x95EF6C:
×
392
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 3, 8}, "DSA/SHA-3(512)");
×
393
      case 0x95EF6D:
×
394
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 3, 9}, "ECDSA/SHA-3(224)");
×
395
      case 0x95EF6E:
×
396
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 3, 10}, "ECDSA/SHA-3(256)");
×
397
      case 0x95EF6F:
×
398
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 3, 11}, "ECDSA/SHA-3(384)");
×
399
      case 0x95EF70:
×
400
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 3, 12}, "ECDSA/SHA-3(512)");
×
401
      case 0x95EF71:
×
402
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 3, 13}, "RSA/PKCS1v15(SHA-3(224))");
×
403
      case 0x95EF72:
×
404
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 3, 14}, "RSA/PKCS1v15(SHA-3(256))");
×
405
      case 0x95EF73:
×
406
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 3, 15}, "RSA/PKCS1v15(SHA-3(384))");
×
407
      case 0x95EF74:
×
408
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 3, 16}, "RSA/PKCS1v15(SHA-3(512))");
×
409
      case 0x95EF75:
30✔
410
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 3, 17}, "ML-DSA-4x4");
30✔
411
      case 0x95EF76:
140✔
412
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 3, 18}, "ML-DSA-6x5");
140✔
413
      case 0x95EF77:
30✔
414
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 3, 19}, "ML-DSA-8x7");
30✔
415
      case 0x95EF78:
29✔
416
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 3, 20}, "SLH-DSA-SHA2-128s");
29✔
417
      case 0x95EF79:
64✔
418
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 3, 21}, "SLH-DSA-SHA2-128f");
64✔
419
      case 0x95EF7A:
29✔
420
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 3, 22}, "SLH-DSA-SHA2-192s");
29✔
421
      case 0x95EF7B:
29✔
422
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 3, 23}, "SLH-DSA-SHA2-192f");
29✔
423
      case 0x95EF7C:
29✔
424
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 3, 24}, "SLH-DSA-SHA2-256s");
29✔
425
      case 0x95EF7D:
29✔
426
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 3, 25}, "SLH-DSA-SHA2-256f");
29✔
427
      case 0x95EF7E:
35✔
428
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 3, 26}, "SLH-DSA-SHAKE-128s");
35✔
429
      case 0x95EF7F:
31✔
430
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 3, 27}, "SLH-DSA-SHAKE-128f");
31✔
431
      case 0x95EF80:
29✔
432
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 3, 28}, "SLH-DSA-SHAKE-192s");
29✔
433
      case 0x95EF81:
29✔
434
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 3, 29}, "SLH-DSA-SHAKE-192f");
29✔
435
      case 0x95EF82:
29✔
436
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 3, 30}, "SLH-DSA-SHAKE-256s");
29✔
437
      case 0x95EF83:
29✔
438
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 3, 31}, "SLH-DSA-SHAKE-256f");
29✔
439
      case 0x95F066:
122✔
440
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 4, 1}, "ML-KEM-512");
122✔
441
      case 0x95F067:
158✔
442
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 4, 2}, "ML-KEM-768");
158✔
443
      case 0x95F068:
122✔
444
         return if_match(oid, {2, 16, 840, 1, 101, 3, 4, 4, 3}, "ML-KEM-1024");
122✔
445
      case 0x9C113B:
86✔
446
         return if_match(oid, {0, 4, 0, 127, 0, 15, 1, 1, 13, 0}, "XMSS");
86✔
447
      case 0xA0692D:
10✔
448
         return if_match(oid, {1, 2, 643, 7, 1, 2, 1, 1, 1}, "gost_256A");
10✔
449
      case 0xA0692E:
×
450
         return if_match(oid, {1, 2, 643, 7, 1, 2, 1, 1, 2}, "gost_256B");
×
451
      case 0xA06A2E:
2✔
452
         return if_match(oid, {1, 2, 643, 7, 1, 2, 1, 2, 1}, "gost_512A");
2✔
453
      case 0xA06A2F:
×
454
         return if_match(oid, {1, 2, 643, 7, 1, 2, 1, 2, 2}, "gost_512B");
×
455
      case 0xA8BC2A:
6✔
456
         return if_match(oid, {1, 3, 132, 0, 8}, "secp160r1");
6✔
457
      case 0xA8BC2B:
6✔
458
         return if_match(oid, {1, 3, 132, 0, 9}, "secp160k1");
6✔
459
      case 0xA8BC2C:
6✔
460
         return if_match(oid, {1, 3, 132, 0, 10}, "secp256k1");
6✔
461
      case 0xA8BC40:
23✔
462
         return if_match(oid, {1, 3, 132, 0, 30}, "secp160r2");
23✔
463
      case 0xA8BC41:
76✔
464
         return if_match(oid, {1, 3, 132, 0, 31}, "secp192k1");
76✔
465
      case 0xA8BC42:
71✔
466
         return if_match(oid, {1, 3, 132, 0, 32}, "secp224k1");
71✔
467
      case 0xA8BC43:
126✔
468
         return if_match(oid, {1, 3, 132, 0, 33}, "secp224r1");
126✔
469
      case 0xA8BC44:
152✔
470
         return if_match(oid, {1, 3, 132, 0, 34}, "secp384r1");
152✔
471
      case 0xA8BC45:
286✔
472
         return if_match(oid, {1, 3, 132, 0, 35}, "secp521r1");
286✔
473
      case 0xA8BD2F:
253✔
474
         return if_match(oid, {1, 3, 132, 1, 12}, "ECDH");
253✔
475
      case 0xA91D85:
1✔
476
         return if_match(oid, {1, 2, 643, 100, 1}, "GOST.OGRN");
1✔
477
      case 0xA91DF3:
×
478
         return if_match(oid, {1, 2, 643, 100, 111}, "GOST.SubjectSigningTool");
×
479
      case 0xA91DF4:
×
480
         return if_match(oid, {1, 2, 643, 100, 112}, "GOST.IssuerSigningTool");
×
481
      case 0xB47A5C:
59✔
482
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 6, 1}, "GOST-34.10-2012-256/SHA-256");
59✔
483
      case 0xB47B5D:
188✔
484
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 7, 1}, "Kyber-512-r3");
188✔
485
      case 0xB47B5E:
122✔
486
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 7, 2}, "Kyber-768-r3");
122✔
487
      case 0xB47B5F:
122✔
488
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 7, 3}, "Kyber-1024-r3");
122✔
489
      case 0xB47D5F:
61✔
490
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 9, 1}, "Dilithium-4x4-r3");
61✔
491
      case 0xB47D60:
203✔
492
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 9, 2}, "Dilithium-6x5-r3");
203✔
493
      case 0xB47D61:
59✔
494
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 9, 3}, "Dilithium-8x7-r3");
59✔
495
      case 0xB47E60:
59✔
496
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 10, 1}, "Dilithium-4x4-AES-r3");
59✔
497
      case 0xB47E61:
59✔
498
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 10, 2}, "Dilithium-6x5-AES-r3");
59✔
499
      case 0xB47E62:
100✔
500
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 10, 3}, "Dilithium-8x7-AES-r3");
100✔
501
      case 0xB47F61:
122✔
502
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 11, 1}, "Kyber-512-90s-r3");
122✔
503
      case 0xB47F62:
122✔
504
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 11, 2}, "Kyber-768-90s-r3");
122✔
505
      case 0xB47F63:
122✔
506
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 11, 3}, "Kyber-1024-90s-r3");
122✔
507
      case 0xB48264:
122✔
508
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 14, 1}, "FrodoKEM-640-SHAKE");
122✔
509
      case 0xB48265:
122✔
510
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 14, 2}, "FrodoKEM-976-SHAKE");
122✔
511
      case 0xB48266:
100✔
512
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 14, 3}, "FrodoKEM-1344-SHAKE");
100✔
513
      case 0xB48365:
122✔
514
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 15, 1}, "FrodoKEM-640-AES");
122✔
515
      case 0xB48366:
122✔
516
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 15, 2}, "FrodoKEM-976-AES");
122✔
517
      case 0xB48367:
100✔
518
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 15, 3}, "FrodoKEM-1344-AES");
100✔
519
      case 0xB48466:
122✔
520
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 16, 1}, "eFrodoKEM-640-SHAKE");
122✔
521
      case 0xB48467:
122✔
522
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 16, 2}, "eFrodoKEM-976-SHAKE");
122✔
523
      case 0xB48468:
100✔
524
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 16, 3}, "eFrodoKEM-1344-SHAKE");
100✔
525
      case 0xB48567:
122✔
526
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 17, 1}, "eFrodoKEM-640-AES");
122✔
527
      case 0xB48568:
122✔
528
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 17, 2}, "eFrodoKEM-976-AES");
122✔
529
      case 0xB48569:
100✔
530
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 17, 3}, "eFrodoKEM-1344-AES");
100✔
531
      case 0xB48668:
4✔
532
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 18, 1}, "ClassicMcEliece_6688128pc");
4✔
533
      case 0xB48669:
4✔
534
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 18, 2}, "ClassicMcEliece_6688128pcf");
4✔
535
      case 0xB4866A:
4✔
536
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 18, 3}, "ClassicMcEliece_6960119pc");
4✔
537
      case 0xB4866B:
26✔
538
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 18, 4}, "ClassicMcEliece_6960119pcf");
26✔
539
      case 0xB4866C:
4✔
540
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 18, 5}, "ClassicMcEliece_8192128pc");
4✔
541
      case 0xB4866D:
4✔
542
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 1, 18, 6}, "ClassicMcEliece_8192128pcf");
4✔
543
      case 0xB67A5A:
×
544
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 3, 2, 1}, "AES-128/OCB");
×
545
      case 0xB67A5B:
×
546
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 3, 2, 2}, "AES-192/OCB");
×
547
      case 0xB67A5C:
×
548
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 3, 2, 3}, "AES-256/OCB");
×
549
      case 0xB67A5D:
×
550
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 3, 2, 4}, "Serpent/OCB");
×
551
      case 0xB67A5E:
×
552
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 3, 2, 5}, "Twofish/OCB");
×
553
      case 0xB67A5F:
×
554
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 3, 2, 6}, "Camellia-128/OCB");
×
555
      case 0xB67A60:
×
556
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 3, 2, 7}, "Camellia-192/OCB");
×
557
      case 0xB67A61:
×
558
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 3, 2, 8}, "Camellia-256/OCB");
×
559
      case 0xB67C5C:
2✔
560
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 3, 4, 1}, "AES-128/SIV");
2✔
561
      case 0xB67C5D:
×
562
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 3, 4, 2}, "AES-192/SIV");
×
563
      case 0xB67C5E:
×
564
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 3, 4, 3}, "AES-256/SIV");
×
565
      case 0xB67C5F:
×
566
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 3, 4, 4}, "Serpent/SIV");
×
567
      case 0xB67C60:
×
568
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 3, 4, 5}, "Twofish/SIV");
×
569
      case 0xB67C61:
×
570
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 3, 4, 6}, "Camellia-128/SIV");
×
571
      case 0xB67C62:
×
572
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 3, 4, 7}, "Camellia-192/SIV");
×
573
      case 0xB67C63:
×
574
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 3, 4, 8}, "Camellia-256/SIV");
×
575
      case 0xB67C64:
×
576
         return if_match(oid, {1, 3, 6, 1, 4, 1, 25258, 3, 4, 9}, "SM4/SIV");
×
577
      case 0xB87375:
17,715✔
578
         return if_match(oid, {1, 2, 840, 113549, 1, 1, 1}, "RSA");
17,715✔
579
      case 0xB87376:
×
580
         return if_match(oid, {1, 2, 840, 113549, 1, 1, 2}, "RSA/PKCS1v15(MD2)");
×
581
      case 0xB87378:
75✔
582
         return if_match(oid, {1, 2, 840, 113549, 1, 1, 4}, "RSA/PKCS1v15(MD5)");
75✔
583
      case 0xB87379:
2,446✔
584
         return if_match(oid, {1, 2, 840, 113549, 1, 1, 5}, "RSA/PKCS1v15(SHA-1)");
2,446✔
585
      case 0xB8737B:
1✔
586
         return if_match(oid, {1, 2, 840, 113549, 1, 1, 7}, "RSA/OAEP");
1✔
587
      case 0xB8737C:
534✔
588
         return if_match(oid, {1, 2, 840, 113549, 1, 1, 8}, "MGF1");
534✔
589
      case 0xB8737E:
908✔
590
         return if_match(oid, {1, 2, 840, 113549, 1, 1, 10}, "RSA/PSS");
908✔
591
      case 0xB8737F:
11,983✔
592
         return if_match(oid, {1, 2, 840, 113549, 1, 1, 11}, "RSA/PKCS1v15(SHA-256)");
11,983✔
593
      case 0xB87380:
799✔
594
         return if_match(oid, {1, 2, 840, 113549, 1, 1, 12}, "RSA/PKCS1v15(SHA-384)");
799✔
595
      case 0xB87381:
247✔
596
         return if_match(oid, {1, 2, 840, 113549, 1, 1, 13}, "RSA/PKCS1v15(SHA-512)");
247✔
597
      case 0xB87382:
×
598
         return if_match(oid, {1, 2, 840, 113549, 1, 1, 14}, "RSA/PKCS1v15(SHA-224)");
×
599
      case 0xB87384:
×
600
         return if_match(oid, {1, 2, 840, 113549, 1, 1, 16}, "RSA/PKCS1v15(SHA-512-256)");
×
601
      case 0xB87784:
1✔
602
         return if_match(oid, {1, 2, 840, 113549, 1, 5, 12}, "PKCS5.PBKDF2");
1✔
603
      case 0xB87785:
501✔
604
         return if_match(oid, {1, 2, 840, 113549, 1, 5, 13}, "PBE-PKCS5v20");
501✔
605
      case 0xB87B7D:
8✔
606
         return if_match(oid, {1, 2, 840, 113549, 1, 9, 1}, "PKCS9.EmailAddress");
8✔
607
      case 0xB87B7E:
5✔
608
         return if_match(oid, {1, 2, 840, 113549, 1, 9, 2}, "PKCS9.UnstructuredName");
5✔
609
      case 0xB87B7F:
5✔
610
         return if_match(oid, {1, 2, 840, 113549, 1, 9, 3}, "PKCS9.ContentType");
5✔
611
      case 0xB87B80:
5✔
612
         return if_match(oid, {1, 2, 840, 113549, 1, 9, 4}, "PKCS9.MessageDigest");
5✔
613
      case 0xB87B83:
4✔
614
         return if_match(oid, {1, 2, 840, 113549, 1, 9, 7}, "PKCS9.ChallengePassword");
4✔
615
      case 0xB87B8A:
4✔
616
         return if_match(oid, {1, 2, 840, 113549, 1, 9, 14}, "PKCS9.ExtensionRequest");
4✔
617
      case 0xB90079:
×
618
         return if_match(oid, {1, 2, 840, 113549, 2, 5}, "MD5");
×
619
      case 0xB9007B:
×
620
         return if_match(oid, {1, 2, 840, 113549, 2, 7}, "HMAC(SHA-1)");
×
621
      case 0xB9007C:
×
622
         return if_match(oid, {1, 2, 840, 113549, 2, 8}, "HMAC(SHA-224)");
×
623
      case 0xB9007D:
264✔
624
         return if_match(oid, {1, 2, 840, 113549, 2, 9}, "HMAC(SHA-256)");
264✔
625
      case 0xB9007E:
1✔
626
         return if_match(oid, {1, 2, 840, 113549, 2, 10}, "HMAC(SHA-384)");
1✔
627
      case 0xB9007F:
×
628
         return if_match(oid, {1, 2, 840, 113549, 2, 11}, "HMAC(SHA-512)");
×
629
      case 0xB90081:
×
630
         return if_match(oid, {1, 2, 840, 113549, 2, 13}, "HMAC(SHA-512-256)");
×
631
      case 0xB9017C:
1✔
632
         return if_match(oid, {1, 2, 840, 113549, 3, 7}, "TripleDES/CBC");
1✔
633
      case 0xC16C79:
×
634
         return if_match(oid, {1, 2, 156, 10197, 1, 104, 2}, "SM4/CBC");
×
635
      case 0xC16C7F:
×
636
         return if_match(oid, {1, 2, 156, 10197, 1, 104, 8}, "SM4/GCM");
×
637
      case 0xC16CDB:
×
638
         return if_match(oid, {1, 2, 156, 10197, 1, 104, 100}, "SM4/OCB");
×
639
      case 0xC2323D:
55✔
640
         return if_match(oid, {1, 2, 156, 10197, 1, 301, 1}, "SM2");
55✔
641
      case 0xC2323E:
×
642
         return if_match(oid, {1, 2, 156, 10197, 1, 301, 2}, "SM2_Kex");
×
643
      case 0xC2323F:
×
644
         return if_match(oid, {1, 2, 156, 10197, 1, 301, 3}, "SM2_Enc");
×
645
      case 0xC72700:
×
646
         return if_match(oid, {1, 3, 6, 1, 4, 1, 11591, 4, 11}, "Scrypt");
×
647
      case 0xC73201:
×
648
         return if_match(oid, {1, 3, 6, 1, 4, 1, 11591, 15, 1}, "OpenPGP.Ed25519");
×
649
      case 0xC809A8:
×
650
         return if_match(oid, {1, 2, 643, 3, 131, 1, 1}, "GOST.INN");
×
651
      case 0xCBF63C:
4✔
652
         return if_match(oid, {1, 2, 156, 10197, 1, 301}, "sm2p256v1");
4✔
653
      case 0xCBF6A0:
×
654
         return if_match(oid, {1, 2, 156, 10197, 1, 401}, "SM3");
×
655
      case 0xCBF704:
×
656
         return if_match(oid, {1, 2, 156, 10197, 1, 501}, "SM2_Sig/SM3");
×
657
      case 0xCBF707:
×
658
         return if_match(oid, {1, 2, 156, 10197, 1, 504}, "RSA/PKCS1v15(SM3)");
×
659
      case 0xDED7DD:
2✔
660
         return if_match(oid, {1, 2, 250, 1, 223, 101, 256, 1}, "frp256v1");
2✔
661
      case 0xE8C2CB:
26✔
662
         return if_match(oid, {1, 3, 6, 1, 4, 1, 22554, 5, 1, 1}, "ClassicMcEliece_348864");
26✔
663
      case 0xE8C2CC:
4✔
664
         return if_match(oid, {1, 3, 6, 1, 4, 1, 22554, 5, 1, 2}, "ClassicMcEliece_348864f");
4✔
665
      case 0xE8C2CD:
4✔
666
         return if_match(oid, {1, 3, 6, 1, 4, 1, 22554, 5, 1, 3}, "ClassicMcEliece_460896");
4✔
667
      case 0xE8C2CE:
4✔
668
         return if_match(oid, {1, 3, 6, 1, 4, 1, 22554, 5, 1, 4}, "ClassicMcEliece_460896f");
4✔
669
      case 0xE8C2CF:
4✔
670
         return if_match(oid, {1, 3, 6, 1, 4, 1, 22554, 5, 1, 5}, "ClassicMcEliece_6688128");
4✔
671
      case 0xE8C2D0:
4✔
672
         return if_match(oid, {1, 3, 6, 1, 4, 1, 22554, 5, 1, 6}, "ClassicMcEliece_6688128f");
4✔
673
      case 0xE8C2D1:
4✔
674
         return if_match(oid, {1, 3, 6, 1, 4, 1, 22554, 5, 1, 7}, "ClassicMcEliece_6960119");
4✔
675
      case 0xE8C2D2:
4✔
676
         return if_match(oid, {1, 3, 6, 1, 4, 1, 22554, 5, 1, 8}, "ClassicMcEliece_6960119f");
4✔
677
      case 0xE8C2D3:
4✔
678
         return if_match(oid, {1, 3, 6, 1, 4, 1, 22554, 5, 1, 9}, "ClassicMcEliece_8192128");
4✔
679
      case 0xE8C2D4:
4✔
680
         return if_match(oid, {1, 3, 6, 1, 4, 1, 22554, 5, 1, 10}, "ClassicMcEliece_8192128f");
4✔
681
      case 0xEEFDCB:
108✔
682
         return if_match(oid, {1, 0, 14888, 3, 0, 5}, "ECKCDSA");
108✔
683
      case 0xF49CE8:
4✔
684
         return if_match(oid, {1, 3, 6, 1, 5, 5, 7, 48, 1, 1}, "PKIX.OCSP.BasicResponse");
4✔
685
      case 0xF49CEC:
×
686
         return if_match(oid, {1, 3, 6, 1, 5, 5, 7, 48, 1, 5}, "PKIX.OCSP.NoCheck");
×
687
      case 0xFE30D2:
109✔
688
         return if_match(oid, {1, 3, 36, 3, 3, 2, 5, 2, 1}, "ECGDSA");
109✔
689
      case 0xFE32D4:
×
690
         return if_match(oid, {1, 3, 36, 3, 3, 2, 5, 4, 1}, "ECGDSA/RIPEMD-160");
×
691
      case 0xFE32D5:
×
692
         return if_match(oid, {1, 3, 36, 3, 3, 2, 5, 4, 2}, "ECGDSA/SHA-1");
×
693
      case 0xFE32D6:
×
694
         return if_match(oid, {1, 3, 36, 3, 3, 2, 5, 4, 3}, "ECGDSA/SHA-224");
×
695
      case 0xFE32D7:
59✔
696
         return if_match(oid, {1, 3, 36, 3, 3, 2, 5, 4, 4}, "ECGDSA/SHA-256");
59✔
697
      case 0xFE32D8:
×
698
         return if_match(oid, {1, 3, 36, 3, 3, 2, 5, 4, 5}, "ECGDSA/SHA-384");
×
699
      case 0xFE32D9:
×
700
         return if_match(oid, {1, 3, 36, 3, 3, 2, 5, 4, 6}, "ECGDSA/SHA-512");
×
701
      default:
10,558✔
702
         return {};
10,558✔
703
   }
704
   // clang-format on
705
}
706

707
//static
708
std::optional<OID> OID_Map::lookup_static_oid_name(std::string_view req) {
115,128✔
709
   const uint32_t hc = oid_name_hash(req);
115,128✔
710

711
   // clang-format off
712
   switch(hc) {
115,128✔
713

714
      case 0x00044C:
119✔
715
         return if_match(req, "ML-DSA-6x5", {2, 16, 840, 1, 101, 3, 4, 3, 18});
119✔
716
      case 0x01ACF3:
20✔
717
         return if_match(req, "ClassicMcEliece_6960119pcf", {1, 3, 6, 1, 4, 1, 25258, 1, 18, 4});
20✔
718
      case 0x01F080:
22✔
719
         return if_match(req, "ML-DSA-8x7", {2, 16, 840, 1, 101, 3, 4, 3, 19});
22✔
720
      case 0x022DFD:
99✔
721
         return if_match(req, "ECKCDSA", {1, 0, 14888, 3, 0, 5});
99✔
722
      case 0x023426:
47✔
723
         return if_match(req, "DH", {1, 2, 840, 10046, 2, 1});
47✔
724
      case 0x0235A7:
2,042✔
725
         return if_match(req, "RSA/PKCS1v15(SHA-1)", {1, 2, 840, 113549, 1, 1, 5});
2,042✔
726
      case 0x0359C1:
27✔
727
         return if_match(req, "SLH-DSA-SHAKE-256f", {2, 16, 840, 1, 101, 3, 4, 3, 31});
27✔
728
      case 0x0359CE:
27✔
729
         return if_match(req, "SLH-DSA-SHAKE-256s", {2, 16, 840, 1, 101, 3, 4, 3, 30});
27✔
730
      case 0x039345:
53✔
731
         return if_match(req, "Dilithium-8x7-r3", {1, 3, 6, 1, 4, 1, 25258, 1, 9, 3});
53✔
732
      case 0x051BAF:
1,493✔
733
         return if_match(req, "X509v3.ExtendedKeyUsage", {2, 5, 29, 37});
1,493✔
734
      case 0x0604E7:
×
735
         return if_match(req, "GOST.SubjectSigningTool", {1, 2, 643, 100, 111});
×
736
      case 0x06A7B7:
×
737
         return if_match(req, "Certificate Comment", {2, 16, 840, 1, 113730, 1, 13});
×
738
      case 0x0832C6:
68✔
739
         return if_match(req, "FrodoKEM-976-AES", {1, 3, 6, 1, 4, 1, 25258, 1, 15, 2});
68✔
740
      case 0x08981E:
37✔
741
         return if_match(req, "GOST-34.10-2012-256/SHA-256", {1, 3, 6, 1, 4, 1, 25258, 1, 6, 1});
37✔
742
      case 0x0A841E:
68✔
743
         return if_match(req, "ML-KEM-1024", {2, 16, 840, 1, 101, 3, 4, 4, 3});
68✔
744
      case 0x0CFB49:
216✔
745
         return if_match(req, "sm2p256v1", {1, 2, 156, 10197, 1, 301});
216✔
746
      case 0x0DCD52:
×
747
         return if_match(req, "DSA/SHA-1", {1, 2, 840, 10040, 4, 3});
×
748
      case 0x0F2EE9:
31✔
749
         return if_match(req, "SLH-DSA-SHAKE-128f", {2, 16, 840, 1, 101, 3, 4, 3, 27});
31✔
750
      case 0x0F2EF6:
31✔
751
         return if_match(req, "SLH-DSA-SHAKE-128s", {2, 16, 840, 1, 101, 3, 4, 3, 26});
31✔
752
      case 0x0F64A4:
68✔
753
         return if_match(req, "FrodoKEM-640-AES", {1, 3, 6, 1, 4, 1, 25258, 1, 15, 1});
68✔
754
      case 0x1073A3:
1,712✔
755
         return if_match(req, "X520.Country", {2, 5, 4, 6});
1,712✔
756
      case 0x10ED59:
×
757
         return if_match(req, "Camellia-128/CBC", {1, 2, 392, 200011, 61, 1, 1, 1, 2});
×
758
      case 0x1285C6:
26✔
759
         return if_match(req, "SphincsPlus-sha2-192s-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 2, 3});
26✔
760
      case 0x14C6C2:
×
761
         return if_match(req, "Camellia-128/GCM", {0, 3, 4401, 5, 3, 1, 9, 6});
×
762
      case 0x15C990:
×
763
         return if_match(req, "Microsoft SmartcardLogon", {1, 3, 6, 1, 4, 1, 311, 20, 2, 2});
×
764
      case 0x15E3B6:
27✔
765
         return if_match(req, "SLH-DSA-SHAKE-192f", {2, 16, 840, 1, 101, 3, 4, 3, 29});
27✔
766
      case 0x15E3C3:
27✔
767
         return if_match(req, "SLH-DSA-SHAKE-192s", {2, 16, 840, 1, 101, 3, 4, 3, 28});
27✔
768
      case 0x1894F9:
29✔
769
         return if_match(req, "SphincsPlus-shake-128f-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 1, 2});
29✔
770
      case 0x1A4B73:
×
771
         return if_match(req, "Threefish-512/CBC", {1, 3, 6, 1, 4, 1, 25258, 3, 2});
×
772
      case 0x1A76CF:
95✔
773
         return if_match(req, "DSA", {1, 2, 840, 10040, 4, 1});
95✔
774
      case 0x1B8B33:
445✔
775
         return if_match(req, "AES-128/CBC", {2, 16, 840, 1, 101, 3, 4, 1, 2});
445✔
776
      case 0x1B8C38:
×
777
         return if_match(req, "AES-128/CCM", {2, 16, 840, 1, 101, 3, 4, 1, 7});
×
778
      case 0x1C777F:
×
779
         return if_match(req, "Camellia-128/OCB", {1, 3, 6, 1, 4, 1, 25258, 3, 2, 6});
×
780
      case 0x1E6334:
×
781
         return if_match(req, "ECDSA/SHA-3(512)", {2, 16, 840, 1, 101, 3, 4, 3, 12});
×
782
      case 0x1F649C:
2✔
783
         return if_match(req, "AES-128/GCM", {2, 16, 840, 1, 101, 3, 4, 1, 6});
2✔
784
      case 0x2055D9:
×
785
         return if_match(req, "Camellia-128/SIV", {1, 3, 6, 1, 4, 1, 25258, 3, 4, 6});
×
786
      case 0x20ED25:
472✔
787
         return if_match(req, "Scrypt", {1, 3, 6, 1, 4, 1, 11591, 4, 11});
472✔
788
      case 0x230EEF:
1✔
789
         return if_match(req, "MD5", {1, 2, 840, 113549, 2, 5});
1✔
790
      case 0x237E02:
54✔
791
         return if_match(req, "X509v3.NameConstraints", {2, 5, 29, 30});
54✔
792
      case 0x2486E6:
80✔
793
         return if_match(req, "secp224k1", {1, 3, 132, 0, 32});
80✔
794
      case 0x248DC3:
2,835✔
795
         return if_match(req, "secp224r1", {1, 3, 132, 0, 33});
2,835✔
796
      case 0x25E019:
×
797
         return if_match(req, "GOST-34.10/GOST-R-34.11-94", {1, 2, 643, 2, 2, 3});
×
798
      case 0x266BB5:
68✔
799
         return if_match(req, "Kyber-512-90s-r3", {1, 3, 6, 1, 4, 1, 25258, 1, 11, 1});
68✔
800
      case 0x271559:
×
801
         return if_match(req, "AES-128/OCB", {1, 3, 6, 1, 4, 1, 25258, 3, 2, 1});
×
802
      case 0x2795D8:
13✔
803
         return if_match(req, "secp192k1", {1, 3, 132, 0, 31});
13✔
804
      case 0x279CB5:
361✔
805
         return if_match(req, "secp192r1", {1, 2, 840, 10045, 3, 1, 1});
361✔
806
      case 0x27EC2D:
1,064✔
807
         return if_match(req, "RSA", {1, 2, 840, 113549, 1, 1, 1});
1,064✔
808
      case 0x280B77:
2✔
809
         return if_match(req, "ClassicMcEliece_460896", {1, 3, 6, 1, 4, 1, 22554, 5, 1, 3});
2✔
810
      case 0x28DC55:
75✔
811
         return if_match(req, "SM2", {1, 2, 156, 10197, 1, 301, 1});
75✔
812
      case 0x28DC56:
1✔
813
         return if_match(req, "SM3", {1, 2, 156, 10197, 1, 401});
1✔
814
      case 0x298F1D:
×
815
         return if_match(req, "PKIX.TNAuthList", {1, 3, 6, 1, 5, 5, 7, 1, 26});
×
816
      case 0x2A970E:
2,047✔
817
         return if_match(req, "ECDSA/SHA-1", {1, 2, 840, 10045, 4, 1});
2,047✔
818
      case 0x2AF3B3:
2✔
819
         return if_match(req, "AES-128/SIV", {1, 3, 6, 1, 4, 1, 25258, 3, 4, 1});
2✔
820
      case 0x2AF8FC:
486✔
821
         return if_match(req, "brainpool320r1", {1, 3, 36, 3, 3, 2, 8, 1, 1, 9});
486✔
822
      case 0x2CF12F:
×
823
         return if_match(req, "X509v3.ReasonCode", {2, 5, 29, 21});
×
824
      case 0x2F7A90:
3✔
825
         return if_match(req, "RSA/OAEP", {1, 2, 840, 113549, 1, 1, 7});
3✔
826
      case 0x2FE5A6:
×
827
         return if_match(req, "X520.GenerationalQualifier", {2, 5, 4, 44});
×
828
      case 0x321542:
×
829
         return if_match(req, "ECGDSA/SHA-1", {1, 3, 36, 3, 3, 2, 5, 4, 2});
×
830
      case 0x32C06A:
19,900✔
831
         return if_match(req, "X509v3.SubjectAlternativeName", {2, 5, 29, 17});
19,900✔
832
      case 0x339344:
×
833
         return if_match(req, "SM4/CBC", {1, 2, 156, 10197, 1, 104, 2});
×
834
      case 0x34BB5F:
69✔
835
         return if_match(req, "GOST-34.10-2012-256", {1, 2, 643, 7, 1, 1, 1, 1});
69✔
836
      case 0x376CAD:
×
837
         return if_match(req, "SM4/GCM", {1, 2, 156, 10197, 1, 104, 8});
×
838
      case 0x3799BA:
×
839
         return if_match(req, "GOST-34.10-2012-512", {1, 2, 643, 7, 1, 1, 1, 2});
×
840
      case 0x3850B1:
2✔
841
         return if_match(req, "ClassicMcEliece_6688128f", {1, 3, 6, 1, 4, 1, 22554, 5, 1, 6});
2✔
842
      case 0x3964B1:
×
843
         return if_match(req, "X509v3.CRLDistributionPoints", {2, 5, 29, 31});
×
844
      case 0x3B3720:
×
845
         return if_match(req, "HMAC(SHA-512)", {1, 2, 840, 113549, 2, 11});
×
846
      case 0x3B388F:
68✔
847
         return if_match(req, "FrodoKEM-976-SHAKE", {1, 3, 6, 1, 4, 1, 25258, 1, 14, 2});
68✔
848
      case 0x3CA748:
26✔
849
         return if_match(req, "SphincsPlus-shake-128s-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 1, 1});
26✔
850
      case 0x3CF1AB:
4,041✔
851
         return if_match(req, "PKCS9.ChallengePassword", {1, 2, 840, 113549, 1, 9, 7});
4,041✔
852
      case 0x3F1D6A:
×
853
         return if_match(req, "SM4/OCB", {1, 2, 156, 10197, 1, 104, 100});
×
854
      case 0x426CFA:
50✔
855
         return if_match(req, "eFrodoKEM-1344-SHAKE", {1, 3, 6, 1, 4, 1, 25258, 1, 16, 3});
50✔
856
      case 0x428414:
20✔
857
         return if_match(req, "X448", {1, 3, 101, 111});
20✔
858
      case 0x428AD3:
×
859
         return if_match(req, "ECDSA/SHA-3(384)", {2, 16, 840, 1, 101, 3, 4, 3, 11});
×
860
      case 0x42FBC4:
×
861
         return if_match(req, "SM4/SIV", {1, 3, 6, 1, 4, 1, 25258, 3, 4, 9});
×
862
      case 0x432A11:
68✔
863
         return if_match(req, "eFrodoKEM-640-SHAKE", {1, 3, 6, 1, 4, 1, 25258, 1, 16, 1});
68✔
864
      case 0x449390:
2✔
865
         return if_match(req, "ClassicMcEliece_6960119f", {1, 3, 6, 1, 4, 1, 22554, 5, 1, 8});
2✔
866
      case 0x449638:
×
867
         return if_match(req, "Microsoft UPN", {1, 3, 6, 1, 4, 1, 311, 20, 2, 3});
×
868
      case 0x450DB4:
×
869
         return if_match(req, "RSA/PKCS1v15(SM3)", {1, 2, 156, 10197, 1, 504});
×
870
      case 0x4B7BBA:
×
871
         return if_match(req, "ECDSA/SHA-3(224)", {2, 16, 840, 1, 101, 3, 4, 3, 9});
×
872
      case 0x4B8668:
×
873
         return if_match(req, "SM2_Enc", {1, 2, 156, 10197, 1, 301, 3});
×
874
      case 0x4BFB88:
26✔
875
         return if_match(req, "SphincsPlus-shake-192f-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 1, 4});
26✔
876
      case 0x4C5734:
×
877
         return if_match(req, "OpenPGP.Curve25519", {1, 3, 6, 1, 4, 1, 3029, 1, 5, 1});
×
878
      case 0x4D83CA:
×
879
         return if_match(req, "PKIX.AuthorityInformationAccess", {1, 3, 6, 1, 5, 5, 7, 1, 1});
×
880
      case 0x4DEEE8:
×
881
         return if_match(req, "X509v3.IssuerAlternativeName", {2, 5, 29, 18});
×
882
      case 0x4E5FFB:
×
883
         return if_match(req, "ECDSA/SHA-3(256)", {2, 16, 840, 1, 101, 3, 4, 3, 10});
×
884
      case 0x4E7E8F:
×
885
         return if_match(req, "RSA/PKCS1v15(SHA-3(512))", {2, 16, 840, 1, 101, 3, 4, 3, 16});
×
886
      case 0x4FDAD7:
×
887
         return if_match(req, "X520.Pseudonym", {2, 5, 4, 65});
×
888
      case 0x5127D3:
×
889
         return if_match(req, "PKIX.OCSP.BasicResponse", {1, 3, 6, 1, 5, 5, 7, 48, 1, 1});
×
890
      case 0x514240:
×
891
         return if_match(req, "SM2_Kex", {1, 2, 156, 10197, 1, 301, 2});
×
892
      case 0x51CA1D:
13✔
893
         return if_match(req, "secp160k1", {1, 3, 132, 0, 9});
13✔
894
      case 0x51D0FA:
96✔
895
         return if_match(req, "secp160r1", {1, 3, 132, 0, 8});
96✔
896
      case 0x51D0FB:
78✔
897
         return if_match(req, "secp160r2", {1, 3, 132, 0, 30});
78✔
898
      case 0x531FF6:
×
899
         return if_match(req, "RSA/PKCS1v15(SHA-512-256)", {1, 2, 840, 113549, 1, 1, 16});
×
900
      case 0x54BC71:
×
901
         return if_match(req, "Serpent/CBC", {1, 3, 6, 1, 4, 1, 25258, 3, 1});
×
902
      case 0x551D36:
×
903
         return if_match(req, "PKIX.AutonomousSysIds", {1, 3, 6, 1, 5, 5, 7, 1, 8});
×
904
      case 0x552907:
×
905
         return if_match(req, "Streebog-256", {1, 2, 643, 7, 1, 1, 2, 2});
×
906
      case 0x556EDE:
2,775✔
907
         return if_match(req, "PKCS9.EmailAddress", {1, 2, 840, 113549, 1, 9, 1});
2,775✔
908
      case 0x57E96A:
3,000✔
909
         return if_match(req, "PKCS9.ExtensionRequest", {1, 2, 840, 113549, 1, 9, 14});
3,000✔
910
      case 0x580762:
×
911
         return if_match(req, "Streebog-512", {1, 2, 643, 7, 1, 1, 2, 3});
×
912
      case 0x5895DA:
×
913
         return if_match(req, "Serpent/GCM", {1, 3, 6, 1, 4, 1, 25258, 3, 101});
×
914
      case 0x59685E:
×
915
         return if_match(req, "SphincsPlus-haraka-256f-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 3, 6});
×
916
      case 0x5AAB05:
90✔
917
         return if_match(req, "XMSS", {0, 4, 0, 127, 0, 15, 1, 1, 13, 0});
90✔
918
      case 0x5ACAB0:
50✔
919
         return if_match(req, "FrodoKEM-1344-SHAKE", {1, 3, 6, 1, 4, 1, 25258, 1, 14, 3});
50✔
920
      case 0x5B55AC:
×
921
         return if_match(req, "RSA/PKCS1v15(SHA-3(256))", {2, 16, 840, 1, 101, 3, 4, 3, 14});
×
922
      case 0x5F5EBF:
×
923
         return if_match(req, "HMAC(SHA-384)", {1, 2, 840, 113549, 2, 10});
×
924
      case 0x6016EF:
20✔
925
         return if_match(req, "ClassicMcEliece_348864", {1, 3, 6, 1, 4, 1, 22554, 5, 1, 1});
20✔
926
      case 0x604697:
×
927
         return if_match(req, "Serpent/OCB", {1, 3, 6, 1, 4, 1, 25258, 3, 2, 4});
×
928
      case 0x605B46:
2,289✔
929
         return if_match(req, "secp384r1", {1, 3, 132, 0, 34});
2,289✔
930
      case 0x623622:
×
931
         return if_match(req, "ECGDSA/RIPEMD-160", {1, 3, 36, 3, 3, 2, 5, 4, 1});
×
932
      case 0x63A71B:
539✔
933
         return if_match(req, "SHA-1", {1, 3, 14, 3, 2, 26});
539✔
934
      case 0x63B78D:
685✔
935
         return if_match(req, "brainpool512r1", {1, 3, 36, 3, 3, 2, 8, 1, 1, 13});
685✔
936
      case 0x640EE2:
×
937
         return if_match(req, "PKIX.IPsecTunnel", {1, 3, 6, 1, 5, 5, 7, 3, 6});
×
938
      case 0x641D81:
2✔
939
         return if_match(req, "ClassicMcEliece_8192128pc", {1, 3, 6, 1, 4, 1, 25258, 1, 18, 5});
2✔
940
      case 0x6424F1:
×
941
         return if_match(req, "Serpent/SIV", {1, 3, 6, 1, 4, 1, 25258, 3, 4, 4});
×
942
      case 0x6541F1:
×
943
         return if_match(req, "X509v3.PolicyConstraints", {2, 5, 29, 36});
×
944
      case 0x66EE7D:
24✔
945
         return if_match(req, "PKIX.EmailProtection", {1, 3, 6, 1, 5, 5, 7, 3, 4});
24✔
946
      case 0x671622:
2,064✔
947
         return if_match(req, "X520.CommonName", {2, 5, 4, 3});
2,064✔
948
      case 0x684FA6:
×
949
         return if_match(req, "HMAC(SHA-224)", {1, 2, 840, 113549, 2, 8});
×
950
      case 0x687792:
188✔
951
         return if_match(req, "ECDH", {1, 3, 132, 1, 12});
188✔
952
      case 0x698DAE:
×
953
         return if_match(req, "HMAC(SHA-512-256)", {1, 2, 840, 113549, 2, 13});
×
954
      case 0x6AF5CE:
2✔
955
         return if_match(req, "ClassicMcEliece_348864f", {1, 3, 6, 1, 4, 1, 22554, 5, 1, 2});
2✔
956
      case 0x6B33E7:
297✔
957
         return if_match(req, "HMAC(SHA-256)", {1, 2, 840, 113549, 2, 9});
297✔
958
      case 0x6BD4BA:
5,464✔
959
         return if_match(req, "RSA/PSS", {1, 2, 840, 113549, 1, 1, 10});
5,464✔
960
      case 0x6DD3C0:
×
961
         return if_match(req, "GOST-34.10-2012-512/Streebog-512", {1, 2, 643, 7, 1, 1, 3, 3});
×
962
      case 0x6E77E8:
×
963
         return if_match(req, "DSA/SHA-3(512)", {2, 16, 840, 1, 101, 3, 4, 3, 8});
×
964
      case 0x6EA392:
×
965
         return if_match(req, "PKCS9.ContentType", {1, 2, 840, 113549, 1, 9, 3});
×
966
      case 0x6F33B1:
×
967
         return if_match(req, "X520.Initials", {2, 5, 4, 43});
×
968
      case 0x700DD7:
26✔
969
         return if_match(req, "SphincsPlus-shake-192s-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 1, 3});
26✔
970
      case 0x708EAA:
721✔
971
         return if_match(req, "brainpool256r1", {1, 3, 36, 3, 3, 2, 8, 1, 1, 7});
721✔
972
      case 0x73012A:
×
973
         return if_match(req, "SEED/CBC", {1, 2, 410, 200004, 1, 4});
×
974
      case 0x733A29:
68✔
975
         return if_match(req, "Kyber-1024-90s-r3", {1, 3, 6, 1, 4, 1, 25258, 1, 11, 3});
68✔
976
      case 0x74FB49:
1,719✔
977
         return if_match(req, "X520.Organization", {2, 5, 4, 10});
1,719✔
978
      case 0x750788:
×
979
         return if_match(req, "X520.StreetAddress", {2, 5, 4, 9});
×
980
      case 0x77B726:
2✔
981
         return if_match(req, "ClassicMcEliece_460896f", {1, 3, 6, 1, 4, 1, 22554, 5, 1, 4});
2✔
982
      case 0x7AC630:
26✔
983
         return if_match(req, "SphincsPlus-sha2-256f-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 2, 6});
26✔
984
      case 0x7D7AAD:
×
985
         return if_match(req, "SphincsPlus-haraka-256s-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 3, 5});
×
986
      case 0x81F558:
2✔
987
         return if_match(req, "ClassicMcEliece_8192128", {1, 3, 6, 1, 4, 1, 22554, 5, 1, 9});
2✔
988
      case 0x824D5F:
263✔
989
         return if_match(req, "HMAC(SHA-1)", {1, 2, 840, 113549, 2, 7});
263✔
990
      case 0x8589F1:
×
991
         return if_match(req, "RSA/PKCS1v15(SHA-3(224))", {2, 16, 840, 1, 101, 3, 4, 3, 13});
×
992
      case 0x871090:
54✔
993
         return if_match(req, "Dilithium-4x4-r3", {1, 3, 6, 1, 4, 1, 25258, 1, 9, 1});
54✔
994
      case 0x87BF63:
×
995
         return if_match(req, "X509v3.HoldInstructionCode", {2, 5, 29, 23});
×
996
      case 0x884D9C:
13✔
997
         return if_match(req, "gost_512A", {1, 2, 643, 7, 1, 2, 1, 2, 1});
13✔
998
      case 0x884D9D:
×
999
         return if_match(req, "gost_512B", {1, 2, 643, 7, 1, 2, 1, 2, 2});
×
1000
      case 0x887C4B:
2✔
1001
         return if_match(req, "ClassicMcEliece_6960119", {1, 3, 6, 1, 4, 1, 22554, 5, 1, 7});
2✔
1002
      case 0x89C372:
108✔
1003
         return if_match(req, "numsp512d1", {1, 3, 6, 1, 4, 1, 25258, 4, 3});
108✔
1004
      case 0x8C8874:
533✔
1005
         return if_match(req, "PBE-PKCS5v20", {1, 2, 840, 113549, 1, 5, 13});
533✔
1006
      case 0x8CDB2C:
2✔
1007
         return if_match(req, "ClassicMcEliece_6688128pcf", {1, 3, 6, 1, 4, 1, 25258, 1, 18, 2});
2✔
1008
      case 0x8E846B:
13✔
1009
         return if_match(req, "McEliece", {1, 3, 6, 1, 4, 1, 25258, 1, 3});
13✔
1010
      case 0x8F3FB0:
4,480✔
1011
         return if_match(req, "X509v3.BasicConstraints", {2, 5, 29, 19});
4,480✔
1012
      case 0x8FEFDC:
×
1013
         return if_match(req, "GOST.OGRN", {1, 2, 643, 100, 1});
×
1014
      case 0x926F06:
109✔
1015
         return if_match(req, "HSS-LMS", {1, 2, 840, 113549, 1, 9, 16, 3, 17});
109✔
1016
      case 0x929F87:
×
1017
         return if_match(req, "DSA/SHA-3(384)", {2, 16, 840, 1, 101, 3, 4, 3, 7});
×
1018
      case 0x94A6C6:
×
1019
         return if_match(req, "RSA/PKCS1v15(MD2)", {1, 2, 840, 113549, 1, 1, 2});
×
1020
      case 0x94A9B7:
×
1021
         return if_match(req, "RSA/PKCS1v15(MD5)", {1, 2, 840, 113549, 1, 1, 4});
×
1022
      case 0x96501B:
100✔
1023
         return if_match(req, "ECGDSA", {1, 3, 36, 3, 3, 2, 5, 2, 1});
100✔
1024
      case 0x969A8F:
×
1025
         return if_match(req, "numsp256d1", {1, 3, 6, 1, 4, 1, 25258, 4, 1});
×
1026
      case 0x976FFB:
2,204✔
1027
         return if_match(req, "ECDSA", {1, 2, 840, 10045, 2, 1});
2,204✔
1028
      case 0x98362E:
15✔
1029
         return if_match(req, "x962_p239v1", {1, 2, 840, 10045, 3, 1, 4});
15✔
1030
      case 0x98362F:
13✔
1031
         return if_match(req, "x962_p239v2", {1, 2, 840, 10045, 3, 1, 5});
13✔
1032
      case 0x983630:
13✔
1033
         return if_match(req, "x962_p239v3", {1, 2, 840, 10045, 3, 1, 6});
13✔
1034
      case 0x9926EB:
796✔
1035
         return if_match(req, "PKCS5.PBKDF2", {1, 2, 840, 113549, 1, 5, 12});
796✔
1036
      case 0x99AF16:
×
1037
         return if_match(req, "SphincsPlus-haraka-128f-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 3, 2});
×
1038
      case 0x99ED3D:
1,678✔
1039
         return if_match(req, "X520.Locality", {2, 5, 4, 7});
1,678✔
1040
      case 0x9AC2EF:
538✔
1041
         return if_match(req, "brainpool224r1", {1, 3, 36, 3, 3, 2, 8, 1, 1, 5});
538✔
1042
      case 0x9B906E:
×
1043
         return if_match(req, "DSA/SHA-3(224)", {2, 16, 840, 1, 101, 3, 4, 3, 5});
×
1044
      case 0x9BCD4B:
53✔
1045
         return if_match(req, "Dilithium-6x5-AES-r3", {1, 3, 6, 1, 4, 1, 25258, 1, 10, 2});
53✔
1046
      case 0x9D210F:
×
1047
         return if_match(req, "X520.GivenName", {2, 5, 4, 42});
×
1048
      case 0x9DD1E1:
78✔
1049
         return if_match(req, "brainpool192r1", {1, 3, 36, 3, 3, 2, 8, 1, 1, 3});
78✔
1050
      case 0x9E680D:
×
1051
         return if_match(req, "KeyWrap.AES-128", {2, 16, 840, 1, 101, 3, 4, 1, 5});
×
1052
      case 0x9E6EE4:
×
1053
         return if_match(req, "KeyWrap.AES-192", {2, 16, 840, 1, 101, 3, 4, 1, 25});
×
1054
      case 0x9E74AF:
×
1055
         return if_match(req, "DSA/SHA-3(256)", {2, 16, 840, 1, 101, 3, 4, 3, 6});
×
1056
      case 0x9ED87F:
26✔
1057
         return if_match(req, "SphincsPlus-sha2-256s-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 2, 5});
26✔
1058
      case 0x9EE4CC:
×
1059
         return if_match(req, "X520.Surname", {2, 5, 4, 4});
×
1060
      case 0x9F6115:
×
1061
         return if_match(req, "KeyWrap.AES-256", {2, 16, 840, 1, 101, 3, 4, 1, 45});
×
1062
      case 0xA0E890:
1,676✔
1063
         return if_match(req, "X520.State", {2, 5, 4, 8});
1,676✔
1064
      case 0xA25A24:
277✔
1065
         return if_match(req, "PKIX.ServerAuth", {1, 3, 6, 1, 5, 5, 7, 3, 1});
277✔
1066
      case 0xA28AE0:
176✔
1067
         return if_match(req, "Ed448", {1, 3, 101, 113});
176✔
1068
      case 0xA3F763:
68✔
1069
         return if_match(req, "eFrodoKEM-976-SHAKE", {1, 3, 6, 1, 4, 1, 25258, 1, 16, 2});
68✔
1070
      case 0xA3F903:
×
1071
         return if_match(req, "SHAKE-128", {2, 16, 840, 1, 101, 3, 4, 2, 11});
×
1072
      case 0xA42027:
76✔
1073
         return if_match(req, "Dilithium-8x7-AES-r3", {1, 3, 6, 1, 4, 1, 25258, 1, 10, 3});
76✔
1074
      case 0xA469CD:
×
1075
         return if_match(req, "ChaCha20Poly1305", {1, 2, 840, 113549, 1, 9, 16, 3, 18});
×
1076
      case 0xA47ADD:
68✔
1077
         return if_match(req, "Kyber-768-r3", {1, 3, 6, 1, 4, 1, 25258, 1, 7, 2});
68✔
1078
      case 0xA4F20B:
×
1079
         return if_match(req, "SHAKE-256", {2, 16, 840, 1, 101, 3, 4, 2, 12});
×
1080
      case 0xA52C21:
13✔
1081
         return if_match(req, "x962_p192v2", {1, 2, 840, 10045, 3, 1, 2});
13✔
1082
      case 0xA52C22:
13✔
1083
         return if_match(req, "x962_p192v3", {1, 2, 840, 10045, 3, 1, 3});
13✔
1084
      case 0xA5F9AC:
×
1085
         return if_match(req, "GOST.INN", {1, 2, 643, 3, 131, 1, 1});
×
1086
      case 0xA7E727:
1,676✔
1087
         return if_match(req, "X520.SerialNumber", {2, 5, 4, 5});
1,676✔
1088
      case 0xAA2496:
1,450✔
1089
         return if_match(req, "X509v3.KeyUsage", {2, 5, 29, 15});
1,450✔
1090
      case 0xACAE87:
×
1091
         return if_match(req, "ECDSA/SHA-224", {1, 2, 840, 10045, 4, 3, 1});
×
1092
      case 0xACB17A:
3,981✔
1093
         return if_match(req, "ECDSA/SHA-256", {1, 2, 840, 10045, 4, 3, 2});
3,981✔
1094
      case 0xADAA82:
2,469✔
1095
         return if_match(req, "ECDSA/SHA-384", {1, 2, 840, 10045, 4, 3, 3});
2,469✔
1096
      case 0xAEA53E:
×
1097
         return if_match(req, "Twofish/CBC", {1, 3, 6, 1, 4, 1, 25258, 3, 3});
×
1098
      case 0xAF3C97:
2✔
1099
         return if_match(req, "ClassicMcEliece_6688128pc", {1, 3, 6, 1, 4, 1, 25258, 1, 18, 1});
2✔
1100
      case 0xAF8FD5:
474✔
1101
         return if_match(req, "ECDSA/SHA-512", {1, 2, 840, 10045, 4, 3, 4});
474✔
1102
      case 0xB0489B:
×
1103
         return if_match(req, "DSA/SHA-224", {2, 16, 840, 1, 101, 3, 4, 3, 1});
×
1104
      case 0xB04B8E:
37✔
1105
         return if_match(req, "DSA/SHA-256", {2, 16, 840, 1, 101, 3, 4, 3, 2});
37✔
1106
      case 0xB05756:
×
1107
         return if_match(req, "X509v3.CRLIssuingDistributionPoint", {2, 5, 29, 28});
×
1108
      case 0xB0B899:
×
1109
         return if_match(req, "SM2_Sig/SM3", {1, 2, 156, 10197, 1, 501});
×
1110
      case 0xB14496:
×
1111
         return if_match(req, "DSA/SHA-384", {2, 16, 840, 1, 101, 3, 4, 3, 3});
×
1112
      case 0xB27EA7:
×
1113
         return if_match(req, "Twofish/GCM", {1, 3, 6, 1, 4, 1, 25258, 3, 102});
×
1114
      case 0xB329E9:
×
1115
         return if_match(req, "DSA/SHA-512", {2, 16, 840, 1, 101, 3, 4, 3, 4});
×
1116
      case 0xB407A4:
148✔
1117
         return if_match(req, "PKIX.OCSPSigning", {1, 3, 6, 1, 5, 5, 7, 3, 9});
148✔
1118
      case 0xB4CD3C:
2✔
1119
         return if_match(req, "ClassicMcEliece_6960119pc", {1, 3, 6, 1, 4, 1, 25258, 1, 18, 3});
2✔
1120
      case 0xB65B9B:
1✔
1121
         return if_match(req, "SHA-3(512)", {2, 16, 840, 1, 101, 3, 4, 2, 10});
1✔
1122
      case 0xB67821:
×
1123
         return if_match(req, "PKIX.IpAddrBlocks", {1, 3, 6, 1, 5, 5, 7, 1, 7});
×
1124
      case 0xB84A63:
25✔
1125
         return if_match(req, "gost_256A", {1, 2, 643, 7, 1, 2, 1, 1, 1});
25✔
1126
      case 0xB84A64:
×
1127
         return if_match(req, "gost_256B", {1, 2, 643, 7, 1, 2, 1, 1, 2});
×
1128
      case 0xBA2F64:
×
1129
         return if_match(req, "Twofish/OCB", {1, 3, 6, 1, 4, 1, 25258, 3, 2, 5});
×
1130
      case 0xBA6889:
×
1131
         return if_match(req, "ECKCDSA/SHA-224", {1, 2, 410, 200004, 1, 100, 4, 4});
×
1132
      case 0xBA6B7C:
37✔
1133
         return if_match(req, "ECKCDSA/SHA-256", {1, 2, 410, 200004, 1, 100, 4, 5});
37✔
1134
      case 0xBAEEEB:
1✔
1135
         return if_match(req, "RIPEMD-160", {1, 3, 36, 3, 2, 1});
1✔
1136
      case 0xBB0CE8:
29✔
1137
         return if_match(req, "SphincsPlus-sha2-128f-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 2, 2});
29✔
1138
      case 0xBB6720:
830✔
1139
         return if_match(req, "Ed25519", {1, 3, 101, 112});
830✔
1140
      case 0xBC73DE:
2✔
1141
         return if_match(req, "ClassicMcEliece_6688128", {1, 3, 6, 1, 4, 1, 22554, 5, 1, 5});
2✔
1142
      case 0xBD49E1:
×
1143
         return if_match(req, "Camellia-256/CBC", {1, 2, 392, 200011, 61, 1, 1, 1, 4});
×
1144
      case 0xBDC165:
×
1145
         return if_match(req, "SphincsPlus-haraka-128s-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 3, 1});
×
1146
      case 0xBE0DBE:
×
1147
         return if_match(req, "Twofish/SIV", {1, 3, 6, 1, 4, 1, 25258, 3, 4, 5});
×
1148
      case 0xBFB440:
×
1149
         return if_match(req, "Camellia-192/CBC", {1, 2, 392, 200011, 61, 1, 1, 1, 3});
×
1150
      case 0xC02313:
×
1151
         return if_match(req, "X509v3.PrivateKeyUsagePeriod", {2, 5, 29, 16});
×
1152
      case 0xC1234A:
×
1153
         return if_match(req, "Camellia-256/GCM", {0, 3, 4401, 5, 3, 1, 9, 46});
×
1154
      case 0xC15774:
×
1155
         return if_match(req, "RSA/PKCS1v15(SHA-3(384))", {2, 16, 840, 1, 101, 3, 4, 3, 15});
×
1156
      case 0xC38DA9:
×
1157
         return if_match(req, "Camellia-192/GCM", {0, 3, 4401, 5, 3, 1, 9, 26});
×
1158
      case 0xC3CD83:
×
1159
         return if_match(req, "X509v3.AuthorityKeyIdentifier", {2, 5, 29, 35});
×
1160
      case 0xC42200:
101✔
1161
         return if_match(req, "Kyber-512-r3", {1, 3, 6, 1, 4, 1, 25258, 1, 7, 1});
101✔
1162
      case 0xC45E3E:
×
1163
         return if_match(req, "X509v3.CertificatePolicies", {2, 5, 29, 32});
×
1164
      case 0xC4890F:
×
1165
         return if_match(req, "X509v3.AnyPolicy", {2, 5, 29, 32, 0});
×
1166
      case 0xC61B14:
×
1167
         return if_match(req, "DES/CBC", {1, 3, 14, 3, 2, 7});
×
1168
      case 0xC66F68:
480✔
1169
         return if_match(req, "RSA/PKCS1v15(SHA-512)", {1, 2, 840, 113549, 1, 1, 13});
480✔
1170
      case 0xC7E7BB:
73✔
1171
         return if_match(req, "AES-256/CBC", {2, 16, 840, 1, 101, 3, 4, 1, 42});
73✔
1172
      case 0xC7E8C0:
×
1173
         return if_match(req, "AES-256/CCM", {2, 16, 840, 1, 101, 3, 4, 1, 47});
×
1174
      case 0xC80626:
13✔
1175
         return if_match(req, "brainpool160r1", {1, 3, 36, 3, 3, 2, 8, 1, 1, 1});
13✔
1176
      case 0xC8D407:
×
1177
         return if_match(req, "Camellia-256/OCB", {1, 3, 6, 1, 4, 1, 25258, 3, 2, 8});
×
1178
      case 0xC8E3FB:
×
1179
         return if_match(req, "X509v3.CRLNumber", {2, 5, 29, 20});
×
1180
      case 0xC98502:
×
1181
         return if_match(req, "CAST-128/CBC", {1, 2, 840, 113533, 7, 66, 10});
×
1182
      case 0xCA521A:
×
1183
         return if_match(req, "AES-192/CBC", {2, 16, 840, 1, 101, 3, 4, 1, 22});
×
1184
      case 0xCA531F:
×
1185
         return if_match(req, "AES-192/CCM", {2, 16, 840, 1, 101, 3, 4, 1, 27});
×
1186
      case 0xCA9D85:
×
1187
         return if_match(req, "X520.DNQualifier", {2, 5, 4, 46});
×
1188
      case 0xCAEDFF:
×
1189
         return if_match(req, "RSA/PKCS1v15(RIPEMD-160)", {1, 3, 36, 3, 3, 1, 2});
×
1190
      case 0xCB3E66:
×
1191
         return if_match(req, "Camellia-192/OCB", {1, 3, 6, 1, 4, 1, 25258, 3, 2, 7});
×
1192
      case 0xCB5B1B:
50✔
1193
         return if_match(req, "FrodoKEM-1344-AES", {1, 3, 6, 1, 4, 1, 25258, 1, 15, 3});
50✔
1194
      case 0xCBC124:
12✔
1195
         return if_match(req, "AES-256/GCM", {2, 16, 840, 1, 101, 3, 4, 1, 46});
12✔
1196
      case 0xCCACA9:
178✔
1197
         return if_match(req, "Dilithium-6x5-r3", {1, 3, 6, 1, 4, 1, 25258, 1, 9, 2});
178✔
1198
      case 0xCCB261:
×
1199
         return if_match(req, "Camellia-256/SIV", {1, 3, 6, 1, 4, 1, 25258, 3, 4, 8});
×
1200
      case 0xCD15A5:
×
1201
         return if_match(req, "SphincsPlus-haraka-192f-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 3, 4});
×
1202
      case 0xCDB004:
×
1203
         return if_match(req, "TripleDES/CBC", {1, 2, 840, 113549, 3, 7});
×
1204
      case 0xCDBB42:
68✔
1205
         return if_match(req, "Kyber-768-90s-r3", {1, 3, 6, 1, 4, 1, 25258, 1, 11, 2});
68✔
1206
      case 0xCE2B83:
×
1207
         return if_match(req, "AES-192/GCM", {2, 16, 840, 1, 101, 3, 4, 1, 26});
×
1208
      case 0xCF1CC0:
×
1209
         return if_match(req, "Camellia-192/SIV", {1, 3, 6, 1, 4, 1, 25258, 3, 4, 7});
×
1210
      case 0xCF62D0:
×
1211
         return if_match(req, "ECKCDSA/SHA-1", {1, 2, 410, 200004, 1, 100, 4, 3});
×
1212
      case 0xCFCD4C:
68✔
1213
         return if_match(req, "Kyber-1024-r3", {1, 3, 6, 1, 4, 1, 25258, 1, 7, 3});
68✔
1214
      case 0xD0A19C:
133✔
1215
         return if_match(req, "PKIX.ClientAuth", {1, 3, 6, 1, 5, 5, 7, 3, 2});
133✔
1216
      case 0xD0BA80:
27✔
1217
         return if_match(req, "SLH-DSA-SHA2-256f", {2, 16, 840, 1, 101, 3, 4, 3, 25});
27✔
1218
      case 0xD0BA8D:
27✔
1219
         return if_match(req, "SLH-DSA-SHA2-256s", {2, 16, 840, 1, 101, 3, 4, 3, 24});
27✔
1220
      case 0xD139B9:
50✔
1221
         return if_match(req, "eFrodoKEM-1344-AES", {1, 3, 6, 1, 4, 1, 25258, 1, 17, 3});
50✔
1222
      case 0xD18AE4:
927✔
1223
         return if_match(req, "PKIX.OCSP", {1, 3, 6, 1, 5, 5, 7, 48, 1});
927✔
1224
      case 0xD2369F:
×
1225
         return if_match(req, "Compression.Zlib", {1, 2, 840, 113549, 1, 9, 16, 3, 8});
×
1226
      case 0xD371E1:
×
1227
         return if_match(req, "AES-256/OCB", {1, 3, 6, 1, 4, 1, 25258, 3, 2, 3});
×
1228
      case 0xD388DC:
×
1229
         return if_match(req, "PKIX.CodeSigning", {1, 3, 6, 1, 5, 5, 7, 3, 3});
×
1230
      case 0xD5410A:
×
1231
         return if_match(req, "GOST-34.10", {1, 2, 643, 2, 2, 19});
×
1232
      case 0xD5DC40:
×
1233
         return if_match(req, "AES-192/OCB", {1, 3, 6, 1, 4, 1, 25258, 3, 2, 2});
×
1234
      case 0xD67F6B:
×
1235
         return if_match(req, "PKIX.TimeStamping", {1, 3, 6, 1, 5, 5, 7, 3, 8});
×
1236
      case 0xD69072:
706✔
1237
         return if_match(req, "brainpool384r1", {1, 3, 36, 3, 3, 2, 8, 1, 1, 11});
706✔
1238
      case 0xD7503B:
×
1239
         return if_match(req, "AES-256/SIV", {1, 3, 6, 1, 4, 1, 25258, 3, 4, 3});
×
1240
      case 0xD84E41:
26✔
1241
         return if_match(req, "SphincsPlus-shake-256f-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 1, 6});
26✔
1242
      case 0xD9BA9A:
×
1243
         return if_match(req, "AES-192/SIV", {1, 3, 6, 1, 4, 1, 25258, 3, 4, 2});
×
1244
      case 0xD9D33E:
1,737✔
1245
         return if_match(req, "X520.OrganizationalUnit", {2, 5, 4, 11});
1,737✔
1246
      case 0xDA6B3D:
68✔
1247
         return if_match(req, "FrodoKEM-640-SHAKE", {1, 3, 6, 1, 4, 1, 25258, 1, 14, 1});
68✔
1248
      case 0xDA833A:
1✔
1249
         return if_match(req, "SHA-3(384)", {2, 16, 840, 1, 101, 3, 4, 2, 9});
1✔
1250
      case 0xDC2546:
104✔
1251
         return if_match(req, "frp256v1", {1, 2, 250, 1, 223, 101, 256, 1});
104✔
1252
      case 0xDC8FA8:
73✔
1253
         return if_match(req, "SLH-DSA-SHA2-128f", {2, 16, 840, 1, 101, 3, 4, 3, 21});
73✔
1254
      case 0xDC8FB5:
27✔
1255
         return if_match(req, "SLH-DSA-SHA2-128s", {2, 16, 840, 1, 101, 3, 4, 3, 20});
27✔
1256
      case 0xDC97A0:
80✔
1257
         return if_match(req, "X25519", {1, 3, 101, 110});
80✔
1258
      case 0xDCDE97:
×
1259
         return if_match(req, "ECGDSA/SHA-224", {1, 3, 36, 3, 3, 2, 5, 4, 3});
×
1260
      case 0xDCE18A:
37✔
1261
         return if_match(req, "ECGDSA/SHA-256", {1, 3, 36, 3, 3, 2, 5, 4, 4});
37✔
1262
      case 0xDDD6CB:
1,348✔
1263
         return if_match(req, "secp521r1", {1, 3, 132, 0, 35});
1,348✔
1264
      case 0xDDDA92:
×
1265
         return if_match(req, "ECGDSA/SHA-384", {1, 3, 36, 3, 3, 2, 5, 4, 5});
×
1266
      case 0xDE434F:
2✔
1267
         return if_match(req, "ClassicMcEliece_8192128f", {1, 3, 6, 1, 4, 1, 22554, 5, 1, 10});
2✔
1268
      case 0xDF1F37:
26✔
1269
         return if_match(req, "SphincsPlus-sha2-128s-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 2, 1});
26✔
1270
      case 0xDF72B6:
1✔
1271
         return if_match(req, "KeyWrap.TripleDES", {1, 2, 840, 113549, 1, 9, 16, 3, 6});
1✔
1272
      case 0xDFBFE5:
×
1273
         return if_match(req, "ECGDSA/SHA-512", {1, 3, 36, 3, 3, 2, 5, 4, 6});
×
1274
      case 0xE0AFFC:
46✔
1275
         return if_match(req, "ElGamal", {1, 3, 6, 1, 4, 1, 3029, 1, 2, 1});
46✔
1276
      case 0xE34475:
27✔
1277
         return if_match(req, "SLH-DSA-SHA2-192f", {2, 16, 840, 1, 101, 3, 4, 3, 23});
27✔
1278
      case 0xE34482:
27✔
1279
         return if_match(req, "SLH-DSA-SHA2-192s", {2, 16, 840, 1, 101, 3, 4, 3, 22});
27✔
1280
      case 0xE37421:
1✔
1281
         return if_match(req, "SHA-3(224)", {2, 16, 840, 1, 101, 3, 4, 2, 7});
1✔
1282
      case 0xE48842:
53✔
1283
         return if_match(req, "Dilithium-4x4-AES-r3", {1, 3, 6, 1, 4, 1, 25258, 1, 10, 1});
53✔
1284
      case 0xE5609A:
2✔
1285
         return if_match(req, "ClassicMcEliece_8192128pcf", {1, 3, 6, 1, 4, 1, 25258, 1, 18, 6});
2✔
1286
      case 0xE65862:
1✔
1287
         return if_match(req, "SHA-3(256)", {2, 16, 840, 1, 101, 3, 4, 2, 8});
1✔
1288
      case 0xE8FF63:
×
1289
         return if_match(req, "X520.Title", {2, 5, 4, 12});
×
1290
      case 0xEA9707:
2,478✔
1291
         return if_match(req, "RSA/PKCS1v15(SHA-384)", {1, 2, 840, 113549, 1, 1, 12});
2,478✔
1292
      case 0xEB9782:
×
1293
         return if_match(req, "XMSS-draft12", {1, 3, 6, 1, 4, 1, 25258, 1, 8});
×
1294
      case 0xEBB5C6:
68✔
1295
         return if_match(req, "eFrodoKEM-976-AES", {1, 3, 6, 1, 4, 1, 25258, 1, 17, 2});
68✔
1296
      case 0xEC2C77:
×
1297
         return if_match(req, "PKIX.IPsecUser", {1, 3, 6, 1, 5, 5, 7, 3, 7});
×
1298
      case 0xED4CE0:
×
1299
         return if_match(req, "PKCS9.MessageDigest", {1, 2, 840, 113549, 1, 9, 4});
×
1300
      case 0xEE7377:
26✔
1301
         return if_match(req, "SphincsPlus-sha2-192f-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 2, 4});
26✔
1302
      case 0xEEF25C:
×
1303
         return if_match(req, "GOST-34.10-2012-256/Streebog-256", {1, 2, 643, 7, 1, 1, 3, 2});
×
1304
      case 0xEFADFC:
1✔
1305
         return if_match(req, "X509v3.SubjectKeyIdentifier", {2, 5, 29, 14});
1✔
1306
      case 0xEFCF66:
925✔
1307
         return if_match(req, "PKIX.CertificateAuthorityIssuers", {1, 3, 6, 1, 5, 5, 7, 48, 2});
925✔
1308
      case 0xF127F4:
×
1309
         return if_match(req, "SphincsPlus-haraka-192s-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 3, 3});
×
1310
      case 0xF1AB69:
×
1311
         return if_match(req, "PKIX.IPsecEndSystem", {1, 3, 6, 1, 5, 5, 7, 3, 5});
×
1312
      case 0xF2869C:
1✔
1313
         return if_match(req, "SHA-224", {2, 16, 840, 1, 101, 3, 4, 2, 4});
1✔
1314
      case 0xF2898F:
2,498✔
1315
         return if_match(req, "SHA-256", {2, 16, 840, 1, 101, 3, 4, 2, 1});
2,498✔
1316
      case 0xF29466:
13✔
1317
         return if_match(req, "HSS-LMS-Private-Key", {1, 3, 6, 1, 4, 1, 25258, 1, 13});
13✔
1318
      case 0xF2E7A4:
68✔
1319
         return if_match(req, "eFrodoKEM-640-AES", {1, 3, 6, 1, 4, 1, 25258, 1, 17, 1});
68✔
1320
      case 0xF38297:
2,481✔
1321
         return if_match(req, "SHA-384", {2, 16, 840, 1, 101, 3, 4, 2, 2});
2,481✔
1322
      case 0xF387EE:
×
1323
         return if_match(req, "RSA/PKCS1v15(SHA-224)", {1, 2, 840, 113549, 1, 1, 14});
×
1324
      case 0xF3A0D2:
×
1325
         return if_match(req, "XMSS-draft6", {1, 3, 6, 1, 4, 1, 25258, 1, 5});
×
1326
      case 0xF3D16A:
×
1327
         return if_match(req, "KeyWrap.CAST-128", {1, 2, 840, 113533, 7, 66, 15});
×
1328
      case 0xF4EA3D:
×
1329
         return if_match(req, "GOST.IssuerSigningTool", {1, 2, 643, 100, 112});
×
1330
      case 0xF567EA:
489✔
1331
         return if_match(req, "SHA-512", {2, 16, 840, 1, 101, 3, 4, 2, 3});
489✔
1332
      case 0xF66C2F:
4,521✔
1333
         return if_match(req, "RSA/PKCS1v15(SHA-256)", {1, 2, 840, 113549, 1, 1, 11});
4,521✔
1334
      case 0xF698EC:
1✔
1335
         return if_match(req, "SHA-512-256", {2, 16, 840, 1, 101, 3, 4, 2, 6});
1✔
1336
      case 0xF6A5ED:
5,998✔
1337
         return if_match(req, "MGF1", {1, 2, 840, 113549, 1, 1, 8});
5,998✔
1338
      case 0xF8D439:
×
1339
         return if_match(req, "PKIX.XMPPAddr", {1, 3, 6, 1, 5, 5, 7, 8, 5});
×
1340
      case 0xFA52A1:
2,251✔
1341
         return if_match(req, "secp256k1", {1, 3, 132, 0, 10});
2,251✔
1342
      case 0xFA597E:
2,710✔
1343
         return if_match(req, "secp256r1", {1, 2, 840, 10045, 3, 1, 7});
2,710✔
1344
      case 0xFB1F0D:
1✔
1345
         return if_match(req, "PKIX.OCSP.NoCheck", {1, 3, 6, 1, 5, 5, 7, 48, 1, 5});
1✔
1346
      case 0xFB3404:
68✔
1347
         return if_match(req, "ML-KEM-512", {2, 16, 840, 1, 101, 3, 4, 4, 1});
68✔
1348
      case 0xFC6090:
26✔
1349
         return if_match(req, "SphincsPlus-shake-256s-r3.1", {1, 3, 6, 1, 4, 1, 25258, 1, 12, 1, 5});
26✔
1350
      case 0xFC9C57:
×
1351
         return if_match(req, "numsp384d1", {1, 3, 6, 1, 4, 1, 25258, 4, 2});
×
1352
      case 0xFD2523:
88✔
1353
         return if_match(req, "ML-KEM-768", {2, 16, 840, 1, 101, 3, 4, 4, 2});
88✔
1354
      case 0xFE16F3:
×
1355
         return if_match(req, "PKCS9.UnstructuredName", {1, 2, 840, 113549, 1, 9, 2});
×
1356
      case 0xFE1819:
22✔
1357
         return if_match(req, "ML-DSA-4x4", {2, 16, 840, 1, 101, 3, 4, 3, 17});
22✔
1358
      case 0xFFB0D5:
×
1359
         return if_match(req, "OpenPGP.Ed25519", {1, 3, 6, 1, 4, 1, 11591, 15, 1});
×
1360
      case 0xFFF10F:
×
1361
         return if_match(req, "X509v3.InvalidityDate", {2, 5, 29, 24});
×
1362
      default:
265✔
1363
         return {};
265✔
1364
   }
1365
   // clang-format on
1366
}
1367

1368
std::unordered_map<OID, std::string> OID_Map::load_oid2str_map() {
2,237✔
1369
   std::pair<const char*, std::vector<uint32_t>> dup_oids[] = {
2,237✔
1370
      // clang-format off
1371
      {"RSA", {2, 5, 8, 1, 1}},
1372
      {"secp521r1", {1, 3, 6, 1, 4, 1, 8301, 3, 1, 2, 9, 0, 38}},
2,237✔
1373
      {"gost_256A", {1, 2, 643, 2, 2, 35, 1}},
2,237✔
1374
      {"gost_256A", {1, 2, 643, 2, 2, 36, 0}}
2,237✔
1375
      // clang-format on
1376
   };
26,844✔
1377

1378
   std::unordered_map<OID, std::string> map;
2,237✔
1379

1380
   for(auto& entry : dup_oids) {
11,185✔
1381
      map.insert(std::make_pair(OID(std::move(entry.second)), std::string(entry.first)));
26,844✔
1382
   }
1383

1384
   return map;
2,237✔
1385
}
11,185✔
1386

1387
std::unordered_map<std::string, OID> OID_Map::load_str2oid_map() {
2,237✔
1388
   std::pair<const char*, std::vector<uint32_t>> aliases[] = {
2,237✔
1389
      // clang-format off
1390
      {"Curve25519", {1, 3, 101, 110}},
1391
      {"SM2_Sig", {1, 2, 156, 10197, 1, 301, 1}},
2,237✔
1392
      {"RSA/EMSA3(MD2)", {1, 2, 840, 113549, 1, 1, 2}},
2,237✔
1393
      {"RSA/EMSA3(MD5)", {1, 2, 840, 113549, 1, 1, 4}},
2,237✔
1394
      {"RSA/EMSA3(SHA-1)", {1, 2, 840, 113549, 1, 1, 5}},
2,237✔
1395
      {"RSA/EMSA3(SHA-256)", {1, 2, 840, 113549, 1, 1, 11}},
2,237✔
1396
      {"RSA/EMSA3(SHA-384)", {1, 2, 840, 113549, 1, 1, 12}},
2,237✔
1397
      {"RSA/EMSA3(SHA-512)", {1, 2, 840, 113549, 1, 1, 13}},
2,237✔
1398
      {"RSA/EMSA3(SHA-224)", {1, 2, 840, 113549, 1, 1, 14}},
2,237✔
1399
      {"RSA/EMSA3(SHA-512-256)", {1, 2, 840, 113549, 1, 1, 16}},
2,237✔
1400
      {"RSA/EMSA3(SHA-3(224))", {2, 16, 840, 1, 101, 3, 4, 3, 13}},
2,237✔
1401
      {"RSA/EMSA3(SHA-3(256))", {2, 16, 840, 1, 101, 3, 4, 3, 14}},
2,237✔
1402
      {"RSA/EMSA3(SHA-3(384))", {2, 16, 840, 1, 101, 3, 4, 3, 15}},
2,237✔
1403
      {"RSA/EMSA3(SHA-3(512))", {2, 16, 840, 1, 101, 3, 4, 3, 16}},
2,237✔
1404
      {"RSA/EMSA3(SM3)", {1, 2, 156, 10197, 1, 504}},
2,237✔
1405
      {"RSA/EMSA3(RIPEMD-160)", {1, 3, 36, 3, 3, 1, 2}},
2,237✔
1406
      {"RSA/EMSA4", {1, 2, 840, 113549, 1, 1, 10}},
2,237✔
1407
      {"PBES2", {1, 2, 840, 113549, 1, 5, 13}}
2,237✔
1408
      // clang-format on
1409
   };
120,798✔
1410

1411
   std::unordered_map<std::string, OID> map;
2,237✔
1412

1413
   for(auto& entry : aliases) {
42,503✔
1414
      map.insert(std::make_pair(std::string(entry.first), OID(std::move(entry.second))));
120,798✔
1415
   }
1416

1417
   return map;
2,237✔
1418
}
42,503✔
1419

1420
}  // namespace Botan
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc