Coverage Report

Created: 2026-06-30 07:22

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/wireshark/epan/dissectors/packet-pkixalgs.c
Line
Count
Source
1
/* Do not modify this file. Changes will be overwritten.                      */
2
/* Generated automatically by the ASN.1 to Wireshark dissector compiler       */
3
/* packet-pkixalgs.c                                                          */
4
/* asn2wrs.py -b -q -L -p pkixalgs -c ./pkixalgs.cnf -s ./packet-pkixalgs-template -D . -O ../.. PKIXAlgs-2009.asn */
5
6
/* packet-pkixalgs.c
7
 * Routines for PKIX Algorithms packet dissection
8
 *  Ronnie Sahlberg 2004
9
 *
10
 * Wireshark - Network traffic analyzer
11
 * By Gerald Combs <gerald@wireshark.org>
12
 * Copyright 1998 Gerald Combs
13
 *
14
 * SPDX-License-Identifier: GPL-2.0-or-later
15
 */
16
17
#include "config.h"
18
19
#include <epan/packet.h>
20
#include <epan/oids.h>
21
#include <epan/asn1.h>
22
#include <wsutil/array.h>
23
24
#include "packet-ber.h"
25
#include "packet-pkixalgs.h"
26
#include "packet-x509af.h"
27
28
void proto_register_pkixalgs(void);
29
void proto_reg_handoff_pkixalgs(void);
30
31
/* Initialize the protocol and registered fields */
32
static int proto_pkixalgs;
33
static int hf_pkixalgs_DSA_Params_PDU;            /* DSA_Params */
34
static int hf_pkixalgs_DomainParameters_PDU;      /* DomainParameters */
35
static int hf_pkixalgs_KEA_Params_Id_PDU;         /* KEA_Params_Id */
36
static int hf_pkixalgs_HashAlgorithm_PDU;         /* HashAlgorithm */
37
static int hf_pkixalgs_RSASSA_PSS_params_PDU;     /* RSASSA_PSS_params */
38
static int hf_pkixalgs_ECParameters_PDU;          /* ECParameters */
39
static int hf_pkixalgs_Prime_p_PDU;               /* Prime_p */
40
static int hf_pkixalgs_modulus;                   /* INTEGER */
41
static int hf_pkixalgs_publicExponent;            /* INTEGER */
42
static int hf_pkixalgs_digestAlgorithm;           /* DigestAlgorithmIdentifier */
43
static int hf_pkixalgs_digest;                    /* Digest */
44
static int hf_pkixalgs_p;                         /* INTEGER */
45
static int hf_pkixalgs_q;                         /* INTEGER */
46
static int hf_pkixalgs_g;                         /* INTEGER */
47
static int hf_pkixalgs_j;                         /* INTEGER */
48
static int hf_pkixalgs_validationParams;          /* ValidationParams */
49
static int hf_pkixalgs_seed;                      /* BIT_STRING */
50
static int hf_pkixalgs_pgenCounter;               /* INTEGER */
51
static int hf_pkixalgs_hashAlgorithm;             /* HashAlgorithm */
52
static int hf_pkixalgs_maskGenAlgorithm;          /* MaskGenAlgorithm */
53
static int hf_pkixalgs_saltLength;                /* INTEGER */
54
static int hf_pkixalgs_trailerField;              /* INTEGER */
55
static int hf_pkixalgs_specifiedCurve;            /* SpecifiedECDomain */
56
static int hf_pkixalgs_namedCurve;                /* OBJECT_IDENTIFIER */
57
static int hf_pkixalgs_version;                   /* ECPVer */
58
static int hf_pkixalgs_fieldID;                   /* FieldID */
59
static int hf_pkixalgs_curve;                     /* Curve */
60
static int hf_pkixalgs_base;                      /* ECPoint */
61
static int hf_pkixalgs_order;                     /* INTEGER */
62
static int hf_pkixalgs_cofactor;                  /* INTEGER */
63
static int hf_pkixalgs_fieldType;                 /* T_fieldType */
64
static int hf_pkixalgs_parameters;                /* T_parameters */
65
static int hf_pkixalgs_a;                         /* FieldElement */
66
static int hf_pkixalgs_b;                         /* FieldElement */
67
static int hf_pkixalgs_r;                         /* INTEGER */
68
static int hf_pkixalgs_s;                         /* INTEGER */
69
70
/* Initialize the subtree pointers */
71
static int ett_pkixalgs_RSAPublicKey;
72
static int ett_pkixalgs_DigestInfo;
73
static int ett_pkixalgs_DSA_Params;
74
static int ett_pkixalgs_DomainParameters;
75
static int ett_pkixalgs_ValidationParams;
76
static int ett_pkixalgs_RSASSA_PSS_params;
77
static int ett_pkixalgs_ECParameters;
78
static int ett_pkixalgs_SpecifiedECDomain;
79
static int ett_pkixalgs_FieldID;
80
static int ett_pkixalgs_Curve;
81
static int ett_pkixalgs_DSA_Sig_Value;
82
static int ett_pkixalgs_ECDSA_Sig_Value;
83
84
85
86
static unsigned
87
0
dissect_pkixalgs_INTEGER(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
88
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
89
0
                                                NULL);
90
91
0
  return offset;
