Coverage Report

Created: 2026-05-20 07:05

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/openssl/providers/implementations/keymgmt/dsa_kmgmt.inc
Line
Count
Source
1
/*
2
 * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved.
3
 *
4
 * Licensed under the Apache License 2.0 (the \"License\").  You may not use
5
 * this file except in compliance with the License.  You can obtain a copy
6
 * in the file LICENSE in the source distribution or at
7
 * https://www.openssl.org/source/license.html
8
 */
9
10
11
12
/* Machine generated by util/perl/OpenSSL/paramnames.pm */
13
#include <string.h>
14
#include <openssl/params.h>
15
#include "internal/common.h"
16
#include "prov/proverr.h"
17
18
#ifndef dsa_get_params_list
19
static const OSSL_PARAM dsa_get_params_list[] = {
20
    OSSL_PARAM_int(OSSL_PKEY_PARAM_BITS, NULL),
21
    OSSL_PARAM_int(OSSL_PKEY_PARAM_SECURITY_BITS, NULL),
22
    OSSL_PARAM_int(OSSL_PKEY_PARAM_MAX_SIZE, NULL),
23
    OSSL_PARAM_int(OSSL_PKEY_PARAM_SECURITY_CATEGORY, NULL),
24
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_DEFAULT_DIGEST, NULL, 0),
25
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_FFC_P, NULL, 0),
26
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_FFC_Q, NULL, 0),
27
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_FFC_G, NULL, 0),
28
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_FFC_COFACTOR, NULL, 0),
29
    OSSL_PARAM_int(OSSL_PKEY_PARAM_FFC_GINDEX, NULL),
30
    OSSL_PARAM_int(OSSL_PKEY_PARAM_FFC_PCOUNTER, NULL),
31
    OSSL_PARAM_int(OSSL_PKEY_PARAM_FFC_H, NULL),
32
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_FFC_SEED, NULL, 0),
33
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_PUB_KEY, NULL, 0),
34
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_PRIV_KEY, NULL, 0),
35
    OSSL_PARAM_END
36
};
37
#endif
38
39
#ifndef dsa_get_params_st
40
struct dsa_get_params_st {
41
    OSSL_PARAM *bits;
42
    OSSL_PARAM *digest;
43
    OSSL_PARAM *ffp.cofactor;
44
    OSSL_PARAM *ffp.g;
45
    OSSL_PARAM *ffp.g_index;
46
    OSSL_PARAM *ffp.h;
47
    OSSL_PARAM *ffp.p;
48
    OSSL_PARAM *ffp.p_counter;
49
    OSSL_PARAM *ffp.q;
50
    OSSL_PARAM *ffp.seed;
51
    OSSL_PARAM *maxsize;
52
    OSSL_PARAM *privkey;
53
    OSSL_PARAM *pubkey;
54
    OSSL_PARAM *secbits;
55
    OSSL_PARAM *seccat;
56
};
57
#endif
58
59
#ifndef dsa_get_params_decoder
60
static int dsa_get_params_decoder
61
    (const OSSL_PARAM *p, struct dsa_get_params_st *r)
62
0
{
63
0
    const char *s;
64
65
0
    memset(r, 0, sizeof(*r));
66
0
    if (p != NULL)
67
0
        for (; (s = p->key) != NULL; p++)
68
0
            switch(s[0]) {
69
0
            default:
70
0
                break;
71
0
            case 'b':
72
0
                if (ossl_likely(strcmp("its", s + 1) == 0)) {
73
                    /* OSSL_PKEY_PARAM_BITS */
74
0
                    if (ossl_unlikely(r->bits != NULL)) {
75
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
76
0
                                       "param %s is repeated", s);
77
0
                        return 0;
78
0
                    }
79
0
                    r->bits = (OSSL_PARAM *)p;
80
0
                }
81
0
                break;
82
0
            case 'd':
83
0
                if (ossl_likely(strcmp("efault-digest", s + 1) == 0)) {
84
                    /* OSSL_PKEY_PARAM_DEFAULT_DIGEST */
85
0
                    if (ossl_unlikely(r->digest != NULL)) {
86
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
87
0
                                       "param %s is repeated", s);
88
0
                        return 0;
89
0
                    }
90
0
                    r->digest = (OSSL_PARAM *)p;
91
0
                }
