Coverage Report

Created: 2026-09-12 06:55

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