92
0
}
93
94
95
static const ber_sequence_t RSAPublicKey_sequence[] = {
96
  { &hf_pkixalgs_modulus    , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_pkixalgs_INTEGER },
97
  { &hf_pkixalgs_publicExponent, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_pkixalgs_INTEGER },
98
  { NULL, 0, 0, 0, NULL }
99
};
100
101
unsigned
102
0
dissect_pkixalgs_RSAPublicKey(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
103
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
104
0
                                   RSAPublicKey_sequence, hf_index, ett_pkixalgs_RSAPublicKey);
105
106
0
  return offset;
107
0
}
108
109
110
111
static unsigned
112
0
dissect_pkixalgs_DigestAlgorithmIdentifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
113
0
  offset = dissect_x509af_AlgorithmIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
114
115
0
  return offset;
116
0
}
117
118
119
120
static unsigned
121
0
dissect_pkixalgs_Digest(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
122
0
  offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
123
0
                                       NULL);
124
125
0
  return offset;
126
0
}
127
128
129
static const ber_sequence_t DigestInfo_sequence[] = {
130
  { &hf_pkixalgs_digestAlgorithm, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_pkixalgs_DigestAlgorithmIdentifier },
131
  { &hf_pkixalgs_digest     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_pkixalgs_Digest },
132
  { NULL, 0, 0, 0, NULL }
133
};
134
135
unsigned
136
0
dissect_pkixalgs_DigestInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
137
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
138
0
                                   DigestInfo_sequence, hf_index, ett_pkixalgs_DigestInfo);
139
140
0
  return offset;
141
0
}
142
143
144
static const ber_sequence_t DSA_Params_sequence[] = {
145
  { &hf_pkixalgs_p          , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_pkixalgs_INTEGER },
146
  { &hf_pkixalgs_q          , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_pkixalgs_INTEGER },
147
  { &hf_pkixalgs_g          , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_pkixalgs_INTEGER },
148
  { NULL, 0, 0, 0, NULL }
149
};
150
151
static unsigned
152
0
dissect_pkixalgs_DSA_Params(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
153
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
154
0
                                   DSA_Params_sequence, hf_index, ett_pkixalgs_DSA_Params);
155
156
0
  return offset;
157
0
}
158
159
160
161
unsigned
162
0
dissect_pkixalgs_DSAPublicKey(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
163
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
164
0
                                                NULL);
165
166
0
  return offset;
167
0
}
168
169
170
171
static unsigned
172
0
dissect_pkixalgs_BIT_STRING(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
173
0
  offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
174
0
                                    NULL, 0, hf_index, -1,
175
0
                                    NULL);
176
177
0
  return offset;
178
0
}
179
180
181
static const ber_sequence_t ValidationParams_sequence[] = {
182
  { &hf_pkixalgs_seed       , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_pkixalgs_BIT_STRING },
183
  { &hf_pkixalgs_pgenCounter, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_pkixalgs_INTEGER },
184
  { NULL, 0, 0, 0, NULL }
185
};
186
187
static unsigned
188
0
dissect_pkixalgs_ValidationParams(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
189
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
190
0
                                   ValidationParams_sequence, hf_index, ett_pkixalgs_ValidationParams);
191
192
0
  return offset;
193
0
}
194
195
196
static const ber_sequence_t DomainParameters_sequence[] = {
197
  { &hf_pkixalgs_p          , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_pkixalgs_INTEGER },
198
  { &hf_pkixalgs_g          , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_pkixalgs_INTEGER },
199
  { &hf_pkixalgs_q          , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_pkixalgs_INTEGER },
200
  { &hf_pkixalgs_j          , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_pkixalgs_INTEGER },
201
  { &hf_pkixalgs_validationParams, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_pkixalgs_ValidationParams },
202
  { NULL, 0, 0, 0, NULL }
203
};
204
205
static unsigned
206
0
dissect_pkixalgs_DomainParameters(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
207
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
208
0
                                   DomainParameters_sequence, hf_index, ett_pkixalgs_DomainParameters);
209
210
0
  return offset;
211
0
}
212
213
214
215
unsigned
216
0
dissect_pkixalgs_DHPublicKey(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
217
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
218
0
                                                NULL);
219
220
0
  return offset;
221
0
}
222
223
224
225
static unsigned
226
0
dissect_pkixalgs_KEA_Params_Id(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
227
0
  offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
228
0
                                       NULL);
229
230
0
  return offset;
231
0
}
232
233
234
235
static unsigned
236
0
dissect_pkixalgs_HashAlgorithm(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
237
0
  offset = dissect_x509af_AlgorithmIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
238
239
0
  return offset;
240
0
}
241
242
243
244
static unsigned
245
0
dissect_pkixalgs_MaskGenAlgorithm(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
246
0
  offset = dissect_x509af_AlgorithmIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
247
248
0
  return offset;
249
0
}
250
251
252
static const ber_sequence_t RSASSA_PSS_params_sequence[] = {
253
  { &hf_pkixalgs_hashAlgorithm, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_pkixalgs_HashAlgorithm },
254
  { &hf_pkixalgs_maskGenAlgorithm, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_pkixalgs_MaskGenAlgorithm },
255
  { &hf_pkixalgs_saltLength , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_pkixalgs_INTEGER },
256
  { &hf_pkixalgs_trailerField, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_pkixalgs_INTEGER },
257
  { NULL, 0, 0, 0, NULL }
258
};
259
260
static unsigned
261
0
dissect_pkixalgs_RSASSA_PSS_params(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
262
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
263
0
                                   RSASSA_PSS_params_sequence, hf_index, ett_pkixalgs_RSASSA_PSS_params);