92
0
                break;
93
0
            case 'g':
94
0
                switch(s[1]) {
95
0
                default:
96
0
                    break;
97
0
                case 'i':
98
0
                    if (ossl_likely(strcmp("ndex", s + 2) == 0)) {
99
                        /* OSSL_PKEY_PARAM_FFC_GINDEX */
100
0
                        if (ossl_unlikely(r->ffp.g_index != NULL)) {
101
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
102
0
                                           "param %s is repeated", s);
103
0
                            return 0;
104
0
                        }
105
0
                        r->ffp.g_index = (OSSL_PARAM *)p;
106
0
                    }
107
0
                    break;
108
0
                case '\0':
109
0
                    if (ossl_unlikely(r->ffp.g != NULL)) {
110
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
111
0
                                       "param %s is repeated", s);
112
0
                        return 0;
113
0
                    }
114
0
                    r->ffp.g = (OSSL_PARAM *)p;
115
0
                }
116
0
                break;
117
0
            case 'h':
118
0
                if (ossl_likely(strcmp("index", s + 1) == 0)) {
119
                    /* OSSL_PKEY_PARAM_FFC_H */
120
0
                    if (ossl_unlikely(r->ffp.h != NULL)) {
121
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
122
0
                                       "param %s is repeated", s);
123
0
                        return 0;
124
0
                    }
125
0
                    r->ffp.h = (OSSL_PARAM *)p;
126
0
                }
127
0
                break;
128
0
            case 'j':
129
0
                switch(s[1]) {
130
0
                default:
131
0
                    break;
132
0
                case '\0':
133
0
                    if (ossl_unlikely(r->ffp.cofactor != NULL)) {
134
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
135
0
                                       "param %s is repeated", s);
136
0
                        return 0;
137
0
                    }
138
0
                    r->ffp.cofactor = (OSSL_PARAM *)p;
139
0
                }
140
0
                break;
141
0
            case 'm':
142
0
                if (ossl_likely(strcmp("ax-size", s + 1) == 0)) {
143
                    /* OSSL_PKEY_PARAM_MAX_SIZE */
144
0
                    if (ossl_unlikely(r->maxsize != NULL)) {
145
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
146
0
                                       "param %s is repeated", s);
147
0
                        return 0;
148
0
                    }
149
0
                    r->maxsize = (OSSL_PARAM *)p;
150
0
                }
151
0
                break;
152
0
            case 'p':
153
0
                switch(s[1]) {
154
0
                default:
155
0
                    break;
156
0
                case 'c':
157
0
                    if (ossl_likely(strcmp("ounter", s + 2) == 0)) {
158
                        /* OSSL_PKEY_PARAM_FFC_PCOUNTER */
159
0
                        if (ossl_unlikely(r->ffp.p_counter != NULL)) {
160
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
161
0
                                           "param %s is repeated", s);
162
0
                            return 0;
163
0
                        }
164
0
                        r->ffp.p_counter = (OSSL_PARAM *)p;
165
0
                    }
166
0
                    break;
167
0
                case 'r':
168
0
                    if (ossl_likely(strcmp("iv", s + 2) == 0)) {
169
                        /* OSSL_PKEY_PARAM_PRIV_KEY */
170
0
                        if (ossl_unlikely(r->privkey != NULL)) {
171
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
172
0
                                           "param %s is repeated", s);
173
0
                            return 0;
174
0
                        }
175
0
                        r->privkey = (OSSL_PARAM *)p;
176
0
                    }
177
0
                    break;
178
0
                case 'u':
179
0
                    if (ossl_likely(strcmp("b", s + 2) == 0)) {
180
                        /* OSSL_PKEY_PARAM_PUB_KEY */
181
0
                        if (ossl_unlikely(r->pubkey != NULL)) {
182
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
183
0
                                           "param %s is repeated", s);
184
0
                            return 0;
185
0
                        }
186
0
                        r->pubkey = (OSSL_PARAM *)p;
187
0
                    }
188
0
                    break;
189
0
                case '\0':
190
0
                    if (ossl_unlikely(r->ffp.p != NULL)) {
191
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
192
0
                                       "param %s is repeated", s);
193
0
                        return 0;
194
0
                    }
195
0
                    r->ffp.p = (OSSL_PARAM *)p;
