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