264
265
0
  return offset;
266
0
}
267
268
269
270
static unsigned
271
0
dissect_pkixalgs_ECPoint(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
272
0
  offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
273
0
                                       NULL);
274
275
0
  return offset;
276
0
}
277
278
279
static const value_string pkixalgs_ECPVer_vals[] = {
280
  {   1, "ecpVer1" },
281
  { 0, NULL }
282
};
283
284
285
static unsigned
286
0
dissect_pkixalgs_ECPVer(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
287
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
288
0
                                                NULL);
289
290
0
  return offset;
291
0
}
292
293
294
295
static unsigned
296
0
dissect_pkixalgs_T_fieldType(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
297
0
  offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &actx->external.direct_reference);
298
299
0
  return offset;
300
0
}
301
302
303
304
static unsigned
305
0
dissect_pkixalgs_T_parameters(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
306
0
  offset = call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
307
308
309
0
  return offset;
310
0
}
311
312
313
static const ber_sequence_t FieldID_sequence[] = {
314
  { &hf_pkixalgs_fieldType  , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_pkixalgs_T_fieldType },
315
  { &hf_pkixalgs_parameters , BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_pkixalgs_T_parameters },
316
  { NULL, 0, 0, 0, NULL }
317
};
318
319
static unsigned
320
0
dissect_pkixalgs_FieldID(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
321
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
322
0
                                   FieldID_sequence, hf_index, ett_pkixalgs_FieldID);
323
324
0
  return offset;
325
0
}
326
327
328
329
static unsigned
330
0
dissect_pkixalgs_FieldElement(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
331
0
  offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
332
0
                                       NULL);
333
334
0
  return offset;
335
0
}
336
337
338
static const ber_sequence_t Curve_sequence[] = {
339
  { &hf_pkixalgs_a          , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_pkixalgs_FieldElement },
340
  { &hf_pkixalgs_b          , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_pkixalgs_FieldElement },
341
  { &hf_pkixalgs_seed       , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_pkixalgs_BIT_STRING },
342
  { NULL, 0, 0, 0, NULL }
343
};
344
345
static unsigned
346
0
dissect_pkixalgs_Curve(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
347
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
348
0
                                   Curve_sequence, hf_index, ett_pkixalgs_Curve);
349
350
0
  return offset;
351
0
}
352
353
354
static const ber_sequence_t SpecifiedECDomain_sequence[] = {
355
  { &hf_pkixalgs_version    , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_pkixalgs_ECPVer },
356
  { &hf_pkixalgs_fieldID    , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_pkixalgs_FieldID },
357
  { &hf_pkixalgs_curve      , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_pkixalgs_Curve },
358
  { &hf_pkixalgs_base       , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_pkixalgs_ECPoint },
359
  { &hf_pkixalgs_order      , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_pkixalgs_INTEGER },
360
  { &hf_pkixalgs_cofactor   , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_pkixalgs_INTEGER },
361
  { NULL, 0, 0, 0, NULL }
362
};
363
364
static unsigned
365
0
dissect_pkixalgs_SpecifiedECDomain(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
366
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
367
0
                                   SpecifiedECDomain_sequence, hf_index, ett_pkixalgs_SpecifiedECDomain);
368
369
0
  return offset;
370
0
}
371
372
373
374
static unsigned
375
0
dissect_pkixalgs_OBJECT_IDENTIFIER(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
376
0
  offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
377
378
0
  return offset;
379
0
}
380
381
382
static const value_string pkixalgs_ECParameters_vals[] = {
383
  {   0, "specifiedCurve" },
384
  {   1, "namedCurve" },
385
  { 0, NULL }
386
};
387
388
static const ber_choice_t ECParameters_choice[] = {
389
  {   0, &hf_pkixalgs_specifiedCurve, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_pkixalgs_SpecifiedECDomain },
390
  {   1, &hf_pkixalgs_namedCurve , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_pkixalgs_OBJECT_IDENTIFIER },
391
  { 0, NULL, 0, 0, 0, NULL }
392
};
393
394
static unsigned
395
0
dissect_pkixalgs_ECParameters(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
396
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
397
0
                                 ECParameters_choice, hf_index, ett_pkixalgs_ECParameters,
398
0
                                 NULL);
399
400
0
  return offset;
401
0
}
402
403
404
405
static unsigned
406
0
dissect_pkixalgs_Prime_p(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
407
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
408
0
                                                NULL);
409
410
0
  return offset;
411
0
}
412
413
414
415
/*--- PDUs ---*/
416
417
0
static int dissect_DSA_Params_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
418
0
  unsigned offset = 0;
419
0
  asn1_ctx_t asn1_ctx;
420
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
421
0
  offset = dissect_pkixalgs_DSA_Params(false, tvb, offset, &asn1_ctx, tree, hf_pkixalgs_DSA_Params_PDU);
422
0
  return offset;
423
0
}
424
0
static int dissect_DomainParameters_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
425
0
  unsigned offset = 0;
426
0
  asn1_ctx_t asn1_ctx;
