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/dh_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 dh_get_params_list
14
static const OSSL_PARAM dh_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_octet_string(OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY, 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_int(OSSL_PKEY_PARAM_DH_PRIV_LEN, NULL),
28
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_FFC_SEED, NULL, 0),
29
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_GROUP_NAME, NULL, 0),
30
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_PUB_KEY, NULL, 0),
31
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_PRIV_KEY, NULL, 0),
32
    OSSL_PARAM_END
33
};
34
#endif
35
36
#ifndef dh_get_params_st
37
struct dh_get_params_st {
38
    OSSL_PARAM *bits;
39
    OSSL_PARAM *encpubkey;
40
    OSSL_PARAM *ffp.cofactor;
41
    OSSL_PARAM *ffp.g;
42
    OSSL_PARAM *ffp.g_index;
43
    OSSL_PARAM *ffp.group_name;
44
    OSSL_PARAM *ffp.h;
45
    OSSL_PARAM *ffp.p;
46
    OSSL_PARAM *ffp.p_counter;
47
    OSSL_PARAM *ffp.q;
48
    OSSL_PARAM *ffp.seed;
49
    OSSL_PARAM *maxsize;
50
    OSSL_PARAM *privkey;
51
    OSSL_PARAM *privlen;
52
    OSSL_PARAM *pubkey;
53
    OSSL_PARAM *secbits;
54
    OSSL_PARAM *seccat;
55
};
56
#endif
57
58
#ifndef dh_get_params_decoder
59
static int dh_get_params_decoder
60
    (const OSSL_PARAM *p, struct dh_get_params_st *r)
61
0
{
62
0
    const char *s;
63
64
0
    memset(r, 0, sizeof(*r));
65
0
    if (p != NULL)
66
0
        for (; (s = p->key) != NULL; p++)
67
0
            switch(s[0]) {
68
0
            default:
69
0
                break;
70
0
            case 'b':
71
0
                if (ossl_likely(strcmp("its", s + 1) == 0)) {
72
                    /* OSSL_PKEY_PARAM_BITS */
73
0
                    if (ossl_unlikely(r->bits != NULL)) {
74
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
75
0
                                       "param %s is repeated", s);
76
0
                        return 0;
77
0
                    }
78
0
                    r->bits = (OSSL_PARAM *)p;
79
0
                }
80
0
                break;
81
0
            case 'e':
82
0
                if (ossl_likely(strcmp("ncoded-pub-key", s + 1) == 0)) {
83
                    /* OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY */
84
0
                    if (ossl_unlikely(r->encpubkey != NULL)) {
85
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
86
0
                                       "param %s is repeated", s);
87
0
                        return 0;
88
0
                    }
89
0
                    r->encpubkey = (OSSL_PARAM *)p;
90
0
                }
91
0
                break;
92
0
            case 'g':
93
0
                switch(s[1]) {
94
0
                default:
95
0
                    break;
96
0
                case 'i':
97
0
                    if (ossl_likely(strcmp("ndex", s + 2) == 0)) {
98
                        /* OSSL_PKEY_PARAM_FFC_GINDEX */
99
0
                        if (ossl_unlikely(r->ffp.g_index != NULL)) {
100
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
101
0
                                           "param %s is repeated", s);
102
0
                            return 0;
103
0
                        }
104
0
                        r->ffp.g_index = (OSSL_PARAM *)p;
105
0
                    }
106
0
                    break;
107
0
                case 'r':
108
0
                    if (ossl_likely(strcmp("oup", s + 2) == 0)) {
109
                        /* OSSL_PKEY_PARAM_GROUP_NAME */
110
0
                        if (ossl_unlikely(r->ffp.group_name != NULL)) {
111
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
112
0
                                           "param %s is repeated", s);
113
0
                            return 0;
114
0
                        }
115
0
                        r->ffp.group_name = (OSSL_PARAM *)p;
116
0
                    }
117
0
                    break;
118
0
                case '\0':
119
0
                    if (ossl_unlikely(r->ffp.g != NULL)) {
120
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
121
0
                                       "param %s is repeated", s);
122
0
                        return 0;
123
0
                    }