196
0
                }
197
0
                break;
198
0
            case 'q':
199
0
                switch(s[1]) {
200
0
                default:
201
0
                    break;
202
0
                case '\0':
203
0
                    if (ossl_unlikely(r->ffp.q != NULL)) {
204
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
205
0
                                       "param %s is repeated", s);
206
0
                        return 0;
207
0
                    }
208
0
                    r->ffp.q = (OSSL_PARAM *)p;
209
0
                }
210
0
                break;
211
0
            case 's':
212
0
                switch(s[1]) {
213
0
                default:
214
0
                    break;
215
0
                case 'e':
216
0
                    switch(s[2]) {
217
0
                    default:
218
0
                        break;
219
0
                    case 'c':
220
0
                        switch(s[3]) {
221
0
                        default:
222
0
                            break;
223
0
                        case 'u':
224
0
                            switch(s[4]) {
225
0
                            default:
226
0
                                break;
227
0
                            case 'r':
228
0
                                switch(s[5]) {
229
0
                                default:
230
0
                                    break;
231
0
                                case 'i':
232
0
                                    switch(s[6]) {
233
0
                                    default:
234
0
                                        break;
235
0
                                    case 't':
236
0
                                        switch(s[7]) {
237
0
                                        default:
238
0
                                            break;
239
0
                                        case 'y':
240
0
                                            switch(s[8]) {
241
0
                                            default:
242
0
                                                break;
243
0
                                            case '-':
244
0
                                                switch(s[9]) {
245
0
                                                default:
246
0
                                                    break;
247
0
                                                case 'b':
248
0
                                                    if (ossl_likely(strcmp("its", s + 10) == 0)) {
249
                                                        /* OSSL_PKEY_PARAM_SECURITY_BITS */
250
0
                                                        if (ossl_unlikely(r->secbits != NULL)) {
251
0
                                                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
252
0
                                                                           "param %s is repeated", s);
253
0
                                                            return 0;
254
0
                                                        }
255
0
                                                        r->secbits = (OSSL_PARAM *)p;
256
0
                                                    }
257
0
                                                    break;
258
0
                                                case 'c':
259
0
                                                    if (ossl_likely(strcmp("ategory", s + 10) == 0)) {
260
                                                        /* OSSL_PKEY_PARAM_SECURITY_CATEGORY */
261
0
                                                        if (ossl_unlikely(r->seccat != NULL)) {
262
0
                                                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
263
0
                                                                           "param %s is repeated", s);
264
0
                                                            return 0;
265
0
                                                        }
266
0
                                                        r->seccat = (OSSL_PARAM *)p;
267
0
                                                    }
268
0
                                                }
269
0
                                            }
270
0
                                        }
271
0
                                    }
272
0
                                }
273
0
                            }
274
0
                        }
275
0
                        break;
276
0
                    case 'e':
277
0
                        if (ossl_likely(strcmp("d", s + 3) == 0)) {
278
                            /* OSSL_PKEY_PARAM_FFC_SEED */
279
0
                            if (ossl_unlikely(r->ffp.seed != NULL)) {
280
0
                                ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
281
0
                                               "param %s is repeated", s);
282
0
                                return 0;
283
0
                            }
284
0
                            r->ffp.seed = (OSSL_PARAM *)p;
285
0
                        }
286
0
                    }
287
0
                }
288
0
            }
289
0
    return 1;
290
0
}
291
#endif
292
/* End of machine generated */
293
294
/* Machine generated by util/perl/OpenSSL/paramnames.pm */
295
#include <string.h>
296
#include <openssl/params.h>
297
#include "internal/common.h"
298
#include "prov/proverr.h"
299
300
#ifndef dsa_gen_set_params_list
301
static const OSSL_PARAM dsa_gen_set_params_list[] = {
302
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_FFC_TYPE, NULL, 0),
303
    OSSL_PARAM_size_t(OSSL_PKEY_PARAM_FFC_PBITS, NULL),
304
    OSSL_PARAM_size_t(OSSL_PKEY_PARAM_FFC_QBITS, NULL),
305
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_FFC_DIGEST, NULL, 0),
306
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_FFC_DIGEST_PROPS, NULL, 0),
307
    OSSL_PARAM_int(OSSL_PKEY_PARAM_FFC_GINDEX, NULL),
