Coverage Report

Created: 2025-10-28 06:56

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