124
0
                    r->ffp.g = (OSSL_PARAM *)p;
125
0
                }
126
0
                break;
127
0
            case 'h':
128
0
                if (ossl_likely(strcmp("index", s + 1) == 0)) {
129
                    /* OSSL_PKEY_PARAM_FFC_H */
130
0
                    if (ossl_unlikely(r->ffp.h != NULL)) {
131
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
132
0
                                       "param %s is repeated", s);
133
0
                        return 0;
134
0
                    }
135
0
                    r->ffp.h = (OSSL_PARAM *)p;
136
0
                }
137
0
                break;
138
0
            case 'j':
139
0
                switch(s[1]) {
140
0
                default:
141
0
                    break;
142
0
                case '\0':
143
0
                    if (ossl_unlikely(r->ffp.cofactor != NULL)) {
144
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
145
0
                                       "param %s is repeated", s);
146
0
                        return 0;
147
0
                    }
148
0
                    r->ffp.cofactor = (OSSL_PARAM *)p;
149
0
                }
150
0
                break;
151
0
            case 'm':
152
0
                if (ossl_likely(strcmp("ax-size", s + 1) == 0)) {
153
                    /* OSSL_PKEY_PARAM_MAX_SIZE */
154
0
                    if (ossl_unlikely(r->maxsize != 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->maxsize = (OSSL_PARAM *)p;
160
0
                }
161
0
                break;
162
0
            case 'p':
163
0
                switch(s[1]) {
164
0
                default:
165
0
                    break;
166
0
                case 'c':
167
0
                    if (ossl_likely(strcmp("ounter", s + 2) == 0)) {
168
                        /* OSSL_PKEY_PARAM_FFC_PCOUNTER */
169
0
                        if (ossl_unlikely(r->ffp.p_counter != NULL)) {
170
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
171
0
                                           "param %s is repeated", s);
172
0
                            return 0;
173
0
                        }
174
0
                        r->ffp.p_counter = (OSSL_PARAM *)p;
175
0
                    }
176
0
                    break;
177
0
                case 'r':
178
0
                    switch(s[2]) {
179
0
                    default:
180
0
                        break;
181
0
                    case 'i':
182
0
                        switch(s[3]) {
183
0
                        default:
184
0
                            break;
185
0
                        case 'v':
186
0
                            switch(s[4]) {
187
0
                            default:
188
0
                                break;
189
0
                            case '_':
190
0
                                if (ossl_likely(strcmp("len", s + 5) == 0)) {
191
                                    /* OSSL_PKEY_PARAM_DH_PRIV_LEN */
192
0
                                    if (ossl_unlikely(r->privlen != 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->privlen = (OSSL_PARAM *)p;
198
0
                                }
199
0
                                break;
200
0
                            case '\0':
201
0
                                if (ossl_unlikely(r->privkey != NULL)) {
202
0
                                    ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
203
0
                                                   "param %s is repeated", s);
204
0
                                    return 0;
205
0
                                }
206
0
                                r->privkey = (OSSL_PARAM *)p;
207
0
                            }
208
0
                        }
209
0
                    }
210
0
                    break;
211
0
                case 'u':
212
0
                    if (ossl_likely(strcmp("b", s + 2) == 0)) {
213
                        /* OSSL_PKEY_PARAM_PUB_KEY */
214
0
                        if (ossl_unlikely(r->pubkey != NULL)) {
215
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
216
0
                                           "param %s is repeated", s);
217
0
                            return 0;
218
0
                        }
219
0
                        r->pubkey = (OSSL_PARAM *)p;
220
0
                    }
221
0
                    break;
222
0
                case '\0':
223
0
                    if (ossl_unlikely(r->ffp.p != NULL)) {
224
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
225
0
                                       "param %s is repeated", s);
226
0
                        return 0;
227
0
                    }
228
0
                    r->ffp.p = (OSSL_PARAM *)p;
229
0
                }
230
0
                break;
231
0
            case 'q':
232
0
                switch(s[1]) {
233
0
                default:
234
0
                    break;
235
0
                case '\0':
236
0
                    if (ossl_unlikely(r->ffp.q != NULL)) {
237
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
238
0
                                       "param %s is repeated", s);
239
0
                        return 0;
240
0
                    }