308
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_FFC_SEED, NULL, 0),
309
    OSSL_PARAM_int(OSSL_PKEY_PARAM_FFC_PCOUNTER, NULL),
310
    OSSL_PARAM_int(OSSL_PKEY_PARAM_FFC_H, NULL),
311
# if defined(FIPS_MODULE)
312
    OSSL_PARAM_int(OSSL_PKEY_PARAM_FIPS_SIGN_CHECK, NULL),
313
# endif
314
    OSSL_PARAM_END
315
};
316
#endif
317
318
#ifndef dsa_gen_set_params_st
319
struct dsa_gen_set_params_st {
320
    OSSL_PARAM *digest;
321
    OSSL_PARAM *g_index;
322
    OSSL_PARAM *h;
323
# if defined(FIPS_MODULE)
324
    OSSL_PARAM *ind_sign;
325
# endif
326
    OSSL_PARAM *p_counter;
327
    OSSL_PARAM *pbits;
328
    OSSL_PARAM *propq;
329
    OSSL_PARAM *qbits;
330
    OSSL_PARAM *seed;
331
    OSSL_PARAM *type;
332
};
333
#endif
334
335
#ifndef dsa_gen_set_params_decoder
336
static int dsa_gen_set_params_decoder
337
    (const OSSL_PARAM *p, struct dsa_gen_set_params_st *r)
338
0
{
339
0
    const char *s;
340
341
0
    memset(r, 0, sizeof(*r));
342
0
    if (p != NULL)
343
0
        for (; (s = p->key) != NULL; p++)
344
0
            switch(s[0]) {
345
0
            default:
346
0
                break;
347
0
            case 'd':
348
0
                if (ossl_likely(strcmp("igest", s + 1) == 0)) {
349
                    /* OSSL_PKEY_PARAM_FFC_DIGEST */
350
0
                    if (ossl_unlikely(r->digest != NULL)) {
351
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
352
0
                                       "param %s is repeated", s);
353
0
                        return 0;
354
0
                    }
355
0
                    r->digest = (OSSL_PARAM *)p;
356
0
                }
357
0
                break;
358
0
            case 'g':
359
0
                if (ossl_likely(strcmp("index", s + 1) == 0)) {
360
                    /* OSSL_PKEY_PARAM_FFC_GINDEX */
361
0
                    if (ossl_unlikely(r->g_index != NULL)) {
362
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
363
0
                                       "param %s is repeated", s);
364
0
                        return 0;
365
0
                    }
366
0
                    r->g_index = (OSSL_PARAM *)p;
367
0
                }
368
0
                break;
369
0
            case 'h':
370
0
                if (ossl_likely(strcmp("index", s + 1) == 0)) {
371
                    /* OSSL_PKEY_PARAM_FFC_H */
372
0
                    if (ossl_unlikely(r->h != NULL)) {
373
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
374
0
                                       "param %s is repeated", s);
375
0
                        return 0;
376
0
                    }
377
0
                    r->h = (OSSL_PARAM *)p;
378
0
                }
379
0
                break;
380
0
            case 'p':
381
0
                switch(s[1]) {
382
0
                default:
383
0
                    break;
384
0
                case 'b':
385
0
                    if (ossl_likely(strcmp("its", s + 2) == 0)) {
386
                        /* OSSL_PKEY_PARAM_FFC_PBITS */
387
0
                        if (ossl_unlikely(r->pbits != NULL)) {
388
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
389
0
                                           "param %s is repeated", s);
390
0
                            return 0;
391
0
                        }
392
0
                        r->pbits = (OSSL_PARAM *)p;
393
0
                    }
394
0
                    break;
395
0
                case 'c':
396
0
                    if (ossl_likely(strcmp("ounter", s + 2) == 0)) {
397
                        /* OSSL_PKEY_PARAM_FFC_PCOUNTER */
398
0
                        if (ossl_unlikely(r->p_counter != NULL)) {
399
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
400
0
                                           "param %s is repeated", s);
401
0
                            return 0;
402
0
                        }
403
0
                        r->p_counter = (OSSL_PARAM *)p;
404
0
                    }
405
0
                    break;
406
0
                case 'r':