427
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
428
0
  offset = dissect_pkixalgs_DomainParameters(false, tvb, offset, &asn1_ctx, tree, hf_pkixalgs_DomainParameters_PDU);
429
0
  return offset;
430
0
}
431
0
static int dissect_KEA_Params_Id_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
432
0
  unsigned offset = 0;
433
0
  asn1_ctx_t asn1_ctx;
434
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
435
0
  offset = dissect_pkixalgs_KEA_Params_Id(false, tvb, offset, &asn1_ctx, tree, hf_pkixalgs_KEA_Params_Id_PDU);
436
0
  return offset;
437
0
}
438
0
static int dissect_HashAlgorithm_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
439
0
  unsigned offset = 0;
440
0
  asn1_ctx_t asn1_ctx;
441
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
442
0
  offset = dissect_pkixalgs_HashAlgorithm(false, tvb, offset, &asn1_ctx, tree, hf_pkixalgs_HashAlgorithm_PDU);
443
0
  return offset;
444
0
}
445
0
static int dissect_RSASSA_PSS_params_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
446
0
  unsigned offset = 0;
447
0
  asn1_ctx_t asn1_ctx;
448
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
449
0
  offset = dissect_pkixalgs_RSASSA_PSS_params(false, tvb, offset, &asn1_ctx, tree, hf_pkixalgs_RSASSA_PSS_params_PDU);
450
0
  return offset;
451
0
}
452
0
static int dissect_ECParameters_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
453
0
  unsigned offset = 0;
454
0
  asn1_ctx_t asn1_ctx;
455
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
456
0
  offset = dissect_pkixalgs_ECParameters(false, tvb, offset, &asn1_ctx, tree, hf_pkixalgs_ECParameters_PDU);
457
0
  return offset;
458
0
}
459
0
static int dissect_Prime_p_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
460
0
  unsigned offset = 0;
461
0
  asn1_ctx_t asn1_ctx;
462
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
463
0
  offset = dissect_pkixalgs_Prime_p(false, tvb, offset, &asn1_ctx, tree, hf_pkixalgs_Prime_p_PDU);
464
0
  return offset;