241
0
                    r->ffp.q = (OSSL_PARAM *)p;
242
0
                }
243
0
                break;
244
0
            case 's':
245
0
                switch(s[1]) {
246
0
                default:
247
0
                    break;
248
0
                case 'e':
249
0
                    switch(s[2]) {
250
0
                    default:
251
0
                        break;
252
0
                    case 'c':
253
0
                        switch(s[3]) {
254
0
                        default:
255
0
                            break;
256
0
                        case 'u':
257
0
                            switch(s[4]) {
258
0
                            default:
259
0
                                break;
260
0
                            case 'r':
261
0
                                switch(s[5]) {
262
0
                                default:
263
0
                                    break;
264
0
                                case 'i':
265
0
                                    switch(s[6]) {
266
0
                                    default:
267
0
                                        break;
268
0
                                    case 't':
269
0
                                        switch(s[7]) {
270
0
                                        default:
271
0
                                            break;
272
0
                                        case 'y':
273
0
                                            switch(s[8]) {
274
0
                                            default:
275
0
                                                break;
276
0
                                            case '-':
277
0
                                                switch(s[9]) {
278
0
                                                default:
279
0
                                                    break;
280
0
                                                case 'b':
281
0
                                                    if (ossl_likely(strcmp("its", s + 10) == 0)) {
282
                                                        /* OSSL_PKEY_PARAM_SECURITY_BITS */
283
0
                                                        if (ossl_unlikely(r->secbits != NULL)) {
284
0
                                                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
285
0
                                                                           "param %s is repeated", s);
286
0
                                                            return 0;
287
0
                                                        }
288
0
                                                        r->secbits = (OSSL_PARAM *)p;
289
0
                                                    }
290
0
                                                    break;
291
0
                                                case 'c':
292
0
                                                    if (ossl_likely(strcmp("ategory", s + 10) == 0)) {
293
                                                        /* OSSL_PKEY_PARAM_SECURITY_CATEGORY */
294
0
                                                        if (ossl_unlikely(r->seccat != NULL)) {
295
0
                                                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
296
0
                                                                           "param %s is repeated", s);
297
0
                                                            return 0;
298
0
                                                        }
299
0
                                                        r->seccat = (OSSL_PARAM *)p;
300
0
                                                    }
301
0
                                                }
302
0
                                            }
303
0
                                        }
304
0
                                    }
305
0
                                }
306
0
                            }
307
0
                        }
308
0
                        break;
309
0
                    case 'e':
310
0
                        if (ossl_likely(strcmp("d", s + 3) == 0)) {
311
                            /* OSSL_PKEY_PARAM_FFC_SEED */
312
0
                            if (ossl_unlikely(r->ffp.seed != NULL)) {
313
0
                                ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
314
0
                                               "param %s is repeated", s);
315
0
                                return 0;
316
0
                            }
317
0
                            r->ffp.seed = (OSSL_PARAM *)p;
318
0
                        }
319
0
                    }
320
0
                }
321
0
            }
322
0
    return 1;
323
0
}
324
#endif
325
/* End of machine generated */
326
327
/* Machine generated by util/perl/OpenSSL/paramnames.pm */
328
#ifndef dh_set_params_list
329
static const OSSL_PARAM dh_set_params_list[] = {
330
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY, NULL, 0),
331
    OSSL_PARAM_END
332
};
333
#endif
334
335
#ifndef dh_set_params_st
336
struct dh_set_params_st {
337
    OSSL_PARAM *encpubkey;
338
};
339
#endif
340
341
#ifndef dh_set_params_decoder
342
static int dh_set_params_decoder
343
    (const OSSL_PARAM *p, struct dh_set_params_st *r)
344
0
{
345
0
    const char *s;
346
347
0
    memset(r, 0, sizeof(*r));
348
0
    if (p != NULL)
349
0
        for (; (s = p->key) != NULL; p++)
350
0
            if (ossl_likely(strcmp("encoded-pub-key", s + 0) == 0)) {
351
                /* OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY */
352
0
                if (ossl_unlikely(r->encpubkey != NULL)) {
353
0
                    ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
354
0
                                   "param %s is repeated", s);
355
0
                    return 0;
356
0
                }
357
0
                r->encpubkey = (OSSL_PARAM *)p;
358
0
            }