407
0
                    if (ossl_likely(strcmp("operties", s + 2) == 0)) {
408
                        /* OSSL_PKEY_PARAM_FFC_DIGEST_PROPS */
409
0
                        if (ossl_unlikely(r->propq != NULL)) {
410
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
411
0
                                           "param %s is repeated", s);
412
0
                            return 0;
413
0
                        }
414
0
                        r->propq = (OSSL_PARAM *)p;
415
0
                    }
416
0
                }
417
0
                break;
418
0
            case 'q':
419
0
                if (ossl_likely(strcmp("bits", s + 1) == 0)) {
420
                    /* OSSL_PKEY_PARAM_FFC_QBITS */
421
0
                    if (ossl_unlikely(r->qbits != NULL)) {
422
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
423
0
                                       "param %s is repeated", s);
424
0
                        return 0;
425
0
                    }
426
0
                    r->qbits = (OSSL_PARAM *)p;
427
0
                }
428
0
                break;
429
0
            case 's':
430
0
                switch(s[1]) {
431
0
                default:
432
0
                    break;
433
0
                case 'e':
434
0
                    if (ossl_likely(strcmp("ed", s + 2) == 0)) {
435
                        /* OSSL_PKEY_PARAM_FFC_SEED */
436
0
                        if (ossl_unlikely(r->seed != NULL)) {
437
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
438
0
                                           "param %s is repeated", s);
439
0
                            return 0;
440
0
                        }
441
0
                        r->seed = (OSSL_PARAM *)p;
442
0
                    }
443
0
                    break;
444
0
                case 'i':
445
# if defined(FIPS_MODULE)
446
                    if (ossl_likely(strcmp("gn-check", s + 2) == 0)) {
447
                        /* OSSL_PKEY_PARAM_FIPS_SIGN_CHECK */
448
                        if (ossl_unlikely(r->ind_sign != NULL)) {
449
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
450
                                           "param %s is repeated", s);
451
                            return 0;
452
                        }
453
                        r->ind_sign = (OSSL_PARAM *)p;
454
                    }
455
# endif
456
0
                    break;
457
0
                }
458
0
                break;
459
0
            case 't':
460
0
                if (ossl_likely(strcmp("ype", s + 1) == 0)) {
461
                    /* OSSL_PKEY_PARAM_FFC_TYPE */
462
0
                    if (ossl_unlikely(r->type != NULL)) {
463
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
464
0
                                       "param %s is repeated", s);
465
0
                        return 0;
466
0
                    }
467
0
                    r->type = (OSSL_PARAM *)p;
468
0
                }
469
0
            }
470
0
    return 1;
471
0
}
472
#endif
473
/* End of machine generated */
474
475
/* Machine generated by util/perl/OpenSSL/paramnames.pm */
476
#include <string.h>
477
#include <openssl/params.h>
478
#include "internal/common.h"
479
#include "prov/proverr.h"
480
481
#ifndef dsa_gen_get_params_list
482
static const OSSL_PARAM dsa_gen_get_params_list[] = {
483
# if defined(FIPS_MODULE)
484
    OSSL_PARAM_int(OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR, NULL),
485
# endif
486
    OSSL_PARAM_END
487
};
488
#endif
489
490
#ifndef dsa_gen_get_params_st
491
struct dsa_gen_get_params_st {
492
# if defined(FIPS_MODULE)
493
    OSSL_PARAM *ind;
494
# else
495
    int dummy; /* unused */
496
# endif
497
};
498
#endif
499
500
#ifndef dsa_gen_get_params_decoder
501
static int dsa_gen_get_params_decoder
502
    (const OSSL_PARAM *p, struct dsa_gen_get_params_st *r)
503
0
{
504
0
    const char *s;
505
506
0
    memset(r, 0, sizeof(*r));
507
0
    if (p != NULL)
508
0
        for (; (s = p->key) != NULL; p++)
509
# if defined(FIPS_MODULE)
510
            if (ossl_likely(strcmp("fips-indicator", s + 0) == 0)) {
511
                /* OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR */
512
                if (ossl_unlikely(r->ind != NULL)) {
513
                    ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
514
                                   "param %s is repeated", s);
515
                    return 0;
516
                }
517
                r->ind = (OSSL_PARAM *)p;
518
            }
519
# else
520
0
            ;
521
0
# endif
522
0
    return 1;
523
0
}
524
#endif
525
/* End of machine generated */