465
0
}
466
467
468
/*--- proto_register_pkixalgs ----------------------------------------------*/
469
14
void proto_register_pkixalgs(void) {
470
471
  /* List of fields */
472
14
  static hf_register_info hf[] = {
473
14
    { &hf_pkixalgs_DSA_Params_PDU,
474
14
      { "DSA-Params", "pkixalgs.DSA_Params_element",
475
14
        FT_NONE, BASE_NONE, NULL, 0,
476
14
        NULL, HFILL }},
477
14
    { &hf_pkixalgs_DomainParameters_PDU,
478
14
      { "DomainParameters", "pkixalgs.DomainParameters_element",
479
14
        FT_NONE, BASE_NONE, NULL, 0,
480
14
        NULL, HFILL }},
481
14
    { &hf_pkixalgs_KEA_Params_Id_PDU,
482
14
      { "KEA-Params-Id", "pkixalgs.KEA_Params_Id",
483
14
        FT_BYTES, BASE_NONE, NULL, 0,
484
14
        NULL, HFILL }},
485
14
    { &hf_pkixalgs_HashAlgorithm_PDU,
486
14
      { "HashAlgorithm", "pkixalgs.HashAlgorithm_element",
487
14
        FT_NONE, BASE_NONE, NULL, 0,
488
14
        NULL, HFILL }},
489
14
    { &hf_pkixalgs_RSASSA_PSS_params_PDU,
490
14
      { "RSASSA-PSS-params", "pkixalgs.RSASSA_PSS_params_element",
491
14
        FT_NONE, BASE_NONE, NULL, 0,
492
14
        NULL, HFILL }},
493
14
    { &hf_pkixalgs_ECParameters_PDU,
494
14
      { "ECParameters", "pkixalgs.ECParameters",
495
14
        FT_UINT32, BASE_DEC, VALS(pkixalgs_ECParameters_vals), 0,
496
14
        NULL, HFILL }},
497
14
    { &hf_pkixalgs_Prime_p_PDU,
498
14
      { "Prime-p", "pkixalgs.Prime_p",
499
14
        FT_INT32, BASE_DEC, NULL, 0,
500
14
        NULL, HFILL }},
501
14
    { &hf_pkixalgs_modulus,
502
14
      { "modulus", "pkixalgs.modulus",
503
14
        FT_BYTES, BASE_NONE, NULL, 0,
504
14
        "INTEGER", HFILL }},
505
14
    { &hf_pkixalgs_publicExponent,
506
14
      { "publicExponent", "pkixalgs.publicExponent",
507
14
        FT_INT32, BASE_DEC, NULL, 0,
508
14
        "INTEGER", HFILL }},
509
14
    { &hf_pkixalgs_digestAlgorithm,
510
14
      { "digestAlgorithm", "pkixalgs.digestAlgorithm_element",
511
14
        FT_NONE, BASE_NONE, NULL, 0,
512
14
        "DigestAlgorithmIdentifier", HFILL }},
513
14
    { &hf_pkixalgs_digest,
514
14
      { "digest", "pkixalgs.digest",
515
14
        FT_BYTES, BASE_NONE, NULL, 0,
516
14
        NULL, HFILL }},
517
14
    { &hf_pkixalgs_p,
518
14
      { "p", "pkixalgs.p",
519
14
        FT_INT32, BASE_DEC, NULL, 0,
520
14
        "INTEGER", HFILL }},
521
14
    { &hf_pkixalgs_q,
522
14
      { "q", "pkixalgs.q",
523
14
        FT_INT32, BASE_DEC, NULL, 0,
524
14
        "INTEGER", HFILL }},
525
14
    { &hf_pkixalgs_g,
526
14
      { "g", "pkixalgs.g",
527
14
        FT_INT32, BASE_DEC, NULL, 0,
528
14
        "INTEGER", HFILL }},
529
14
    { &hf_pkixalgs_j,
530
14
      { "j", "pkixalgs.j",
531
14
        FT_INT32, BASE_DEC, NULL, 0,
532
14
        "INTEGER", HFILL }},
533
14
    { &hf_pkixalgs_validationParams,
534
14
      { "validationParams", "pkixalgs.validationParams_element",
535
14
        FT_NONE, BASE_NONE, NULL, 0,
536
14
        NULL, HFILL }},
537
14
    { &hf_pkixalgs_seed,
538
14
      { "seed", "pkixalgs.seed",
539
14
        FT_BYTES, BASE_NONE, NULL, 0,
540
14
        "BIT_STRING", HFILL }},
541
14
    { &hf_pkixalgs_pgenCounter,
542
14
      { "pgenCounter", "pkixalgs.pgenCounter",
543
14
        FT_INT32, BASE_DEC, NULL, 0,
544
14
        "INTEGER", HFILL }},
545
14
    { &hf_pkixalgs_hashAlgorithm,
546
14
      { "hashAlgorithm", "pkixalgs.hashAlgorithm_element",
547
14
        FT_NONE, BASE_NONE, NULL, 0,
548
14
        NULL, HFILL }},
549
14
    { &hf_pkixalgs_maskGenAlgorithm,
550
14
      { "maskGenAlgorithm", "pkixalgs.maskGenAlgorithm_element",
551
14
        FT_NONE, BASE_NONE, NULL, 0,
552
14
        NULL, HFILL }},
553
14
    { &hf_pkixalgs_saltLength,
554
14
      { "saltLength", "pkixalgs.saltLength",
555
14
        FT_INT32, BASE_DEC, NULL, 0,
556
14
        "INTEGER", HFILL }},
557
14
    { &hf_pkixalgs_trailerField,
558
14
      { "trailerField", "pkixalgs.trailerField",
559
14
        FT_INT32, BASE_DEC, NULL, 0,
560
14
        "INTEGER", HFILL }},
561
14
    { &hf_pkixalgs_specifiedCurve,
562
14
      { "specifiedCurve", "pkixalgs.specifiedCurve_element",
563
14
        FT_NONE, BASE_NONE, NULL, 0,
564
14
        "SpecifiedECDomain", HFILL }},
565
14
    { &hf_pkixalgs_namedCurve,
566
14
      { "namedCurve", "pkixalgs.namedCurve",
567
14
        FT_OID, BASE_NONE, NULL, 0,
568
14
        "OBJECT_IDENTIFIER", HFILL }},
569
14
    { &hf_pkixalgs_version,
570
14
      { "version", "pkixalgs.version",
571
14
        FT_INT32, BASE_DEC, VALS(pkixalgs_ECPVer_vals), 0,
572
14
        "ECPVer", HFILL }},
573
14
    { &hf_pkixalgs_fieldID,
574
14
      { "fieldID", "pkixalgs.fieldID_element",
575
14
        FT_NONE, BASE_NONE, NULL, 0,
576
14
        NULL, HFILL }},
577
14
    { &hf_pkixalgs_curve,
578
14
      { "curve", "pkixalgs.curve_element",
579
14
        FT_NONE, BASE_NONE, NULL, 0,
580
14
        NULL, HFILL }},
581
14
    { &hf_pkixalgs_base,
582
14
      { "base", "pkixalgs.base",
583
14
        FT_BYTES, BASE_NONE, NULL, 0,
584
14
        "ECPoint", HFILL }},
585
14
    { &hf_pkixalgs_order,
586
14
      { "order", "pkixalgs.order",
587
14
        FT_INT32, BASE_DEC, NULL, 0,
588
14
        "INTEGER", HFILL }},
589
14
    { &hf_pkixalgs_cofactor,
590
14
      { "cofactor", "pkixalgs.cofactor",
591
14
        FT_INT32, BASE_DEC, NULL, 0,
592
14
        "INTEGER", HFILL }},
593
14
    { &hf_pkixalgs_fieldType,
594
14
      { "fieldType", "pkixalgs.fieldType",
595
14
        FT_OID, BASE_NONE, NULL, 0,
596
14
        NULL, HFILL }},
597
14
    { &hf_pkixalgs_parameters,
598
14
      { "parameters", "pkixalgs.parameters_element",
599
14
        FT_NONE, BASE_NONE, NULL, 0,
600
14
        NULL, HFILL }},
601
14
    { &hf_pkixalgs_a,
602
14
      { "a", "pkixalgs.a",
603
14
        FT_BYTES, BASE_NONE, NULL, 0,
604
14
        "FieldElement", HFILL }},
605
14
    { &hf_pkixalgs_b,
606
14
      { "b", "pkixalgs.b",
607
14
        FT_BYTES, BASE_NONE, NULL, 0,
608
14
        "FieldElement", HFILL }},
609
14
    { &hf_pkixalgs_r,
610
14
      { "r", "pkixalgs.r",
611
14
        FT_INT32, BASE_DEC, NULL, 0,
612
14
        "INTEGER", HFILL }},
613
14
    { &hf_pkixalgs_s,
614
14
      { "s", "pkixalgs.s",
615
14
        FT_INT32, BASE_DEC, NULL, 0,
616
14
        "INTEGER", HFILL }},
617
14
  };
618
619
  /* List of subtrees */
620
14
  static int *ett[] = {
621
14
    &ett_pkixalgs_RSAPublicKey,
622
14
    &ett_pkixalgs_DigestInfo,
623
14
    &ett_pkixalgs_DSA_Params,
624
14
    &ett_pkixalgs_DomainParameters,
625
14
    &ett_pkixalgs_ValidationParams,
626
14
    &ett_pkixalgs_RSASSA_PSS_params,
627
14
    &ett_pkixalgs_ECParameters,
628
14
    &ett_pkixalgs_SpecifiedECDomain,
629
14
    &ett_pkixalgs_FieldID,
630
14
    &ett_pkixalgs_Curve,
631
14
    &ett_pkixalgs_DSA_Sig_Value,
632
14
    &ett_pkixalgs_ECDSA_Sig_Value,
633
14
  };
634
635
  /* Register protocol */
636
14
  proto_pkixalgs = proto_register_protocol("PKIX Algorithms", "PKIXALGS", "pkixalgs");
637
638
  /* Register fields and subtrees */
639
14
  proto_register_field_array(proto_pkixalgs, hf, array_length(hf));
640
14
  proto_register_alias(proto_pkixalgs, "pkcs1");
641
14
  proto_register_subtree_array(ett, array_length(ett));
642
643
14
}
644
645
646
/*--- proto_reg_handoff_pkixalgs -------------------------------------------*/
647
14
void proto_reg_handoff_pkixalgs(void) {
648
14
  register_ber_oid_dissector("1.2.840.10040.4.1", dissect_DSA_Params_PDU, proto_pkixalgs, "id-dsa");
649
14
  register_ber_oid_dissector("1.2.840.10046.2.1", dissect_DomainParameters_PDU, proto_pkixalgs, "dhpublicnumber");
650
14
  register_ber_oid_dissector("2.16.840.1.101.2.1.1.22", dissect_KEA_Params_Id_PDU, proto_pkixalgs, "id-keyExchangeAlgorithm");
651
14
  register_ber_oid_dissector("1.2.840.10045.2.1", dissect_ECParameters_PDU, proto_pkixalgs, "id-ecPublicKey");
652
14
  register_ber_oid_dissector("1.3.132.1.12", dissect_ECParameters_PDU, proto_pkixalgs, "id-ecDH");
653
14
  register_ber_oid_dissector("1.2.840.10045.2.13", dissect_ECParameters_PDU, proto_pkixalgs, "id-ecMQV");
654
14
  register_ber_oid_dissector("1.2.840.113549.1.1.10", dissect_RSASSA_PSS_params_PDU, proto_pkixalgs, "id-RSASSA-PSS");
655
14
  register_ber_oid_dissector("1.2.840.113549.1.1.8", dissect_HashAlgorithm_PDU, proto_pkixalgs, "id-mgf1");
656
14
  register_ber_oid_dissector("1.2.840.10045.1.1", dissect_Prime_p_PDU, proto_pkixalgs, "prime-field");
657
658
659
14
  register_ber_oid_dissector("1.2.840.113549.2.2", dissect_ber_oid_NULL_callback, proto_pkixalgs, "md2");
660
14
  register_ber_oid_dissector("1.2.840.113549.2.4", dissect_ber_oid_NULL_callback, proto_pkixalgs, "md4");
661
14
  register_ber_oid_dissector("1.2.840.113549.2.5", dissect_ber_oid_NULL_callback, proto_pkixalgs, "md5");
662
663
14
  register_ber_oid_dissector("1.2.840.113549.1.1.1", dissect_ber_oid_NULL_callback, proto_pkixalgs, "rsaEncryption");
664
14
  register_ber_oid_dissector("1.2.840.113549.1.1.2", dissect_ber_oid_NULL_callback, proto_pkixalgs, "md2WithRSAEncryption");
665
14
  register_ber_oid_dissector("1.2.840.113549.1.1.3", dissect_ber_oid_NULL_callback, proto_pkixalgs, "md4WithRSAEncryption");
666
14
  register_ber_oid_dissector("1.2.840.113549.1.1.4", dissect_ber_oid_NULL_callback, proto_pkixalgs, "md5WithRSAEncryption");
667
668
669
  /* these two are not from RFC2313  but pulled in from
670
     http://www.alvestrand.no/objectid/1.2.840.113549.1.1.html
671
  */
672
14
  register_ber_oid_dissector("1.2.840.113549.1.1.5", dissect_ber_oid_NULL_callback, proto_pkixalgs, "sha1WithRSAEncryption");
673
14
  register_ber_oid_dissector("1.2.840.113549.1.1.6", dissect_ber_oid_NULL_callback, proto_pkixalgs, "rsaOAEPEncryptionSET");
674
675
  /* these sha2 algorithms are from RFC3447 */
676
14
  register_ber_oid_dissector("1.2.840.113549.1.1.11", dissect_ber_oid_NULL_callback, proto_pkixalgs, "sha256WithRSAEncryption");
677
14
  register_ber_oid_dissector("1.2.840.113549.1.1.12", dissect_ber_oid_NULL_callback, proto_pkixalgs, "sha384WithRSAEncryption");
678
14
  register_ber_oid_dissector("1.2.840.113549.1.1.13", dissect_ber_oid_NULL_callback, proto_pkixalgs, "sha512WithRSAEncryption");
679
14
  register_ber_oid_dissector("1.2.840.113549.1.1.14", dissect_ber_oid_NULL_callback, proto_pkixalgs, "sha224WithRSAEncryption");
680
681
  /* ECDSA SHA-1 algorithm from RFC 3279 */
682
14
  register_ber_oid_dissector("1.2.840.10045.4.1", dissect_ber_oid_NULL_callback, proto_pkixalgs, "ecdsa-with-SHA1");
683
684
  /* SM2-with-SM3 from GM/T 0006 Cryptographic application identifier criterion specification */
685
14
  register_ber_oid_dissector("1.2.156.10197.1.501", dissect_ber_oid_NULL_callback, proto_pkixalgs, "SM2-with-SM3");
686
687
  /* ECDSA SHA2 algorithms from X9.62, RFC5480, RFC 5758, RFC 5912 */
688
14
  register_ber_oid_dissector("1.2.840.10045.4.3.1", dissect_ber_oid_NULL_callback, proto_pkixalgs, "ecdsa-with-SHA224");
689
14
  register_ber_oid_dissector("1.2.840.10045.4.3.2", dissect_ber_oid_NULL_callback, proto_pkixalgs, "ecdsa-with-SHA256");
690
14
  register_ber_oid_dissector("1.2.840.10045.4.3.3", dissect_ber_oid_NULL_callback, proto_pkixalgs, "ecdsa-with-SHA384");
691
14
  register_ber_oid_dissector("1.2.840.10045.4.3.4", dissect_ber_oid_NULL_callback, proto_pkixalgs, "ecdsa-with-SHA512");
692
693
  /* DSA SHA2 algorithms from FIPS186-3, RFC5480, RFC 5758, RFC 5912 */
694
14
  register_ber_oid_dissector("2.16.840.1.101.3.4.3.1", dissect_ber_oid_NULL_callback, proto_pkixalgs, "id-dsa-with-sha224");
695
14
  register_ber_oid_dissector("2.16.840.1.101.3.4.3.2", dissect_ber_oid_NULL_callback, proto_pkixalgs, "id-dsa-with-sha256");
696
697
  /* Curve25519 and Curve448 algorithms from RFC 8410 */
698
14
  register_ber_oid_dissector("1.3.101.110", dissect_ber_oid_NULL_callback, proto_pkixalgs, "id-X25519");
699
14
  register_ber_oid_dissector("1.3.101.111", dissect_ber_oid_NULL_callback, proto_pkixalgs, "id-X448");
700
14
  register_ber_oid_dissector("1.3.101.112", dissect_ber_oid_NULL_callback, proto_pkixalgs, "id-Ed25519");
701
14
  register_ber_oid_dissector("1.3.101.113", dissect_ber_oid_NULL_callback, proto_pkixalgs, "id-Ed448");
702
703
  /* Unsigned "signature" algorithm from RFC 9925. */
704
14
  register_ber_oid_dissector("1.3.6.1.5.5.7.6.36", dissect_ber_oid_NULL_callback, proto_pkixalgs, "id-alg-unsigned");
705
706
  /* Curve identifiers from SECG SEC 2 */
707
14
  oid_add_from_string("sect163k1","1.3.132.0.1");
708
14
  oid_add_from_string("sect163r1","1.3.132.0.2");
709
14
  oid_add_from_string("sect163r2","1.3.132.0.15");
710
14
  oid_add_from_string("secp192k1","1.3.132.0.31");
711
14
  oid_add_from_string("secp192r1","1.2.840.10045.3.1.1");
712
14
  oid_add_from_string("secp224k1","1.3.132.0.32");
713
14
  oid_add_from_string("secp224r1","1.3.132.0.33");
714
14
  oid_add_from_string("sect233k1","1.3.132.0.26");
715
14
  oid_add_from_string("sect233r1","1.3.132.0.27");
716
14
  oid_add_from_string("sect239k1","1.3.132.0.3");
717
14
  oid_add_from_string("secp256k1","1.3.132.0.10");
718
14
  oid_add_from_string("secp256r1","1.2.840.10045.3.1.7");
719
14
  oid_add_from_string("sect283k1","1.3.132.0.16");
720
14
  oid_add_from_string("sect283r1","1.3.132.0.17");
721
14
  oid_add_from_string("secp384r1","1.3.132.0.34");
722
14
  oid_add_from_string("sect409k1","1.3.132.0.36");
723
14
  oid_add_from_string("sect409r1","1.3.132.0.37");
724
14
  oid_add_from_string("secp521r1","1.3.132.0.35");
725
14
  oid_add_from_string("sect571k1","1.3.132.0.38");
726
14
  oid_add_from_string("sect571r1","1.3.132.0.39");
727
728
  /* SM2 from GM/T 0006 Cryptographic application identifier criterion specification */
729
14
  oid_add_from_string("sm2","1.2.156.10197.1.301");
730
731
  /* sha2 family, see RFC3447 and http://www.oid-info.com/get/2.16.840.1.101.3.4.2 */
732
14
  oid_add_from_string("sha256", "2.16.840.1.101.3.4.2.1");
733
14
  oid_add_from_string("sha384", "2.16.840.1.101.3.4.2.2");
734
14
  oid_add_from_string("sha512", "2.16.840.1.101.3.4.2.3");
735
14
  oid_add_from_string("sha224", "2.16.840.1.101.3.4.2.4");
736
737
  /* SM3 from GM/T 0006 Cryptographic application identifier criterion specification */
738
14
  oid_add_from_string("sm3","1.2.156.10197.1.401");
739
740
  /* PQC digital signature algorithms from OQS-OpenSSL,
741
    see https://github.com/open-quantum-safe/openssl/blob/OQS-OpenSSL_1_1_1-stable/oqs-template/oqs-sig-info.md */
742
14
  oid_add_from_string("dilithium2", "1.3.6.1.4.1.2.267.7.4.4");
743
14
  oid_add_from_string("p256_dilithium2", "1.3.9999.2.7.1");
744
14
  oid_add_from_string("rsa3072_dilithium2", "1.3.9999.2.7.2");
745
14
  oid_add_from_string("dilithium3", "1.3.6.1.4.1.2.267.7.6.5");
746
14
  oid_add_from_string("p384_dilithium3", "1.3.9999.2.7.3");
747
14
  oid_add_from_string("dilithium5", "1.3.6.1.4.1.2.267.7.8.7");
748
14
  oid_add_from_string("p521_dilithium5", "1.3.9999.2.7.4");
749
14
  oid_add_from_string("dilithium2_aes", "1.3.6.1.4.1.2.267.11.4.4");
750
14
  oid_add_from_string("p256_dilithium2_aes", "1.3.9999.2.11.1");
751
14
  oid_add_from_string("rsa3072_dilithium2_aes", "1.3.9999.2.11.2");
752
14
  oid_add_from_string("dilithium3_aes", "1.3.6.1.4.1.2.267.11.6.5");
753
14
  oid_add_from_string("p384_dilithium3_aes", "1.3.9999.2.11.3");
754
14
  oid_add_from_string("dilithium5_aes", "1.3.6.1.4.1.2.267.11.8.7");
755
14
  oid_add_from_string("p521_dilithium5_aes", "1.3.9999.2.11.4");
756
14
  oid_add_from_string("falcon512", "1.3.9999.3.1");
757
14
  oid_add_from_string("p256_falcon512", "1.3.9999.3.2");
758
14
  oid_add_from_string("rsa3072_falcon512", "1.3.9999.3.3");
759
14
  oid_add_from_string("falcon1024", "1.3.9999.3.4");
760
14
  oid_add_from_string("p521_falcon1024", "1.3.9999.3.5");
761
14
  oid_add_from_string("picnicl1full", "1.3.6.1.4.1.311.89.2.1.7");
762
14
  oid_add_from_string("p256_picnicl1full", "1.3.6.1.4.1.311.89.2.1.8");
763
14
  oid_add_from_string("rsa3072_picnicl1full", "1.3.6.1.4.1.311.89.2.1.9");
764
14
  oid_add_from_string("picnic3l1", "1.3.6.1.4.1.311.89.2.1.21");
765
14
  oid_add_from_string("p256_picnic3l1", "1.3.6.1.4.1.311.89.2.1.22");
766
14
  oid_add_from_string("rsa3072_picnic3l1", "1.3.6.1.4.1.311.89.2.1.23");
767
14
  oid_add_from_string("rainbowIclassic", "1.3.9999.5.1.1.1");
768
14
  oid_add_from_string("p256_rainbowIclassic", "1.3.9999.5.1.2.1");
769
14
  oid_add_from_string("rsa3072_rainbowIclassic", "1.3.9999.5.1.3.1");
770
14
  oid_add_from_string("rainbowVclassic", "1.3.9999.5.3.1.1");
771
14
  oid_add_from_string("p521_rainbowVclassic", "1.3.9999.5.3.2.1");
772
14
  oid_add_from_string("sphincsharaka128frobust", "1.3.9999.6.1.1");
773
14
  oid_add_from_string("p256_sphincsharaka128frobust", "1.3.9999.6.1.2");
774
14
  oid_add_from_string("rsa3072_sphincsharaka128frobust", "1.3.9999.6.1.3");
775
14
  oid_add_from_string("sphincssha256128frobust", "1.3.9999.6.4.1");
776
14
  oid_add_from_string("p256_sphincssha256128frobust", "1.3.9999.6.4.2");
777
14
  oid_add_from_string("rsa3072_sphincssha256128frobust", "1.3.9999.6.4.3");
778
14
  oid_add_from_string("sphincsshake256128frobust", "1.3.9999.6.7.1");
779
14
  oid_add_from_string("p256_sphincsshake256128frobust", "1.3.9999.6.7.2");
780
14
  oid_add_from_string("rsa3072_sphincsshake256128frobust", "1.3.9999.6.7.3");
781
782
14
}
783