359
0
    return 1;
360
0
}
361
#endif
362
/* End of machine generated */
363
364
/* Machine generated by util/perl/OpenSSL/paramnames.pm */
365
#ifndef dhx_gen_set_params_list
366
static const OSSL_PARAM dhx_gen_set_params_list[] = {
367
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_FFC_TYPE, NULL, 0),
368
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_GROUP_NAME, NULL, 0),
369
    OSSL_PARAM_int(OSSL_PKEY_PARAM_DH_PRIV_LEN, NULL),
370
    OSSL_PARAM_size_t(OSSL_PKEY_PARAM_FFC_PBITS, NULL),
371
    OSSL_PARAM_size_t(OSSL_PKEY_PARAM_FFC_QBITS, NULL),
372
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_FFC_DIGEST, NULL, 0),
373
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_FFC_DIGEST_PROPS, NULL, 0),
374
    OSSL_PARAM_int(OSSL_PKEY_PARAM_FFC_GINDEX, NULL),
375
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_FFC_SEED, NULL, 0),
376
    OSSL_PARAM_int(OSSL_PKEY_PARAM_FFC_PCOUNTER, NULL),
377
    OSSL_PARAM_int(OSSL_PKEY_PARAM_FFC_H, NULL),
378
    OSSL_PARAM_END
379
};
380
#endif
381
382
#ifndef dhx_gen_set_params_st
383
struct dhx_gen_set_params_st {
384
    OSSL_PARAM *digest;
385
    OSSL_PARAM *g_index;
386
    OSSL_PARAM *group_name;
387
    OSSL_PARAM *h;
388
    OSSL_PARAM *p_counter;
389
    OSSL_PARAM *pbits;
390
    OSSL_PARAM *privlen;
391
    OSSL_PARAM *propq;
392
    OSSL_PARAM *qbits;
393
    OSSL_PARAM *seed;
394
    OSSL_PARAM *type;
395
};
396
#endif
397
398
#ifndef dhx_gen_set_params_decoder
399
static int dhx_gen_set_params_decoder
400
    (const OSSL_PARAM *p, struct dhx_gen_set_params_st *r)
401
0
{
402
0
    const char *s;
403
404
0
    memset(r, 0, sizeof(*r));
405
0
    if (p != NULL)
406
0
        for (; (s = p->key) != NULL; p++)
407
0
            switch(s[0]) {
408
0
            default:
409
0
                break;
410
0
            case 'd':
411
0
                if (ossl_likely(strcmp("igest", s + 1) == 0)) {
412
                    /* OSSL_PKEY_PARAM_FFC_DIGEST */
413
0
                    if (ossl_unlikely(r->digest != NULL)) {
414
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
415
0
                                       "param %s is repeated", s);
416
0
                        return 0;
417
0
                    }
418
0
                    r->digest = (OSSL_PARAM *)p;
419
0
                }
420
0
                break;
421
0
            case 'g':
422
0
                switch(s[1]) {
423
0
                default:
424
0
                    break;
425
0
                case 'i':
426
0
                    if (ossl_likely(strcmp("ndex", s + 2) == 0)) {
427
                        /* OSSL_PKEY_PARAM_FFC_GINDEX */
428
0
                        if (ossl_unlikely(r->g_index != NULL)) {
429
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
430
0
                                           "param %s is repeated", s);
431
0
                            return 0;
432
0
                        }
433
0
                        r->g_index = (OSSL_PARAM *)p;
434
0
                    }
435
0
                    break;
436
0
                case 'r':
437
0
                    if (ossl_likely(strcmp("oup", s + 2) == 0)) {
438
                        /* OSSL_PKEY_PARAM_GROUP_NAME */
439
0
                        if (ossl_unlikely(r->group_name != NULL)) {
440
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
441
0
                                           "param %s is repeated", s);
442
0
                            return 0;
443
0
                        }
444
0
                        r->group_name = (OSSL_PARAM *)p;
445
0
                    }
446
0
                }
447
0
                break;
448
0
            case 'h':
449
0
                if (ossl_likely(strcmp("index", s + 1) == 0)) {
450
                    /* OSSL_PKEY_PARAM_FFC_H */
451
0
                    if (ossl_unlikely(r->h != NULL)) {
452
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
453
0
                                       "param %s is repeated", s);
454
0
                        return 0;
455
0
                    }
456
0
                    r->h = (OSSL_PARAM *)p;
457
0
                }
458
0
                break;
459
0
            case 'p':
460
0
                switch(s[1]) {
461
0
                default:
462
0
                    break;
463
0
                case 'b':
464
0
                    if (ossl_likely(strcmp("its", s + 2) == 0)) {
465
                        /* OSSL_PKEY_PARAM_FFC_PBITS */
466
0
                        if (ossl_unlikely(r->pbits != NULL)) {
467
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
468
0
                                           "param %s is repeated", s);
469
0
                            return 0;
470
0
                        }
471
0
                        r->pbits = (OSSL_PARAM *)p;
472
0
                    }
473
0
                    break;
474
0
                case 'c':
475
0
                    if (ossl_likely(strcmp("ounter", s + 2) == 0)) {
476
                        /* OSSL_PKEY_PARAM_FFC_PCOUNTER */
477
0
                        if (ossl_unlikely(r->p_counter != NULL)) {
478
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
479
0
                                           "param %s is repeated", s);
480
0
                            return 0;
481
0
                        }
482
0
                        r->p_counter = (OSSL_PARAM *)p;
483
0
                    }
484
0
                    break;
485
0
                case 'r':
486
0
                    switch(s[2]) {
487
0
                    default:
488
0
                        break;
489
0
                    case 'i':
490
0
                        if (ossl_likely(strcmp("v_len", s + 3) == 0)) {
491
                            /* OSSL_PKEY_PARAM_DH_PRIV_LEN */
492
0
                            if (ossl_unlikely(r->privlen != NULL)) {
493
0
                                ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
494
0
                                               "param %s is repeated", s);
495
0
                                return 0;
496
0
                            }
497
0
                            r->privlen = (OSSL_PARAM *)p;
498
0
                        }
499
0
                        break;
500
0
                    case 'o':
501
0
                        if (ossl_likely(strcmp("perties", s + 3) == 0)) {
502
                            /* OSSL_PKEY_PARAM_FFC_DIGEST_PROPS */
503
0
                            if (ossl_unlikely(r->propq != NULL)) {
504
0
                                ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
505
0
                                               "param %s is repeated", s);
506
0
                                return 0;
507
0
                            }
508
0
                            r->propq = (OSSL_PARAM *)p;
509
0
                        }
510
0
                    }
511
0
                }
512
0
                break;
513
0
            case 'q':
514
0
                if (ossl_likely(strcmp("bits", s + 1) == 0)) {
515
                    /* OSSL_PKEY_PARAM_FFC_QBITS */
516
0
                    if (ossl_unlikely(r->qbits != NULL)) {
517
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
518
0
                                       "param %s is repeated", s);
519
0
                        return 0;
520
0
                    }
521
0
                    r->qbits = (OSSL_PARAM *)p;
522
0
                }
523
0
                break;
524
0
            case 's':
525
0
                switch(s[1]) {
526
0
                default:
527
0
                    break;
528
0
                case 'a':
529
0
                    if (ossl_likely(strcmp("feprime-generator", s + 2) == 0)) {
530
                        /* OSSL_PKEY_PARAM_DH_GENERATOR */
531
0
                        ERR_raise_data(ERR_LIB_PROV, ERR_R_UNSUPPORTED,
532
0
                                       "param %s is unsupported", s);
533
0
                        return 0;
534
0
                    }
535
0
                    break;
536
0
                case 'e':
537
0
                    if (ossl_likely(strcmp("ed", s + 2) == 0)) {
538
                        /* OSSL_PKEY_PARAM_FFC_SEED */
539
0
                        if (ossl_unlikely(r->seed != NULL)) {
540
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
541
0
                                           "param %s is repeated", s);
542
0
                            return 0;
543
0
                        }
544
0
                        r->seed = (OSSL_PARAM *)p;
545
0
                    }
546
0
                }
547
0
                break;
548
0
            case 't':
549
0
                if (ossl_likely(strcmp("ype", s + 1) == 0)) {
550
                    /* OSSL_PKEY_PARAM_FFC_TYPE */
551
0
                    if (ossl_unlikely(r->type != NULL)) {
552
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
553
0
                                       "param %s is repeated", s);
554
0
                        return 0;
555
0
                    }
556
0
                    r->type = (OSSL_PARAM *)p;
557
0
                }
558
0
            }
559
0
    return 1;
560
0
}
561
#endif
562
/* End of machine generated */
563
564
/* Machine generated by util/perl/OpenSSL/paramnames.pm */
565
#ifndef dh_gen_set_params_list
566
static const OSSL_PARAM dh_gen_set_params_list[] = {
567
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_FFC_TYPE, NULL, 0),
568
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_GROUP_NAME, NULL, 0),
569
    OSSL_PARAM_int(OSSL_PKEY_PARAM_DH_PRIV_LEN, NULL),
570
    OSSL_PARAM_size_t(OSSL_PKEY_PARAM_FFC_PBITS, NULL),
571
    OSSL_PARAM_int(OSSL_PKEY_PARAM_DH_GENERATOR, NULL),
572
    OSSL_PARAM_END
573
};
574
#endif
575
576
#ifndef dh_gen_set_params_st
577
struct dh_gen_set_params_st {
578
    OSSL_PARAM *generator;
579
    OSSL_PARAM *group_name;
580
    OSSL_PARAM *pbits;
581
    OSSL_PARAM *privlen;
582
    OSSL_PARAM *type;
583
};
584
#endif
585
586
#ifndef dh_gen_set_params_decoder
587
static int dh_gen_set_params_decoder
588
    (const OSSL_PARAM *p, struct dh_gen_set_params_st *r)
589
0
{
590
0
    const char *s;
591
592
0
    memset(r, 0, sizeof(*r));
593
0
    if (p != NULL)
594
0
        for (; (s = p->key) != NULL; p++)
595
0
            switch(s[0]) {
596
0
            default:
597
0
                break;
598
0
            case 'd':
599
0
                if (ossl_likely(strcmp("igest", s + 1) == 0)) {
600
                    /* OSSL_PKEY_PARAM_FFC_DIGEST */
601
0
                    ERR_raise_data(ERR_LIB_PROV, ERR_R_UNSUPPORTED,
602
0
                                   "param %s is unsupported", s);
603
0
                    return 0;
604
0
                }
605
0
                break;
606
0
            case 'g':
607
0
                switch(s[1]) {
608
0
                default:
609
0
                    break;
610
0
                case 'i':
611
0
                    if (ossl_likely(strcmp("ndex", s + 2) == 0)) {
612
                        /* OSSL_PKEY_PARAM_FFC_GINDEX */
613
0
                        ERR_raise_data(ERR_LIB_PROV, ERR_R_UNSUPPORTED,
614
0
                                       "param %s is unsupported", s);
615
0
                        return 0;
616
0
                    }
617
0
                    break;
618
0
                case 'r':
619
0
                    if (ossl_likely(strcmp("oup", s + 2) == 0)) {
620
                        /* OSSL_PKEY_PARAM_GROUP_NAME */
621
0
                        if (ossl_unlikely(r->group_name != NULL)) {
622
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
623
0
                                           "param %s is repeated", s);
624
0
                            return 0;
625
0
                        }
626
0
                        r->group_name = (OSSL_PARAM *)p;
627
0
                    }
628
0
                }
629
0
                break;
630
0
            case 'h':
631
0
                if (ossl_likely(strcmp("index", s + 1) == 0)) {
632
                    /* OSSL_PKEY_PARAM_FFC_H */
633
0
                    ERR_raise_data(ERR_LIB_PROV, ERR_R_UNSUPPORTED,
634
0
                                   "param %s is unsupported", s);
635
0
                    return 0;
636
0
                }
637
0
                break;
638
0
            case 'p':
639
0
                switch(s[1]) {
640
0
                default:
641
0
                    break;
642
0
                case 'b':
643
0
                    if (ossl_likely(strcmp("its", s + 2) == 0)) {
644
                        /* OSSL_PKEY_PARAM_FFC_PBITS */
645
0
                        if (ossl_unlikely(r->pbits != NULL)) {
646
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
647
0
                                           "param %s is repeated", s);
648
0
                            return 0;
649
0
                        }
650
0
                        r->pbits = (OSSL_PARAM *)p;
651
0
                    }
652
0
                    break;
653
0
                case 'c':
654
0
                    if (ossl_likely(strcmp("ounter", s + 2) == 0)) {
655
                        /* OSSL_PKEY_PARAM_FFC_PCOUNTER */
656
0
                        ERR_raise_data(ERR_LIB_PROV, ERR_R_UNSUPPORTED,
657
0
                                       "param %s is unsupported", s);
658
0
                        return 0;
659
0
                    }
660
0
                    break;
661
0
                case 'r':
662
0
                    switch(s[2]) {
663
0
                    default:
664
0
                        break;
665
0
                    case 'i':
666
0
                        if (ossl_likely(strcmp("v_len", s + 3) == 0)) {
667
                            /* OSSL_PKEY_PARAM_DH_PRIV_LEN */
668
0
                            if (ossl_unlikely(r->privlen != NULL)) {
669
0
                                ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
670
0
                                               "param %s is repeated", s);
671
0
                                return 0;
672
0
                            }
673
0
                            r->privlen = (OSSL_PARAM *)p;
674
0
                        }
675
0
                        break;
676
0
                    case 'o':
677
0
                        if (ossl_likely(strcmp("perties", s + 3) == 0)) {
678
                            /* OSSL_PKEY_PARAM_FFC_DIGEST_PROPS */
679
0
                            ERR_raise_data(ERR_LIB_PROV, ERR_R_UNSUPPORTED,
680
0
                                           "param %s is unsupported", s);
681
0
                            return 0;
682
0
                        }
683
0
                    }
684
0
                }
685
0
                break;
686
0
            case 'q':
687
0
                if (ossl_likely(strcmp("bits", s + 1) == 0)) {
688
                    /* OSSL_PKEY_PARAM_FFC_QBITS */
689
0
                    ERR_raise_data(ERR_LIB_PROV, ERR_R_UNSUPPORTED,
690
0
                                   "param %s is unsupported", s);
691
0
                    return 0;
692
0
                }
693
0
                break;
694
0
            case 's':
695
0
                switch(s[1]) {
696
0
                default:
697
0
                    break;
698
0
                case 'a':
699
0
                    if (ossl_likely(strcmp("feprime-generator", s + 2) == 0)) {
700
                        /* OSSL_PKEY_PARAM_DH_GENERATOR */
701
0
                        if (ossl_unlikely(r->generator != NULL)) {
702
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
703
0
                                           "param %s is repeated", s);
704
0
                            return 0;
705
0
                        }
706
0
                        r->generator = (OSSL_PARAM *)p;
707
0
                    }
708
0
                    break;
709
0
                case 'e':
710
0
                    if (ossl_likely(strcmp("ed", s + 2) == 0)) {
711
                        /* OSSL_PKEY_PARAM_FFC_SEED */
712
0
                        ERR_raise_data(ERR_LIB_PROV, ERR_R_UNSUPPORTED,
713
0
                                       "param %s is unsupported", s);
714
0
                        return 0;
715
0
                    }
716
0
                }
717
0
                break;
718
0
            case 't':
719
0
                if (ossl_likely(strcmp("ype", s + 1) == 0)) {
720
                    /* OSSL_PKEY_PARAM_FFC_TYPE */
721
0
                    if (ossl_unlikely(r->type != NULL)) {
722
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
723
0
                                       "param %s is repeated", s);
724
0
                        return 0;
725
0
                    }
726
0
                    r->type = (OSSL_PARAM *)p;
727
0
                }
728
0
            }
729
0
    return 1;
730
0
}
731
#endif
732
/* End of machine generated */