Coverage Report

Created: 2026-09-12 06:55

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/openssl41/include/crypto/ec_params.h
Line
Count
Source
1
/*
2
 * Copyright 2026 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
#ifndef OSSL_CRYPTO_EC_PARAMS_H
11
#define OSSL_CRYPTO_EC_PARAMS_H
12
13
/* clang-format off */
14
15
16
17
#include "crypto/ec.h"
18
#include <openssl/core_names.h>
19
#include <openssl/err.h>
20
#include <openssl/proverr.h>
21
22
23
24
/* Selection-specific provider import and export declarations. */
25
#define ec_imexport_types_1_st ec_params_st
26
/* Machine generated by util/perl/OpenSSL/paramnames.pm */
27
#include <string.h>
28
#include <openssl/params.h>
29
#include <openssl/e_os2.h>
30
#include "internal/common.h"
31
#include "prov/proverr.h"
32
33
/* Machine generated */
34
#ifndef ec_imexport_types_1_list
35
static ossl_unused const OSSL_PARAM ec_imexport_types_1_list[] = {
36
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_PRIV_KEY, NULL, 0),
37
    OSSL_PARAM_END
38
};
39
#endif
40
41
#ifndef ec_imexport_types_1_st
42
struct ec_imexport_types_1_st {
43
    OSSL_PARAM *priv;
44
};
45
#endif
46
47
#ifndef ec_imexport_types_1_decoder
48
static ossl_unused int ec_imexport_types_1_decoder
49
    (const OSSL_PARAM *p, struct ec_imexport_types_1_st *r)
50
0
{
51
0
    const char *s;
52
53
0
    memset(r, 0, sizeof(*r));
54
0
    if (p != NULL)
55
0
        for (; (s = p->key) != NULL; p++)
56
0
            if (ossl_likely(strcmp("priv", s + 0) == 0)) {
57
                /* OSSL_PKEY_PARAM_PRIV_KEY */
58
0
                if (ossl_unlikely(r->priv != NULL)) {
59
0
                    ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
60
0
                                   "param %s is repeated", s);
61
0
                    return 0;
62
0
                }
63
0
                r->priv = (OSSL_PARAM *)p;
64
0
            }
65
0
    return 1;
66
0
}
Unexecuted instantiation: ec_lib.c:ec_imexport_types_1_decoder
Unexecuted instantiation: ec_kmgmt.c:ec_imexport_types_1_decoder
Unexecuted instantiation: ec_ameth.c:ec_imexport_types_1_decoder
Unexecuted instantiation: ec_backend.c:ec_imexport_types_1_decoder
67
#endif
68
/* End of machine generated */
69
#define ec_imexport_types_2_st ec_params_st
70
/* Machine generated */
71
#ifndef ec_imexport_types_2_list
72
static ossl_unused const OSSL_PARAM ec_imexport_types_2_list[] = {
73
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_PUB_KEY, NULL, 0),
74
    OSSL_PARAM_END
75
};
76
#endif
77
78
#ifndef ec_imexport_types_2_st
79
struct ec_imexport_types_2_st {
80
    OSSL_PARAM *pub;
81
};
82
#endif
83
84
#ifndef ec_imexport_types_2_decoder
85
static ossl_unused int ec_imexport_types_2_decoder
86
    (const OSSL_PARAM *p, struct ec_imexport_types_2_st *r)
87
0
{
88
0
    const char *s;
89
90
0
    memset(r, 0, sizeof(*r));
91
0
    if (p != NULL)
92
0
        for (; (s = p->key) != NULL; p++)
93
0
            if (ossl_likely(strcmp("pub", s + 0) == 0)) {
94
                /* OSSL_PKEY_PARAM_PUB_KEY */
95
0
                if (ossl_unlikely(r->pub != NULL)) {
96
0
                    ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
97
0
                                   "param %s is repeated", s);
98
0
                    return 0;
99
0
                }
100
0
                r->pub = (OSSL_PARAM *)p;
101
0
            }
102
0
    return 1;
103
0
}
Unexecuted instantiation: ec_lib.c:ec_imexport_types_2_decoder
Unexecuted instantiation: ec_kmgmt.c:ec_imexport_types_2_decoder
Unexecuted instantiation: ec_ameth.c:ec_imexport_types_2_decoder
Unexecuted instantiation: ec_backend.c:ec_imexport_types_2_decoder
104
#endif
105
/* End of machine generated */
106
#define ec_imexport_types_3_st ec_params_st
107
/* Machine generated */
108
#ifndef ec_imexport_types_3_list
109
static ossl_unused const OSSL_PARAM ec_imexport_types_3_list[] = {
110
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_PRIV_KEY, NULL, 0),
111
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_PUB_KEY, NULL, 0),
112
    OSSL_PARAM_END
113
};
114
#endif
115
116
#ifndef ec_imexport_types_3_st
117
struct ec_imexport_types_3_st {
118
    OSSL_PARAM *priv;
119
    OSSL_PARAM *pub;
120
};
121
#endif
122
123
#ifndef ec_imexport_types_3_decoder
124
static ossl_unused int ec_imexport_types_3_decoder
125
    (const OSSL_PARAM *p, struct ec_imexport_types_3_st *r)
126
0
{
127
0
    const char *s;
128
129
0
    memset(r, 0, sizeof(*r));
130
0
    if (p != NULL)
131
0
        for (; (s = p->key) != NULL; p++)
132
0
            switch(s[0]) {
133
0
            default:
134
0
                break;
135
0
            case 'p':
136
0
                switch(s[1]) {
137
0
                default:
138
0
                    break;
139
0
                case 'r':
140
0
                    if (ossl_likely(strcmp("iv", s + 2) == 0)) {
141
                        /* OSSL_PKEY_PARAM_PRIV_KEY */
142
0
                        if (ossl_unlikely(r->priv != NULL)) {
143
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
144
0
                                           "param %s is repeated", s);
145
0
                            return 0;
146
0
                        }
147
0
                        r->priv = (OSSL_PARAM *)p;
148
0
                    }
149
0
                    break;
150
0
                case 'u':
151
0
                    if (ossl_likely(strcmp("b", s + 2) == 0)) {
152
                        /* OSSL_PKEY_PARAM_PUB_KEY */
153
0
                        if (ossl_unlikely(r->pub != NULL)) {
154
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
155
0
                                           "param %s is repeated", s);
156
0
                            return 0;
157
0
                        }
158
0
                        r->pub = (OSSL_PARAM *)p;
159
0
                    }
160
0
                }
161
0
            }
162
0
    return 1;
163
0
}
Unexecuted instantiation: ec_lib.c:ec_imexport_types_3_decoder
Unexecuted instantiation: ec_kmgmt.c:ec_imexport_types_3_decoder
Unexecuted instantiation: ec_ameth.c:ec_imexport_types_3_decoder
Unexecuted instantiation: ec_backend.c:ec_imexport_types_3_decoder
164
#endif
165
/* End of machine generated */
166
#define ec_imexport_types_4_st ec_params_st
167
/* Machine generated */
168
#ifndef ec_imexport_types_4_list
169
static ossl_unused const OSSL_PARAM ec_imexport_types_4_list[] = {
170
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_GROUP_NAME, NULL, 0),
171
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_ENCODING, NULL, 0),
172
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT, NULL, 0),
173
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_FIELD_TYPE, NULL, 0),
174
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_P, NULL, 0),
175
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_A, NULL, 0),
176
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_B, NULL, 0),
177
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_EC_GENERATOR, NULL, 0),
178
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_ORDER, NULL, 0),
179
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_COFACTOR, NULL, 0),
180
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_EC_SEED, NULL, 0),
181
    OSSL_PARAM_int(OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS, NULL),
182
    OSSL_PARAM_END
183
};
184
#endif
185
186
#ifndef ec_imexport_types_4_st
187
struct ec_imexport_types_4_st {
188
    OSSL_PARAM *a;
189
    OSSL_PARAM *b;
190
    OSSL_PARAM *cofactor;
191
    OSSL_PARAM *decoded;
192
    OSSL_PARAM *encoding;
193
    OSSL_PARAM *field_type;
194
    OSSL_PARAM *generator;
195
    OSSL_PARAM *group_name;
196
    OSSL_PARAM *order;
197
    OSSL_PARAM *p;
198
    OSSL_PARAM *pt_format;
199
    OSSL_PARAM *seed;
200
};
201
#endif
202
203
#ifndef ec_imexport_types_4_decoder
204
static ossl_unused int ec_imexport_types_4_decoder
205
    (const OSSL_PARAM *p, struct ec_imexport_types_4_st *r)
206
0
{
207
0
    const char *s;
208
209
0
    memset(r, 0, sizeof(*r));
210
0
    if (p != NULL)
211
0
        for (; (s = p->key) != NULL; p++)
212
0
            switch(s[0]) {
213
0
            default:
214
0
                break;
215
0
            case 'a':
216
0
                switch(s[1]) {
217
0
                default:
218
0
                    break;
219
0
                case '\0':
220
0
                    if (ossl_unlikely(r->a != NULL)) {
221
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
222
0
                                       "param %s is repeated", s);
223
0
                        return 0;
224
0
                    }
225
0
                    r->a = (OSSL_PARAM *)p;
226
0
                }
227
0
                break;
228
0
            case 'b':
229
0
                switch(s[1]) {
230
0
                default:
231
0
                    break;
232
0
                case '\0':
233
0
                    if (ossl_unlikely(r->b != NULL)) {
234
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
235
0
                                       "param %s is repeated", s);
236
0
                        return 0;
237
0
                    }
238
0
                    r->b = (OSSL_PARAM *)p;
239
0
                }
240
0
                break;
241
0
            case 'c':
242
0
                if (ossl_likely(strcmp("ofactor", s + 1) == 0)) {
243
                    /* OSSL_PKEY_PARAM_EC_COFACTOR */
244
0
                    if (ossl_unlikely(r->cofactor != NULL)) {
245
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
246
0
                                       "param %s is repeated", s);
247
0
                        return 0;
248
0
                    }
249
0
                    r->cofactor = (OSSL_PARAM *)p;
250
0
                }
251
0
                break;
252
0
            case 'd':
253
0
                if (ossl_likely(strcmp("ecoded-from-explicit", s + 1) == 0)) {
254
                    /* OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS */
255
0
                    if (ossl_unlikely(r->decoded != NULL)) {
256
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
257
0
                                       "param %s is repeated", s);
258
0
                        return 0;
259
0
                    }
260
0
                    r->decoded = (OSSL_PARAM *)p;
261
0
                }
262
0
                break;
263
0
            case 'e':
264
0
                if (ossl_likely(strcmp("ncoding", s + 1) == 0)) {
265
                    /* OSSL_PKEY_PARAM_EC_ENCODING */
266
0
                    if (ossl_unlikely(r->encoding != NULL)) {
267
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
268
0
                                       "param %s is repeated", s);
269
0
                        return 0;
270
0
                    }
271
0
                    r->encoding = (OSSL_PARAM *)p;
272
0
                }
273
0
                break;
274
0
            case 'f':
275
0
                if (ossl_likely(strcmp("ield-type", s + 1) == 0)) {
276
                    /* OSSL_PKEY_PARAM_EC_FIELD_TYPE */
277
0
                    if (ossl_unlikely(r->field_type != NULL)) {
278
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
279
0
                                       "param %s is repeated", s);
280
0
                        return 0;
281
0
                    }
282
0
                    r->field_type = (OSSL_PARAM *)p;
283
0
                }
284
0
                break;
285
0
            case 'g':
286
0
                switch(s[1]) {
287
0
                default:
288
0
                    break;
289
0
                case 'e':
290
0
                    if (ossl_likely(strcmp("nerator", s + 2) == 0)) {
291
                        /* OSSL_PKEY_PARAM_EC_GENERATOR */
292
0
                        if (ossl_unlikely(r->generator != NULL)) {
293
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
294
0
                                           "param %s is repeated", s);
295
0
                            return 0;
296
0
                        }
297
0
                        r->generator = (OSSL_PARAM *)p;
298
0
                    }
299
0
                    break;
300
0
                case 'r':
301
0
                    if (ossl_likely(strcmp("oup", s + 2) == 0)) {
302
                        /* OSSL_PKEY_PARAM_GROUP_NAME */
303
0
                        if (ossl_unlikely(r->group_name != NULL)) {
304
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
305
0
                                           "param %s is repeated", s);
306
0
                            return 0;
307
0
                        }
308
0
                        r->group_name = (OSSL_PARAM *)p;
309
0
                    }
310
0
                }
311
0
                break;
312
0
            case 'o':
313
0
                if (ossl_likely(strcmp("rder", s + 1) == 0)) {
314
                    /* OSSL_PKEY_PARAM_EC_ORDER */
315
0
                    if (ossl_unlikely(r->order != NULL)) {
316
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
317
0
                                       "param %s is repeated", s);
318
0
                        return 0;
319
0
                    }
320
0
                    r->order = (OSSL_PARAM *)p;
321
0
                }
322
0
                break;
323
0
            case 'p':
324
0
                switch(s[1]) {
325
0
                default:
326
0
                    break;
327
0
                case 'o':
328
0
                    if (ossl_likely(strcmp("int-format", s + 2) == 0)) {
329
                        /* OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT */
330
0
                        if (ossl_unlikely(r->pt_format != NULL)) {
331
0
                            break;
332
0
                        }
333
0
                        r->pt_format = (OSSL_PARAM *)p;
334
0
                    }
335
0
                    break;
336
0
                case '\0':
337
0
                    if (ossl_unlikely(r->p != NULL)) {
338
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
339
0
                                       "param %s is repeated", s);
340
0
                        return 0;
341
0
                    }
342
0
                    r->p = (OSSL_PARAM *)p;
343
0
                }
344
0
                break;
345
0
            case 's':
346
0
                if (ossl_likely(strcmp("eed", s + 1) == 0)) {
347
                    /* OSSL_PKEY_PARAM_EC_SEED */
348
0
                    if (ossl_unlikely(r->seed != NULL)) {
349
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
350
0
                                       "param %s is repeated", s);
351
0
                        return 0;
352
0
                    }
353
0
                    r->seed = (OSSL_PARAM *)p;
354
0
                }
355
0
            }
356
0
    return 1;
357
0
}
Unexecuted instantiation: ec_lib.c:ec_imexport_types_4_decoder
Unexecuted instantiation: ec_kmgmt.c:ec_imexport_types_4_decoder
Unexecuted instantiation: ec_ameth.c:ec_imexport_types_4_decoder
Unexecuted instantiation: ec_backend.c:ec_imexport_types_4_decoder
358
#endif
359
/* End of machine generated */
360
#define ec_imexport_types_5_st ec_params_st
361
/* Machine generated */
362
#ifndef ec_imexport_types_5_list
363
static ossl_unused const OSSL_PARAM ec_imexport_types_5_list[] = {
364
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_PRIV_KEY, NULL, 0),
365
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_GROUP_NAME, NULL, 0),
366
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_ENCODING, NULL, 0),
367
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT, NULL, 0),
368
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_FIELD_TYPE, NULL, 0),
369
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_P, NULL, 0),
370
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_A, NULL, 0),
371
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_B, NULL, 0),
372
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_EC_GENERATOR, NULL, 0),
373
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_ORDER, NULL, 0),
374
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_COFACTOR, NULL, 0),
375
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_EC_SEED, NULL, 0),
376
    OSSL_PARAM_int(OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS, NULL),
377
    OSSL_PARAM_END
378
};
379
#endif
380
381
#ifndef ec_imexport_types_5_st
382
struct ec_imexport_types_5_st {
383
    OSSL_PARAM *a;
384
    OSSL_PARAM *b;
385
    OSSL_PARAM *cofactor;
386
    OSSL_PARAM *decoded;
387
    OSSL_PARAM *encoding;
388
    OSSL_PARAM *field_type;
389
    OSSL_PARAM *generator;
390
    OSSL_PARAM *group_name;
391
    OSSL_PARAM *order;
392
    OSSL_PARAM *p;
393
    OSSL_PARAM *priv;
394
    OSSL_PARAM *pt_format;
395
    OSSL_PARAM *seed;
396
};
397
#endif
398
399
#ifndef ec_imexport_types_5_decoder
400
static ossl_unused int ec_imexport_types_5_decoder
401
    (const OSSL_PARAM *p, struct ec_imexport_types_5_st *r)
402
0
{
403
0
    const char *s;
404
405
0
    memset(r, 0, sizeof(*r));
406
0
    if (p != NULL)
407
0
        for (; (s = p->key) != NULL; p++)
408
0
            switch(s[0]) {
409
0
            default:
410
0
                break;
411
0
            case 'a':
412
0
                switch(s[1]) {
413
0
                default:
414
0
                    break;
415
0
                case '\0':
416
0
                    if (ossl_unlikely(r->a != NULL)) {
417
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
418
0
                                       "param %s is repeated", s);
419
0
                        return 0;
420
0
                    }
421
0
                    r->a = (OSSL_PARAM *)p;
422
0
                }
423
0
                break;
424
0
            case 'b':
425
0
                switch(s[1]) {
426
0
                default:
427
0
                    break;
428
0
                case '\0':
429
0
                    if (ossl_unlikely(r->b != NULL)) {
430
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
431
0
                                       "param %s is repeated", s);
432
0
                        return 0;
433
0
                    }
434
0
                    r->b = (OSSL_PARAM *)p;
435
0
                }
436
0
                break;
437
0
            case 'c':
438
0
                if (ossl_likely(strcmp("ofactor", s + 1) == 0)) {
439
                    /* OSSL_PKEY_PARAM_EC_COFACTOR */
440
0
                    if (ossl_unlikely(r->cofactor != NULL)) {
441
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
442
0
                                       "param %s is repeated", s);
443
0
                        return 0;
444
0
                    }
445
0
                    r->cofactor = (OSSL_PARAM *)p;
446
0
                }
447
0
                break;
448
0
            case 'd':
449
0
                if (ossl_likely(strcmp("ecoded-from-explicit", s + 1) == 0)) {
450
                    /* OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS */
451
0
                    if (ossl_unlikely(r->decoded != 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->decoded = (OSSL_PARAM *)p;
457
0
                }
458
0
                break;
459
0
            case 'e':
460
0
                if (ossl_likely(strcmp("ncoding", s + 1) == 0)) {
461
                    /* OSSL_PKEY_PARAM_EC_ENCODING */
462
0
                    if (ossl_unlikely(r->encoding != NULL)) {
463
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
464
0
                                       "param %s is repeated", s);
465
0
                        return 0;
466
0
                    }
467
0
                    r->encoding = (OSSL_PARAM *)p;
468
0
                }
469
0
                break;
470
0
            case 'f':
471
0
                if (ossl_likely(strcmp("ield-type", s + 1) == 0)) {
472
                    /* OSSL_PKEY_PARAM_EC_FIELD_TYPE */
473
0
                    if (ossl_unlikely(r->field_type != NULL)) {
474
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
475
0
                                       "param %s is repeated", s);
476
0
                        return 0;
477
0
                    }
478
0
                    r->field_type = (OSSL_PARAM *)p;
479
0
                }
480
0
                break;
481
0
            case 'g':
482
0
                switch(s[1]) {
483
0
                default:
484
0
                    break;
485
0
                case 'e':
486
0
                    if (ossl_likely(strcmp("nerator", s + 2) == 0)) {
487
                        /* OSSL_PKEY_PARAM_EC_GENERATOR */
488
0
                        if (ossl_unlikely(r->generator != NULL)) {
489
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
490
0
                                           "param %s is repeated", s);
491
0
                            return 0;
492
0
                        }
493
0
                        r->generator = (OSSL_PARAM *)p;
494
0
                    }
495
0
                    break;
496
0
                case 'r':
497
0
                    if (ossl_likely(strcmp("oup", s + 2) == 0)) {
498
                        /* OSSL_PKEY_PARAM_GROUP_NAME */
499
0
                        if (ossl_unlikely(r->group_name != NULL)) {
500
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
501
0
                                           "param %s is repeated", s);
502
0
                            return 0;
503
0
                        }
504
0
                        r->group_name = (OSSL_PARAM *)p;
505
0
                    }
506
0
                }
507
0
                break;
508
0
            case 'o':
509
0
                if (ossl_likely(strcmp("rder", s + 1) == 0)) {
510
                    /* OSSL_PKEY_PARAM_EC_ORDER */
511
0
                    if (ossl_unlikely(r->order != NULL)) {
512
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
513
0
                                       "param %s is repeated", s);
514
0
                        return 0;
515
0
                    }
516
0
                    r->order = (OSSL_PARAM *)p;
517
0
                }
518
0
                break;
519
0
            case 'p':
520
0
                switch(s[1]) {
521
0
                default:
522
0
                    break;
523
0
                case 'o':
524
0
                    if (ossl_likely(strcmp("int-format", s + 2) == 0)) {
525
                        /* OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT */
526
0
                        if (ossl_unlikely(r->pt_format != NULL)) {
527
0
                            break;
528
0
                        }
529
0
                        r->pt_format = (OSSL_PARAM *)p;
530
0
                    }
531
0
                    break;
532
0
                case 'r':
533
0
                    if (ossl_likely(strcmp("iv", s + 2) == 0)) {
534
                        /* OSSL_PKEY_PARAM_PRIV_KEY */
535
0
                        if (ossl_unlikely(r->priv != NULL)) {
536
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
537
0
                                           "param %s is repeated", s);
538
0
                            return 0;
539
0
                        }
540
0
                        r->priv = (OSSL_PARAM *)p;
541
0
                    }
542
0
                    break;
543
0
                case '\0':
544
0
                    if (ossl_unlikely(r->p != NULL)) {
545
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
546
0
                                       "param %s is repeated", s);
547
0
                        return 0;
548
0
                    }
549
0
                    r->p = (OSSL_PARAM *)p;
550
0
                }
551
0
                break;
552
0
            case 's':
553
0
                if (ossl_likely(strcmp("eed", s + 1) == 0)) {
554
                    /* OSSL_PKEY_PARAM_EC_SEED */
555
0
                    if (ossl_unlikely(r->seed != NULL)) {
556
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
557
0
                                       "param %s is repeated", s);
558
0
                        return 0;
559
0
                    }
560
0
                    r->seed = (OSSL_PARAM *)p;
561
0
                }
562
0
            }
563
0
    return 1;
564
0
}
Unexecuted instantiation: ec_lib.c:ec_imexport_types_5_decoder
Unexecuted instantiation: ec_kmgmt.c:ec_imexport_types_5_decoder
Unexecuted instantiation: ec_ameth.c:ec_imexport_types_5_decoder
Unexecuted instantiation: ec_backend.c:ec_imexport_types_5_decoder
565
#endif
566
/* End of machine generated */
567
#define ec_imexport_types_6_st ec_params_st
568
/* Machine generated */
569
#ifndef ec_imexport_types_6_list
570
static ossl_unused const OSSL_PARAM ec_imexport_types_6_list[] = {
571
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_PUB_KEY, NULL, 0),
572
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_GROUP_NAME, NULL, 0),
573
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_ENCODING, NULL, 0),
574
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT, NULL, 0),
575
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_FIELD_TYPE, NULL, 0),
576
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_P, NULL, 0),
577
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_A, NULL, 0),
578
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_B, NULL, 0),
579
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_EC_GENERATOR, NULL, 0),
580
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_ORDER, NULL, 0),
581
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_COFACTOR, NULL, 0),
582
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_EC_SEED, NULL, 0),
583
    OSSL_PARAM_int(OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS, NULL),
584
    OSSL_PARAM_END
585
};
586
#endif
587
588
#ifndef ec_imexport_types_6_st
589
struct ec_imexport_types_6_st {
590
    OSSL_PARAM *a;
591
    OSSL_PARAM *b;
592
    OSSL_PARAM *cofactor;
593
    OSSL_PARAM *decoded;
594
    OSSL_PARAM *encoding;
595
    OSSL_PARAM *field_type;
596
    OSSL_PARAM *generator;
597
    OSSL_PARAM *group_name;
598
    OSSL_PARAM *order;
599
    OSSL_PARAM *p;
600
    OSSL_PARAM *pt_format;
601
    OSSL_PARAM *pub;
602
    OSSL_PARAM *seed;
603
};
604
#endif
605
606
#ifndef ec_imexport_types_6_decoder
607
static ossl_unused int ec_imexport_types_6_decoder
608
    (const OSSL_PARAM *p, struct ec_imexport_types_6_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 'a':
619
0
                switch(s[1]) {
620
0
                default:
621
0
                    break;
622
0
                case '\0':
623
0
                    if (ossl_unlikely(r->a != NULL)) {
624
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
625
0
                                       "param %s is repeated", s);
626
0
                        return 0;
627
0
                    }
628
0
                    r->a = (OSSL_PARAM *)p;
629
0
                }
630
0
                break;
631
0
            case 'b':
632
0
                switch(s[1]) {
633
0
                default:
634
0
                    break;
635
0
                case '\0':
636
0
                    if (ossl_unlikely(r->b != NULL)) {
637
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
638
0
                                       "param %s is repeated", s);
639
0
                        return 0;
640
0
                    }
641
0
                    r->b = (OSSL_PARAM *)p;
642
0
                }
643
0
                break;
644
0
            case 'c':
645
0
                if (ossl_likely(strcmp("ofactor", s + 1) == 0)) {
646
                    /* OSSL_PKEY_PARAM_EC_COFACTOR */
647
0
                    if (ossl_unlikely(r->cofactor != NULL)) {
648
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
649
0
                                       "param %s is repeated", s);
650
0
                        return 0;
651
0
                    }
652
0
                    r->cofactor = (OSSL_PARAM *)p;
653
0
                }
654
0
                break;
655
0
            case 'd':
656
0
                if (ossl_likely(strcmp("ecoded-from-explicit", s + 1) == 0)) {
657
                    /* OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS */
658
0
                    if (ossl_unlikely(r->decoded != NULL)) {
659
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
660
0
                                       "param %s is repeated", s);
661
0
                        return 0;
662
0
                    }
663
0
                    r->decoded = (OSSL_PARAM *)p;
664
0
                }
665
0
                break;
666
0
            case 'e':
667
0
                if (ossl_likely(strcmp("ncoding", s + 1) == 0)) {
668
                    /* OSSL_PKEY_PARAM_EC_ENCODING */
669
0
                    if (ossl_unlikely(r->encoding != NULL)) {
670
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
671
0
                                       "param %s is repeated", s);
672
0
                        return 0;
673
0
                    }
674
0
                    r->encoding = (OSSL_PARAM *)p;
675
0
                }
676
0
                break;
677
0
            case 'f':
678
0
                if (ossl_likely(strcmp("ield-type", s + 1) == 0)) {
679
                    /* OSSL_PKEY_PARAM_EC_FIELD_TYPE */
680
0
                    if (ossl_unlikely(r->field_type != NULL)) {
681
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
682
0
                                       "param %s is repeated", s);
683
0
                        return 0;
684
0
                    }
685
0
                    r->field_type = (OSSL_PARAM *)p;
686
0
                }
687
0
                break;
688
0
            case 'g':
689
0
                switch(s[1]) {
690
0
                default:
691
0
                    break;
692
0
                case 'e':
693
0
                    if (ossl_likely(strcmp("nerator", s + 2) == 0)) {
694
                        /* OSSL_PKEY_PARAM_EC_GENERATOR */
695
0
                        if (ossl_unlikely(r->generator != NULL)) {
696
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
697
0
                                           "param %s is repeated", s);
698
0
                            return 0;
699
0
                        }
700
0
                        r->generator = (OSSL_PARAM *)p;
701
0
                    }
702
0
                    break;
703
0
                case 'r':
704
0
                    if (ossl_likely(strcmp("oup", s + 2) == 0)) {
705
                        /* OSSL_PKEY_PARAM_GROUP_NAME */
706
0
                        if (ossl_unlikely(r->group_name != NULL)) {
707
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
708
0
                                           "param %s is repeated", s);
709
0
                            return 0;
710
0
                        }
711
0
                        r->group_name = (OSSL_PARAM *)p;
712
0
                    }
713
0
                }
714
0
                break;
715
0
            case 'o':
716
0
                if (ossl_likely(strcmp("rder", s + 1) == 0)) {
717
                    /* OSSL_PKEY_PARAM_EC_ORDER */
718
0
                    if (ossl_unlikely(r->order != NULL)) {
719
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
720
0
                                       "param %s is repeated", s);
721
0
                        return 0;
722
0
                    }
723
0
                    r->order = (OSSL_PARAM *)p;
724
0
                }
725
0
                break;
726
0
            case 'p':
727
0
                switch(s[1]) {
728
0
                default:
729
0
                    break;
730
0
                case 'o':
731
0
                    if (ossl_likely(strcmp("int-format", s + 2) == 0)) {
732
                        /* OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT */
733
0
                        if (ossl_unlikely(r->pt_format != NULL)) {
734
0
                            break;
735
0
                        }
736
0
                        r->pt_format = (OSSL_PARAM *)p;
737
0
                    }
738
0
                    break;
739
0
                case 'u':
740
0
                    if (ossl_likely(strcmp("b", s + 2) == 0)) {
741
                        /* OSSL_PKEY_PARAM_PUB_KEY */
742
0
                        if (ossl_unlikely(r->pub != NULL)) {
743
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
744
0
                                           "param %s is repeated", s);
745
0
                            return 0;
746
0
                        }
747
0
                        r->pub = (OSSL_PARAM *)p;
748
0
                    }
749
0
                    break;
750
0
                case '\0':
751
0
                    if (ossl_unlikely(r->p != NULL)) {
752
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
753
0
                                       "param %s is repeated", s);
754
0
                        return 0;
755
0
                    }
756
0
                    r->p = (OSSL_PARAM *)p;
757
0
                }
758
0
                break;
759
0
            case 's':
760
0
                if (ossl_likely(strcmp("eed", s + 1) == 0)) {
761
                    /* OSSL_PKEY_PARAM_EC_SEED */
762
0
                    if (ossl_unlikely(r->seed != NULL)) {
763
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
764
0
                                       "param %s is repeated", s);
765
0
                        return 0;
766
0
                    }
767
0
                    r->seed = (OSSL_PARAM *)p;
768
0
                }
769
0
            }
770
0
    return 1;
771
0
}
Unexecuted instantiation: ec_lib.c:ec_imexport_types_6_decoder
Unexecuted instantiation: ec_kmgmt.c:ec_imexport_types_6_decoder
Unexecuted instantiation: ec_ameth.c:ec_imexport_types_6_decoder
Unexecuted instantiation: ec_backend.c:ec_imexport_types_6_decoder
772
#endif
773
/* End of machine generated */
774
#define ec_imexport_types_7_st ec_params_st
775
/* Machine generated */
776
#ifndef ec_imexport_types_7_list
777
static ossl_unused const OSSL_PARAM ec_imexport_types_7_list[] = {
778
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_PRIV_KEY, NULL, 0),
779
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_PUB_KEY, NULL, 0),
780
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_GROUP_NAME, NULL, 0),
781
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_ENCODING, NULL, 0),
782
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT, NULL, 0),
783
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_FIELD_TYPE, NULL, 0),
784
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_P, NULL, 0),
785
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_A, NULL, 0),
786
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_B, NULL, 0),
787
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_EC_GENERATOR, NULL, 0),
788
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_ORDER, NULL, 0),
789
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_COFACTOR, NULL, 0),
790
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_EC_SEED, NULL, 0),
791
    OSSL_PARAM_int(OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS, NULL),
792
    OSSL_PARAM_END
793
};
794
#endif
795
796
#ifndef ec_imexport_types_7_st
797
struct ec_imexport_types_7_st {
798
    OSSL_PARAM *a;
799
    OSSL_PARAM *b;
800
    OSSL_PARAM *cofactor;
801
    OSSL_PARAM *decoded;
802
    OSSL_PARAM *encoding;
803
    OSSL_PARAM *field_type;
804
    OSSL_PARAM *generator;
805
    OSSL_PARAM *group_name;
806
    OSSL_PARAM *order;
807
    OSSL_PARAM *p;
808
    OSSL_PARAM *priv;
809
    OSSL_PARAM *pt_format;
810
    OSSL_PARAM *pub;
811
    OSSL_PARAM *seed;
812
};
813
#endif
814
815
#ifndef ec_imexport_types_7_decoder
816
static ossl_unused int ec_imexport_types_7_decoder
817
    (const OSSL_PARAM *p, struct ec_imexport_types_7_st *r)
818
0
{
819
0
    const char *s;
820
821
0
    memset(r, 0, sizeof(*r));
822
0
    if (p != NULL)
823
0
        for (; (s = p->key) != NULL; p++)
824
0
            switch(s[0]) {
825
0
            default:
826
0
                break;
827
0
            case 'a':
828
0
                switch(s[1]) {
829
0
                default:
830
0
                    break;
831
0
                case '\0':
832
0
                    if (ossl_unlikely(r->a != NULL)) {
833
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
834
0
                                       "param %s is repeated", s);
835
0
                        return 0;
836
0
                    }
837
0
                    r->a = (OSSL_PARAM *)p;
838
0
                }
839
0
                break;
840
0
            case 'b':
841
0
                switch(s[1]) {
842
0
                default:
843
0
                    break;
844
0
                case '\0':
845
0
                    if (ossl_unlikely(r->b != NULL)) {
846
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
847
0
                                       "param %s is repeated", s);
848
0
                        return 0;
849
0
                    }
850
0
                    r->b = (OSSL_PARAM *)p;
851
0
                }
852
0
                break;
853
0
            case 'c':
854
0
                if (ossl_likely(strcmp("ofactor", s + 1) == 0)) {
855
                    /* OSSL_PKEY_PARAM_EC_COFACTOR */
856
0
                    if (ossl_unlikely(r->cofactor != NULL)) {
857
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
858
0
                                       "param %s is repeated", s);
859
0
                        return 0;
860
0
                    }
861
0
                    r->cofactor = (OSSL_PARAM *)p;
862
0
                }
863
0
                break;
864
0
            case 'd':
865
0
                if (ossl_likely(strcmp("ecoded-from-explicit", s + 1) == 0)) {
866
                    /* OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS */
867
0
                    if (ossl_unlikely(r->decoded != NULL)) {
868
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
869
0
                                       "param %s is repeated", s);
870
0
                        return 0;
871
0
                    }
872
0
                    r->decoded = (OSSL_PARAM *)p;
873
0
                }
874
0
                break;
875
0
            case 'e':
876
0
                if (ossl_likely(strcmp("ncoding", s + 1) == 0)) {
877
                    /* OSSL_PKEY_PARAM_EC_ENCODING */
878
0
                    if (ossl_unlikely(r->encoding != NULL)) {
879
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
880
0
                                       "param %s is repeated", s);
881
0
                        return 0;
882
0
                    }
883
0
                    r->encoding = (OSSL_PARAM *)p;
884
0
                }
885
0
                break;
886
0
            case 'f':
887
0
                if (ossl_likely(strcmp("ield-type", s + 1) == 0)) {
888
                    /* OSSL_PKEY_PARAM_EC_FIELD_TYPE */
889
0
                    if (ossl_unlikely(r->field_type != NULL)) {
890
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
891
0
                                       "param %s is repeated", s);
892
0
                        return 0;
893
0
                    }
894
0
                    r->field_type = (OSSL_PARAM *)p;
895
0
                }
896
0
                break;
897
0
            case 'g':
898
0
                switch(s[1]) {
899
0
                default:
900
0
                    break;
901
0
                case 'e':
902
0
                    if (ossl_likely(strcmp("nerator", s + 2) == 0)) {
903
                        /* OSSL_PKEY_PARAM_EC_GENERATOR */
904
0
                        if (ossl_unlikely(r->generator != NULL)) {
905
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
906
0
                                           "param %s is repeated", s);
907
0
                            return 0;
908
0
                        }
909
0
                        r->generator = (OSSL_PARAM *)p;
910
0
                    }
911
0
                    break;
912
0
                case 'r':
913
0
                    if (ossl_likely(strcmp("oup", s + 2) == 0)) {
914
                        /* OSSL_PKEY_PARAM_GROUP_NAME */
915
0
                        if (ossl_unlikely(r->group_name != NULL)) {
916
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
917
0
                                           "param %s is repeated", s);
918
0
                            return 0;
919
0
                        }
920
0
                        r->group_name = (OSSL_PARAM *)p;
921
0
                    }
922
0
                }
923
0
                break;
924
0
            case 'o':
925
0
                if (ossl_likely(strcmp("rder", s + 1) == 0)) {
926
                    /* OSSL_PKEY_PARAM_EC_ORDER */
927
0
                    if (ossl_unlikely(r->order != NULL)) {
928
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
929
0
                                       "param %s is repeated", s);
930
0
                        return 0;
931
0
                    }
932
0
                    r->order = (OSSL_PARAM *)p;
933
0
                }
934
0
                break;
935
0
            case 'p':
936
0
                switch(s[1]) {
937
0
                default:
938
0
                    break;
939
0
                case 'o':
940
0
                    if (ossl_likely(strcmp("int-format", s + 2) == 0)) {
941
                        /* OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT */
942
0
                        if (ossl_unlikely(r->pt_format != NULL)) {
943
0
                            break;
944
0
                        }
945
0
                        r->pt_format = (OSSL_PARAM *)p;
946
0
                    }
947
0
                    break;
948
0
                case 'r':
949
0
                    if (ossl_likely(strcmp("iv", s + 2) == 0)) {
950
                        /* OSSL_PKEY_PARAM_PRIV_KEY */
951
0
                        if (ossl_unlikely(r->priv != NULL)) {
952
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
953
0
                                           "param %s is repeated", s);
954
0
                            return 0;
955
0
                        }
956
0
                        r->priv = (OSSL_PARAM *)p;
957
0
                    }
958
0
                    break;
959
0
                case 'u':
960
0
                    if (ossl_likely(strcmp("b", s + 2) == 0)) {
961
                        /* OSSL_PKEY_PARAM_PUB_KEY */
962
0
                        if (ossl_unlikely(r->pub != NULL)) {
963
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
964
0
                                           "param %s is repeated", s);
965
0
                            return 0;
966
0
                        }
967
0
                        r->pub = (OSSL_PARAM *)p;
968
0
                    }
969
0
                    break;
970
0
                case '\0':
971
0
                    if (ossl_unlikely(r->p != NULL)) {
972
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
973
0
                                       "param %s is repeated", s);
974
0
                        return 0;
975
0
                    }
976
0
                    r->p = (OSSL_PARAM *)p;
977
0
                }
978
0
                break;
979
0
            case 's':
980
0
                if (ossl_likely(strcmp("eed", s + 1) == 0)) {
981
                    /* OSSL_PKEY_PARAM_EC_SEED */
982
0
                    if (ossl_unlikely(r->seed != NULL)) {
983
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
984
0
                                       "param %s is repeated", s);
985
0
                        return 0;
986
0
                    }
987
0
                    r->seed = (OSSL_PARAM *)p;
988
0
                }
989
0
            }
990
0
    return 1;
991
0
}
Unexecuted instantiation: ec_lib.c:ec_imexport_types_7_decoder
Unexecuted instantiation: ec_kmgmt.c:ec_imexport_types_7_decoder
Unexecuted instantiation: ec_ameth.c:ec_imexport_types_7_decoder
Unexecuted instantiation: ec_backend.c:ec_imexport_types_7_decoder
992
#endif
993
/* End of machine generated */
994
#define ec_imexport_types_8_st ec_params_st
995
/* Machine generated */
996
#ifndef ec_imexport_types_8_list
997
static ossl_unused const OSSL_PARAM ec_imexport_types_8_list[] = {
998
    OSSL_PARAM_int(OSSL_PKEY_PARAM_USE_COFACTOR_ECDH, NULL),
999
    OSSL_PARAM_int(OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC, NULL),
1000
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE, NULL, 0),
1001
    OSSL_PARAM_END
1002
};
1003
#endif
1004
1005
#ifndef ec_imexport_types_8_st
1006
struct ec_imexport_types_8_st {
1007
    OSSL_PARAM *group_check;
1008
    OSSL_PARAM *include_public;
1009
    OSSL_PARAM *use_cofactor;
1010
};
1011
#endif
1012
1013
#ifndef ec_imexport_types_8_decoder
1014
static ossl_unused int ec_imexport_types_8_decoder
1015
    (const OSSL_PARAM *p, struct ec_imexport_types_8_st *r)
1016
0
{
1017
0
    const char *s;
1018
1019
0
    memset(r, 0, sizeof(*r));
1020
0
    if (p != NULL)
1021
0
        for (; (s = p->key) != NULL; p++)
1022
0
            switch(s[0]) {
1023
0
            default:
1024
0
                break;
1025
0
            case 'g':
1026
0
                if (ossl_likely(strcmp("roup-check", s + 1) == 0)) {
1027
                    /* OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE */
1028
0
                    if (ossl_unlikely(r->group_check != NULL)) {
1029
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1030
0
                                       "param %s is repeated", s);
1031
0
                        return 0;
1032
0
                    }
1033
0
                    r->group_check = (OSSL_PARAM *)p;
1034
0
                }
1035
0
                break;
1036
0
            case 'i':
1037
0
                if (ossl_likely(strcmp("nclude-public", s + 1) == 0)) {
1038
                    /* OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC */
1039
0
                    if (ossl_unlikely(r->include_public != NULL)) {
1040
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1041
0
                                       "param %s is repeated", s);
1042
0
                        return 0;
1043
0
                    }
1044
0
                    r->include_public = (OSSL_PARAM *)p;
1045
0
                }
1046
0
                break;
1047
0
            case 'u':
1048
0
                if (ossl_likely(strcmp("se-cofactor-flag", s + 1) == 0)) {
1049
                    /* OSSL_PKEY_PARAM_USE_COFACTOR_ECDH */
1050
0
                    if (ossl_unlikely(r->use_cofactor != NULL)) {
1051
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1052
0
                                       "param %s is repeated", s);
1053
0
                        return 0;
1054
0
                    }
1055
0
                    r->use_cofactor = (OSSL_PARAM *)p;
1056
0
                }
1057
0
            }
1058
0
    return 1;
1059
0
}
Unexecuted instantiation: ec_lib.c:ec_imexport_types_8_decoder
Unexecuted instantiation: ec_kmgmt.c:ec_imexport_types_8_decoder
Unexecuted instantiation: ec_ameth.c:ec_imexport_types_8_decoder
Unexecuted instantiation: ec_backend.c:ec_imexport_types_8_decoder
1060
#endif
1061
/* End of machine generated */
1062
#define ec_imexport_types_9_st ec_params_st
1063
/* Machine generated */
1064
#ifndef ec_imexport_types_9_list
1065
static ossl_unused const OSSL_PARAM ec_imexport_types_9_list[] = {
1066
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_PRIV_KEY, NULL, 0),
1067
    OSSL_PARAM_int(OSSL_PKEY_PARAM_USE_COFACTOR_ECDH, NULL),
1068
    OSSL_PARAM_int(OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC, NULL),
1069
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE, NULL, 0),
1070
    OSSL_PARAM_END
1071
};
1072
#endif
1073
1074
#ifndef ec_imexport_types_9_st
1075
struct ec_imexport_types_9_st {
1076
    OSSL_PARAM *group_check;
1077
    OSSL_PARAM *include_public;
1078
    OSSL_PARAM *priv;
1079
    OSSL_PARAM *use_cofactor;
1080
};
1081
#endif
1082
1083
#ifndef ec_imexport_types_9_decoder
1084
static ossl_unused int ec_imexport_types_9_decoder
1085
    (const OSSL_PARAM *p, struct ec_imexport_types_9_st *r)
1086
0
{
1087
0
    const char *s;
1088
1089
0
    memset(r, 0, sizeof(*r));
1090
0
    if (p != NULL)
1091
0
        for (; (s = p->key) != NULL; p++)
1092
0
            switch(s[0]) {
1093
0
            default:
1094
0
                break;
1095
0
            case 'g':
1096
0
                if (ossl_likely(strcmp("roup-check", s + 1) == 0)) {
1097
                    /* OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE */
1098
0
                    if (ossl_unlikely(r->group_check != NULL)) {
1099
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1100
0
                                       "param %s is repeated", s);
1101
0
                        return 0;
1102
0
                    }
1103
0
                    r->group_check = (OSSL_PARAM *)p;
1104
0
                }
1105
0
                break;
1106
0
            case 'i':
1107
0
                if (ossl_likely(strcmp("nclude-public", s + 1) == 0)) {
1108
                    /* OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC */
1109
0
                    if (ossl_unlikely(r->include_public != NULL)) {
1110
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1111
0
                                       "param %s is repeated", s);
1112
0
                        return 0;
1113
0
                    }
1114
0
                    r->include_public = (OSSL_PARAM *)p;
1115
0
                }
1116
0
                break;
1117
0
            case 'p':
1118
0
                if (ossl_likely(strcmp("riv", s + 1) == 0)) {
1119
                    /* OSSL_PKEY_PARAM_PRIV_KEY */
1120
0
                    if (ossl_unlikely(r->priv != NULL)) {
1121
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1122
0
                                       "param %s is repeated", s);
1123
0
                        return 0;
1124
0
                    }
1125
0
                    r->priv = (OSSL_PARAM *)p;
1126
0
                }
1127
0
                break;
1128
0
            case 'u':
1129
0
                if (ossl_likely(strcmp("se-cofactor-flag", s + 1) == 0)) {
1130
                    /* OSSL_PKEY_PARAM_USE_COFACTOR_ECDH */
1131
0
                    if (ossl_unlikely(r->use_cofactor != NULL)) {
1132
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1133
0
                                       "param %s is repeated", s);
1134
0
                        return 0;
1135
0
                    }
1136
0
                    r->use_cofactor = (OSSL_PARAM *)p;
1137
0
                }
1138
0
            }
1139
0
    return 1;
1140
0
}
Unexecuted instantiation: ec_lib.c:ec_imexport_types_9_decoder
Unexecuted instantiation: ec_kmgmt.c:ec_imexport_types_9_decoder
Unexecuted instantiation: ec_ameth.c:ec_imexport_types_9_decoder
Unexecuted instantiation: ec_backend.c:ec_imexport_types_9_decoder
1141
#endif
1142
/* End of machine generated */
1143
#define ec_imexport_types_10_st ec_params_st
1144
/* Machine generated */
1145
#ifndef ec_imexport_types_10_list
1146
static ossl_unused const OSSL_PARAM ec_imexport_types_10_list[] = {
1147
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_PUB_KEY, NULL, 0),
1148
    OSSL_PARAM_int(OSSL_PKEY_PARAM_USE_COFACTOR_ECDH, NULL),
1149
    OSSL_PARAM_int(OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC, NULL),
1150
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE, NULL, 0),
1151
    OSSL_PARAM_END
1152
};
1153
#endif
1154
1155
#ifndef ec_imexport_types_10_st
1156
struct ec_imexport_types_10_st {
1157
    OSSL_PARAM *group_check;
1158
    OSSL_PARAM *include_public;
1159
    OSSL_PARAM *pub;
1160
    OSSL_PARAM *use_cofactor;
1161
};
1162
#endif
1163
1164
#ifndef ec_imexport_types_10_decoder
1165
static ossl_unused int ec_imexport_types_10_decoder
1166
    (const OSSL_PARAM *p, struct ec_imexport_types_10_st *r)
1167
0
{
1168
0
    const char *s;
1169
1170
0
    memset(r, 0, sizeof(*r));
1171
0
    if (p != NULL)
1172
0
        for (; (s = p->key) != NULL; p++)
1173
0
            switch(s[0]) {
1174
0
            default:
1175
0
                break;
1176
0
            case 'g':
1177
0
                if (ossl_likely(strcmp("roup-check", s + 1) == 0)) {
1178
                    /* OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE */
1179
0
                    if (ossl_unlikely(r->group_check != NULL)) {
1180
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1181
0
                                       "param %s is repeated", s);
1182
0
                        return 0;
1183
0
                    }
1184
0
                    r->group_check = (OSSL_PARAM *)p;
1185
0
                }
1186
0
                break;
1187
0
            case 'i':
1188
0
                if (ossl_likely(strcmp("nclude-public", s + 1) == 0)) {
1189
                    /* OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC */
1190
0
                    if (ossl_unlikely(r->include_public != NULL)) {
1191
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1192
0
                                       "param %s is repeated", s);
1193
0
                        return 0;
1194
0
                    }
1195
0
                    r->include_public = (OSSL_PARAM *)p;
1196
0
                }
1197
0
                break;
1198
0
            case 'p':
1199
0
                if (ossl_likely(strcmp("ub", s + 1) == 0)) {
1200
                    /* OSSL_PKEY_PARAM_PUB_KEY */
1201
0
                    if (ossl_unlikely(r->pub != NULL)) {
1202
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1203
0
                                       "param %s is repeated", s);
1204
0
                        return 0;
1205
0
                    }
1206
0
                    r->pub = (OSSL_PARAM *)p;
1207
0
                }
1208
0
                break;
1209
0
            case 'u':
1210
0
                if (ossl_likely(strcmp("se-cofactor-flag", s + 1) == 0)) {
1211
                    /* OSSL_PKEY_PARAM_USE_COFACTOR_ECDH */
1212
0
                    if (ossl_unlikely(r->use_cofactor != NULL)) {
1213
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1214
0
                                       "param %s is repeated", s);
1215
0
                        return 0;
1216
0
                    }
1217
0
                    r->use_cofactor = (OSSL_PARAM *)p;
1218
0
                }
1219
0
            }
1220
0
    return 1;
1221
0
}
Unexecuted instantiation: ec_lib.c:ec_imexport_types_10_decoder
Unexecuted instantiation: ec_kmgmt.c:ec_imexport_types_10_decoder
Unexecuted instantiation: ec_ameth.c:ec_imexport_types_10_decoder
Unexecuted instantiation: ec_backend.c:ec_imexport_types_10_decoder
1222
#endif
1223
/* End of machine generated */
1224
#define ec_imexport_types_11_st ec_params_st
1225
/* Machine generated */
1226
#ifndef ec_imexport_types_11_list
1227
static ossl_unused const OSSL_PARAM ec_imexport_types_11_list[] = {
1228
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_PRIV_KEY, NULL, 0),
1229
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_PUB_KEY, NULL, 0),
1230
    OSSL_PARAM_int(OSSL_PKEY_PARAM_USE_COFACTOR_ECDH, NULL),
1231
    OSSL_PARAM_int(OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC, NULL),
1232
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE, NULL, 0),
1233
    OSSL_PARAM_END
1234
};
1235
#endif
1236
1237
#ifndef ec_imexport_types_11_st
1238
struct ec_imexport_types_11_st {
1239
    OSSL_PARAM *group_check;
1240
    OSSL_PARAM *include_public;
1241
    OSSL_PARAM *priv;
1242
    OSSL_PARAM *pub;
1243
    OSSL_PARAM *use_cofactor;
1244
};
1245
#endif
1246
1247
#ifndef ec_imexport_types_11_decoder
1248
static ossl_unused int ec_imexport_types_11_decoder
1249
    (const OSSL_PARAM *p, struct ec_imexport_types_11_st *r)
1250
0
{
1251
0
    const char *s;
1252
1253
0
    memset(r, 0, sizeof(*r));
1254
0
    if (p != NULL)
1255
0
        for (; (s = p->key) != NULL; p++)
1256
0
            switch(s[0]) {
1257
0
            default:
1258
0
                break;
1259
0
            case 'g':
1260
0
                if (ossl_likely(strcmp("roup-check", s + 1) == 0)) {
1261
                    /* OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE */
1262
0
                    if (ossl_unlikely(r->group_check != NULL)) {
1263
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1264
0
                                       "param %s is repeated", s);
1265
0
                        return 0;
1266
0
                    }
1267
0
                    r->group_check = (OSSL_PARAM *)p;
1268
0
                }
1269
0
                break;
1270
0
            case 'i':
1271
0
                if (ossl_likely(strcmp("nclude-public", s + 1) == 0)) {
1272
                    /* OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC */
1273
0
                    if (ossl_unlikely(r->include_public != NULL)) {
1274
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1275
0
                                       "param %s is repeated", s);
1276
0
                        return 0;
1277
0
                    }
1278
0
                    r->include_public = (OSSL_PARAM *)p;
1279
0
                }
1280
0
                break;
1281
0
            case 'p':
1282
0
                switch(s[1]) {
1283
0
                default:
1284
0
                    break;
1285
0
                case 'r':
1286
0
                    if (ossl_likely(strcmp("iv", s + 2) == 0)) {
1287
                        /* OSSL_PKEY_PARAM_PRIV_KEY */
1288
0
                        if (ossl_unlikely(r->priv != NULL)) {
1289
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1290
0
                                           "param %s is repeated", s);
1291
0
                            return 0;
1292
0
                        }
1293
0
                        r->priv = (OSSL_PARAM *)p;
1294
0
                    }
1295
0
                    break;
1296
0
                case 'u':
1297
0
                    if (ossl_likely(strcmp("b", s + 2) == 0)) {
1298
                        /* OSSL_PKEY_PARAM_PUB_KEY */
1299
0
                        if (ossl_unlikely(r->pub != NULL)) {
1300
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1301
0
                                           "param %s is repeated", s);
1302
0
                            return 0;
1303
0
                        }
1304
0
                        r->pub = (OSSL_PARAM *)p;
1305
0
                    }
1306
0
                }
1307
0
                break;
1308
0
            case 'u':
1309
0
                if (ossl_likely(strcmp("se-cofactor-flag", s + 1) == 0)) {
1310
                    /* OSSL_PKEY_PARAM_USE_COFACTOR_ECDH */
1311
0
                    if (ossl_unlikely(r->use_cofactor != NULL)) {
1312
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1313
0
                                       "param %s is repeated", s);
1314
0
                        return 0;
1315
0
                    }
1316
0
                    r->use_cofactor = (OSSL_PARAM *)p;
1317
0
                }
1318
0
            }
1319
0
    return 1;
1320
0
}
Unexecuted instantiation: ec_lib.c:ec_imexport_types_11_decoder
Unexecuted instantiation: ec_kmgmt.c:ec_imexport_types_11_decoder
Unexecuted instantiation: ec_ameth.c:ec_imexport_types_11_decoder
Unexecuted instantiation: ec_backend.c:ec_imexport_types_11_decoder
1321
#endif
1322
/* End of machine generated */
1323
#define ec_imexport_types_12_st ec_params_st
1324
/* Machine generated */
1325
#ifndef ec_imexport_types_12_list
1326
static ossl_unused const OSSL_PARAM ec_imexport_types_12_list[] = {
1327
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_GROUP_NAME, NULL, 0),
1328
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_ENCODING, NULL, 0),
1329
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT, NULL, 0),
1330
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_FIELD_TYPE, NULL, 0),
1331
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_P, NULL, 0),
1332
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_A, NULL, 0),
1333
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_B, NULL, 0),
1334
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_EC_GENERATOR, NULL, 0),
1335
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_ORDER, NULL, 0),
1336
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_COFACTOR, NULL, 0),
1337
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_EC_SEED, NULL, 0),
1338
    OSSL_PARAM_int(OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS, NULL),
1339
    OSSL_PARAM_int(OSSL_PKEY_PARAM_USE_COFACTOR_ECDH, NULL),
1340
    OSSL_PARAM_int(OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC, NULL),
1341
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE, NULL, 0),
1342
    OSSL_PARAM_END
1343
};
1344
#endif
1345
1346
#ifndef ec_imexport_types_12_st
1347
struct ec_imexport_types_12_st {
1348
    OSSL_PARAM *a;
1349
    OSSL_PARAM *b;
1350
    OSSL_PARAM *cofactor;
1351
    OSSL_PARAM *decoded;
1352
    OSSL_PARAM *encoding;
1353
    OSSL_PARAM *field_type;
1354
    OSSL_PARAM *generator;
1355
    OSSL_PARAM *group_check;
1356
    OSSL_PARAM *group_name;
1357
    OSSL_PARAM *include_public;
1358
    OSSL_PARAM *order;
1359
    OSSL_PARAM *p;
1360
    OSSL_PARAM *pt_format;
1361
    OSSL_PARAM *seed;
1362
    OSSL_PARAM *use_cofactor;
1363
};
1364
#endif
1365
1366
#ifndef ec_imexport_types_12_decoder
1367
static ossl_unused int ec_imexport_types_12_decoder
1368
    (const OSSL_PARAM *p, struct ec_imexport_types_12_st *r)
1369
0
{
1370
0
    const char *s;
1371
1372
0
    memset(r, 0, sizeof(*r));
1373
0
    if (p != NULL)
1374
0
        for (; (s = p->key) != NULL; p++)
1375
0
            switch(s[0]) {
1376
0
            default:
1377
0
                break;
1378
0
            case 'a':
1379
0
                switch(s[1]) {
1380
0
                default:
1381
0
                    break;
1382
0
                case '\0':
1383
0
                    if (ossl_unlikely(r->a != NULL)) {
1384
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1385
0
                                       "param %s is repeated", s);
1386
0
                        return 0;
1387
0
                    }
1388
0
                    r->a = (OSSL_PARAM *)p;
1389
0
                }
1390
0
                break;
1391
0
            case 'b':
1392
0
                switch(s[1]) {
1393
0
                default:
1394
0
                    break;
1395
0
                case '\0':
1396
0
                    if (ossl_unlikely(r->b != NULL)) {
1397
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1398
0
                                       "param %s is repeated", s);
1399
0
                        return 0;
1400
0
                    }
1401
0
                    r->b = (OSSL_PARAM *)p;
1402
0
                }
1403
0
                break;
1404
0
            case 'c':
1405
0
                if (ossl_likely(strcmp("ofactor", s + 1) == 0)) {
1406
                    /* OSSL_PKEY_PARAM_EC_COFACTOR */
1407
0
                    if (ossl_unlikely(r->cofactor != NULL)) {
1408
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1409
0
                                       "param %s is repeated", s);
1410
0
                        return 0;
1411
0
                    }
1412
0
                    r->cofactor = (OSSL_PARAM *)p;
1413
0
                }
1414
0
                break;
1415
0
            case 'd':
1416
0
                if (ossl_likely(strcmp("ecoded-from-explicit", s + 1) == 0)) {
1417
                    /* OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS */
1418
0
                    if (ossl_unlikely(r->decoded != NULL)) {
1419
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1420
0
                                       "param %s is repeated", s);
1421
0
                        return 0;
1422
0
                    }
1423
0
                    r->decoded = (OSSL_PARAM *)p;
1424
0
                }
1425
0
                break;
1426
0
            case 'e':
1427
0
                if (ossl_likely(strcmp("ncoding", s + 1) == 0)) {
1428
                    /* OSSL_PKEY_PARAM_EC_ENCODING */
1429
0
                    if (ossl_unlikely(r->encoding != NULL)) {
1430
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1431
0
                                       "param %s is repeated", s);
1432
0
                        return 0;
1433
0
                    }
1434
0
                    r->encoding = (OSSL_PARAM *)p;
1435
0
                }
1436
0
                break;
1437
0
            case 'f':
1438
0
                if (ossl_likely(strcmp("ield-type", s + 1) == 0)) {
1439
                    /* OSSL_PKEY_PARAM_EC_FIELD_TYPE */
1440
0
                    if (ossl_unlikely(r->field_type != NULL)) {
1441
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1442
0
                                       "param %s is repeated", s);
1443
0
                        return 0;
1444
0
                    }
1445
0
                    r->field_type = (OSSL_PARAM *)p;
1446
0
                }
1447
0
                break;
1448
0
            case 'g':
1449
0
                switch(s[1]) {
1450
0
                default:
1451
0
                    break;
1452
0
                case 'e':
1453
0
                    if (ossl_likely(strcmp("nerator", s + 2) == 0)) {
1454
                        /* OSSL_PKEY_PARAM_EC_GENERATOR */
1455
0
                        if (ossl_unlikely(r->generator != NULL)) {
1456
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1457
0
                                           "param %s is repeated", s);
1458
0
                            return 0;
1459
0
                        }
1460
0
                        r->generator = (OSSL_PARAM *)p;
1461
0
                    }
1462
0
                    break;
1463
0
                case 'r':
1464
0
                    switch(s[2]) {
1465
0
                    default:
1466
0
                        break;
1467
0
                    case 'o':
1468
0
                        switch(s[3]) {
1469
0
                        default:
1470
0
                            break;
1471
0
                        case 'u':
1472
0
                            switch(s[4]) {
1473
0
                            default:
1474
0
                                break;
1475
0
                            case 'p':
1476
0
                                switch(s[5]) {
1477
0
                                default:
1478
0
                                    break;
1479
0
                                case '-':
1480
0
                                    if (ossl_likely(strcmp("check", s + 6) == 0)) {
1481
                                        /* OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE */
1482
0
                                        if (ossl_unlikely(r->group_check != NULL)) {
1483
0
                                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1484
0
                                                           "param %s is repeated", s);
1485
0
                                            return 0;
1486
0
                                        }
1487
0
                                        r->group_check = (OSSL_PARAM *)p;
1488
0
                                    }
1489
0
                                    break;
1490
0
                                case '\0':
1491
0
                                    if (ossl_unlikely(r->group_name != NULL)) {
1492
0
                                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1493
0
                                                       "param %s is repeated", s);
1494
0
                                        return 0;
1495
0
                                    }
1496
0
                                    r->group_name = (OSSL_PARAM *)p;
1497
0
                                }
1498
0
                            }
1499
0
                        }
1500
0
                    }
1501
0
                }
1502
0
                break;
1503
0
            case 'i':
1504
0
                if (ossl_likely(strcmp("nclude-public", s + 1) == 0)) {
1505
                    /* OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC */
1506
0
                    if (ossl_unlikely(r->include_public != NULL)) {
1507
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1508
0
                                       "param %s is repeated", s);
1509
0
                        return 0;
1510
0
                    }
1511
0
                    r->include_public = (OSSL_PARAM *)p;
1512
0
                }
1513
0
                break;
1514
0
            case 'o':
1515
0
                if (ossl_likely(strcmp("rder", s + 1) == 0)) {
1516
                    /* OSSL_PKEY_PARAM_EC_ORDER */
1517
0
                    if (ossl_unlikely(r->order != NULL)) {
1518
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1519
0
                                       "param %s is repeated", s);
1520
0
                        return 0;
1521
0
                    }
1522
0
                    r->order = (OSSL_PARAM *)p;
1523
0
                }
1524
0
                break;
1525
0
            case 'p':
1526
0
                switch(s[1]) {
1527
0
                default:
1528
0
                    break;
1529
0
                case 'o':
1530
0
                    if (ossl_likely(strcmp("int-format", s + 2) == 0)) {
1531
                        /* OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT */
1532
0
                        if (ossl_unlikely(r->pt_format != NULL)) {
1533
0
                            break;
1534
0
                        }
1535
0
                        r->pt_format = (OSSL_PARAM *)p;
1536
0
                    }
1537
0
                    break;
1538
0
                case '\0':
1539
0
                    if (ossl_unlikely(r->p != NULL)) {
1540
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1541
0
                                       "param %s is repeated", s);
1542
0
                        return 0;
1543
0
                    }
1544
0
                    r->p = (OSSL_PARAM *)p;
1545
0
                }
1546
0
                break;
1547
0
            case 's':
1548
0
                if (ossl_likely(strcmp("eed", s + 1) == 0)) {
1549
                    /* OSSL_PKEY_PARAM_EC_SEED */
1550
0
                    if (ossl_unlikely(r->seed != NULL)) {
1551
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1552
0
                                       "param %s is repeated", s);
1553
0
                        return 0;
1554
0
                    }
1555
0
                    r->seed = (OSSL_PARAM *)p;
1556
0
                }
1557
0
                break;
1558
0
            case 'u':
1559
0
                if (ossl_likely(strcmp("se-cofactor-flag", s + 1) == 0)) {
1560
                    /* OSSL_PKEY_PARAM_USE_COFACTOR_ECDH */
1561
0
                    if (ossl_unlikely(r->use_cofactor != NULL)) {
1562
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1563
0
                                       "param %s is repeated", s);
1564
0
                        return 0;
1565
0
                    }
1566
0
                    r->use_cofactor = (OSSL_PARAM *)p;
1567
0
                }
1568
0
            }
1569
0
    return 1;
1570
0
}
Unexecuted instantiation: ec_lib.c:ec_imexport_types_12_decoder
Unexecuted instantiation: ec_kmgmt.c:ec_imexport_types_12_decoder
Unexecuted instantiation: ec_ameth.c:ec_imexport_types_12_decoder
Unexecuted instantiation: ec_backend.c:ec_imexport_types_12_decoder
1571
#endif
1572
/* End of machine generated */
1573
#define ec_imexport_types_13_st ec_params_st
1574
/* Machine generated */
1575
#ifndef ec_imexport_types_13_list
1576
static ossl_unused const OSSL_PARAM ec_imexport_types_13_list[] = {
1577
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_PRIV_KEY, NULL, 0),
1578
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_GROUP_NAME, NULL, 0),
1579
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_ENCODING, NULL, 0),
1580
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT, NULL, 0),
1581
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_FIELD_TYPE, NULL, 0),
1582
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_P, NULL, 0),
1583
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_A, NULL, 0),
1584
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_B, NULL, 0),
1585
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_EC_GENERATOR, NULL, 0),
1586
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_ORDER, NULL, 0),
1587
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_COFACTOR, NULL, 0),
1588
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_EC_SEED, NULL, 0),
1589
    OSSL_PARAM_int(OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS, NULL),
1590
    OSSL_PARAM_int(OSSL_PKEY_PARAM_USE_COFACTOR_ECDH, NULL),
1591
    OSSL_PARAM_int(OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC, NULL),
1592
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE, NULL, 0),
1593
    OSSL_PARAM_END
1594
};
1595
#endif
1596
1597
#ifndef ec_imexport_types_13_st
1598
struct ec_imexport_types_13_st {
1599
    OSSL_PARAM *a;
1600
    OSSL_PARAM *b;
1601
    OSSL_PARAM *cofactor;
1602
    OSSL_PARAM *decoded;
1603
    OSSL_PARAM *encoding;
1604
    OSSL_PARAM *field_type;
1605
    OSSL_PARAM *generator;
1606
    OSSL_PARAM *group_check;
1607
    OSSL_PARAM *group_name;
1608
    OSSL_PARAM *include_public;
1609
    OSSL_PARAM *order;
1610
    OSSL_PARAM *p;
1611
    OSSL_PARAM *priv;
1612
    OSSL_PARAM *pt_format;
1613
    OSSL_PARAM *seed;
1614
    OSSL_PARAM *use_cofactor;
1615
};
1616
#endif
1617
1618
#ifndef ec_imexport_types_13_decoder
1619
static ossl_unused int ec_imexport_types_13_decoder
1620
    (const OSSL_PARAM *p, struct ec_imexport_types_13_st *r)
1621
0
{
1622
0
    const char *s;
1623
1624
0
    memset(r, 0, sizeof(*r));
1625
0
    if (p != NULL)
1626
0
        for (; (s = p->key) != NULL; p++)
1627
0
            switch(s[0]) {
1628
0
            default:
1629
0
                break;
1630
0
            case 'a':
1631
0
                switch(s[1]) {
1632
0
                default:
1633
0
                    break;
1634
0
                case '\0':
1635
0
                    if (ossl_unlikely(r->a != NULL)) {
1636
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1637
0
                                       "param %s is repeated", s);
1638
0
                        return 0;
1639
0
                    }
1640
0
                    r->a = (OSSL_PARAM *)p;
1641
0
                }
1642
0
                break;
1643
0
            case 'b':
1644
0
                switch(s[1]) {
1645
0
                default:
1646
0
                    break;
1647
0
                case '\0':
1648
0
                    if (ossl_unlikely(r->b != NULL)) {
1649
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1650
0
                                       "param %s is repeated", s);
1651
0
                        return 0;
1652
0
                    }
1653
0
                    r->b = (OSSL_PARAM *)p;
1654
0
                }
1655
0
                break;
1656
0
            case 'c':
1657
0
                if (ossl_likely(strcmp("ofactor", s + 1) == 0)) {
1658
                    /* OSSL_PKEY_PARAM_EC_COFACTOR */
1659
0
                    if (ossl_unlikely(r->cofactor != NULL)) {
1660
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1661
0
                                       "param %s is repeated", s);
1662
0
                        return 0;
1663
0
                    }
1664
0
                    r->cofactor = (OSSL_PARAM *)p;
1665
0
                }
1666
0
                break;
1667
0
            case 'd':
1668
0
                if (ossl_likely(strcmp("ecoded-from-explicit", s + 1) == 0)) {
1669
                    /* OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS */
1670
0
                    if (ossl_unlikely(r->decoded != NULL)) {
1671
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1672
0
                                       "param %s is repeated", s);
1673
0
                        return 0;
1674
0
                    }
1675
0
                    r->decoded = (OSSL_PARAM *)p;
1676
0
                }
1677
0
                break;
1678
0
            case 'e':
1679
0
                if (ossl_likely(strcmp("ncoding", s + 1) == 0)) {
1680
                    /* OSSL_PKEY_PARAM_EC_ENCODING */
1681
0
                    if (ossl_unlikely(r->encoding != NULL)) {
1682
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1683
0
                                       "param %s is repeated", s);
1684
0
                        return 0;
1685
0
                    }
1686
0
                    r->encoding = (OSSL_PARAM *)p;
1687
0
                }
1688
0
                break;
1689
0
            case 'f':
1690
0
                if (ossl_likely(strcmp("ield-type", s + 1) == 0)) {
1691
                    /* OSSL_PKEY_PARAM_EC_FIELD_TYPE */
1692
0
                    if (ossl_unlikely(r->field_type != NULL)) {
1693
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1694
0
                                       "param %s is repeated", s);
1695
0
                        return 0;
1696
0
                    }
1697
0
                    r->field_type = (OSSL_PARAM *)p;
1698
0
                }
1699
0
                break;
1700
0
            case 'g':
1701
0
                switch(s[1]) {
1702
0
                default:
1703
0
                    break;
1704
0
                case 'e':
1705
0
                    if (ossl_likely(strcmp("nerator", s + 2) == 0)) {
1706
                        /* OSSL_PKEY_PARAM_EC_GENERATOR */
1707
0
                        if (ossl_unlikely(r->generator != NULL)) {
1708
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1709
0
                                           "param %s is repeated", s);
1710
0
                            return 0;
1711
0
                        }
1712
0
                        r->generator = (OSSL_PARAM *)p;
1713
0
                    }
1714
0
                    break;
1715
0
                case 'r':
1716
0
                    switch(s[2]) {
1717
0
                    default:
1718
0
                        break;
1719
0
                    case 'o':
1720
0
                        switch(s[3]) {
1721
0
                        default:
1722
0
                            break;
1723
0
                        case 'u':
1724
0
                            switch(s[4]) {
1725
0
                            default:
1726
0
                                break;
1727
0
                            case 'p':
1728
0
                                switch(s[5]) {
1729
0
                                default:
1730
0
                                    break;
1731
0
                                case '-':
1732
0
                                    if (ossl_likely(strcmp("check", s + 6) == 0)) {
1733
                                        /* OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE */
1734
0
                                        if (ossl_unlikely(r->group_check != NULL)) {
1735
0
                                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1736
0
                                                           "param %s is repeated", s);
1737
0
                                            return 0;
1738
0
                                        }
1739
0
                                        r->group_check = (OSSL_PARAM *)p;
1740
0
                                    }
1741
0
                                    break;
1742
0
                                case '\0':
1743
0
                                    if (ossl_unlikely(r->group_name != NULL)) {
1744
0
                                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1745
0
                                                       "param %s is repeated", s);
1746
0
                                        return 0;
1747
0
                                    }
1748
0
                                    r->group_name = (OSSL_PARAM *)p;
1749
0
                                }
1750
0
                            }
1751
0
                        }
1752
0
                    }
1753
0
                }
1754
0
                break;
1755
0
            case 'i':
1756
0
                if (ossl_likely(strcmp("nclude-public", s + 1) == 0)) {
1757
                    /* OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC */
1758
0
                    if (ossl_unlikely(r->include_public != NULL)) {
1759
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1760
0
                                       "param %s is repeated", s);
1761
0
                        return 0;
1762
0
                    }
1763
0
                    r->include_public = (OSSL_PARAM *)p;
1764
0
                }
1765
0
                break;
1766
0
            case 'o':
1767
0
                if (ossl_likely(strcmp("rder", s + 1) == 0)) {
1768
                    /* OSSL_PKEY_PARAM_EC_ORDER */
1769
0
                    if (ossl_unlikely(r->order != NULL)) {
1770
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1771
0
                                       "param %s is repeated", s);
1772
0
                        return 0;
1773
0
                    }
1774
0
                    r->order = (OSSL_PARAM *)p;
1775
0
                }
1776
0
                break;
1777
0
            case 'p':
1778
0
                switch(s[1]) {
1779
0
                default:
1780
0
                    break;
1781
0
                case 'o':
1782
0
                    if (ossl_likely(strcmp("int-format", s + 2) == 0)) {
1783
                        /* OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT */
1784
0
                        if (ossl_unlikely(r->pt_format != NULL)) {
1785
0
                            break;
1786
0
                        }
1787
0
                        r->pt_format = (OSSL_PARAM *)p;
1788
0
                    }
1789
0
                    break;
1790
0
                case 'r':
1791
0
                    if (ossl_likely(strcmp("iv", s + 2) == 0)) {
1792
                        /* OSSL_PKEY_PARAM_PRIV_KEY */
1793
0
                        if (ossl_unlikely(r->priv != NULL)) {
1794
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1795
0
                                           "param %s is repeated", s);
1796
0
                            return 0;
1797
0
                        }
1798
0
                        r->priv = (OSSL_PARAM *)p;
1799
0
                    }
1800
0
                    break;
1801
0
                case '\0':
1802
0
                    if (ossl_unlikely(r->p != NULL)) {
1803
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1804
0
                                       "param %s is repeated", s);
1805
0
                        return 0;
1806
0
                    }
1807
0
                    r->p = (OSSL_PARAM *)p;
1808
0
                }
1809
0
                break;
1810
0
            case 's':
1811
0
                if (ossl_likely(strcmp("eed", s + 1) == 0)) {
1812
                    /* OSSL_PKEY_PARAM_EC_SEED */
1813
0
                    if (ossl_unlikely(r->seed != NULL)) {
1814
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1815
0
                                       "param %s is repeated", s);
1816
0
                        return 0;
1817
0
                    }
1818
0
                    r->seed = (OSSL_PARAM *)p;
1819
0
                }
1820
0
                break;
1821
0
            case 'u':
1822
0
                if (ossl_likely(strcmp("se-cofactor-flag", s + 1) == 0)) {
1823
                    /* OSSL_PKEY_PARAM_USE_COFACTOR_ECDH */
1824
0
                    if (ossl_unlikely(r->use_cofactor != NULL)) {
1825
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1826
0
                                       "param %s is repeated", s);
1827
0
                        return 0;
1828
0
                    }
1829
0
                    r->use_cofactor = (OSSL_PARAM *)p;
1830
0
                }
1831
0
            }
1832
0
    return 1;
1833
0
}
Unexecuted instantiation: ec_lib.c:ec_imexport_types_13_decoder
Unexecuted instantiation: ec_kmgmt.c:ec_imexport_types_13_decoder
Unexecuted instantiation: ec_ameth.c:ec_imexport_types_13_decoder
Unexecuted instantiation: ec_backend.c:ec_imexport_types_13_decoder
1834
#endif
1835
/* End of machine generated */
1836
#define ec_imexport_types_14_st ec_params_st
1837
/* Machine generated */
1838
#ifndef ec_imexport_types_14_list
1839
static ossl_unused const OSSL_PARAM ec_imexport_types_14_list[] = {
1840
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_PUB_KEY, NULL, 0),
1841
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_GROUP_NAME, NULL, 0),
1842
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_ENCODING, NULL, 0),
1843
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT, NULL, 0),
1844
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_FIELD_TYPE, NULL, 0),
1845
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_P, NULL, 0),
1846
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_A, NULL, 0),
1847
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_B, NULL, 0),
1848
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_EC_GENERATOR, NULL, 0),
1849
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_ORDER, NULL, 0),
1850
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_COFACTOR, NULL, 0),
1851
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_EC_SEED, NULL, 0),
1852
    OSSL_PARAM_int(OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS, NULL),
1853
    OSSL_PARAM_int(OSSL_PKEY_PARAM_USE_COFACTOR_ECDH, NULL),
1854
    OSSL_PARAM_int(OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC, NULL),
1855
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE, NULL, 0),
1856
    OSSL_PARAM_END
1857
};
1858
#endif
1859
1860
#ifndef ec_imexport_types_14_st
1861
struct ec_imexport_types_14_st {
1862
    OSSL_PARAM *a;
1863
    OSSL_PARAM *b;
1864
    OSSL_PARAM *cofactor;
1865
    OSSL_PARAM *decoded;
1866
    OSSL_PARAM *encoding;
1867
    OSSL_PARAM *field_type;
1868
    OSSL_PARAM *generator;
1869
    OSSL_PARAM *group_check;
1870
    OSSL_PARAM *group_name;
1871
    OSSL_PARAM *include_public;
1872
    OSSL_PARAM *order;
1873
    OSSL_PARAM *p;
1874
    OSSL_PARAM *pt_format;
1875
    OSSL_PARAM *pub;
1876
    OSSL_PARAM *seed;
1877
    OSSL_PARAM *use_cofactor;
1878
};
1879
#endif
1880
1881
#ifndef ec_imexport_types_14_decoder
1882
static ossl_unused int ec_imexport_types_14_decoder
1883
    (const OSSL_PARAM *p, struct ec_imexport_types_14_st *r)
1884
0
{
1885
0
    const char *s;
1886
1887
0
    memset(r, 0, sizeof(*r));
1888
0
    if (p != NULL)
1889
0
        for (; (s = p->key) != NULL; p++)
1890
0
            switch(s[0]) {
1891
0
            default:
1892
0
                break;
1893
0
            case 'a':
1894
0
                switch(s[1]) {
1895
0
                default:
1896
0
                    break;
1897
0
                case '\0':
1898
0
                    if (ossl_unlikely(r->a != NULL)) {
1899
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1900
0
                                       "param %s is repeated", s);
1901
0
                        return 0;
1902
0
                    }
1903
0
                    r->a = (OSSL_PARAM *)p;
1904
0
                }
1905
0
                break;
1906
0
            case 'b':
1907
0
                switch(s[1]) {
1908
0
                default:
1909
0
                    break;
1910
0
                case '\0':
1911
0
                    if (ossl_unlikely(r->b != NULL)) {
1912
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1913
0
                                       "param %s is repeated", s);
1914
0
                        return 0;
1915
0
                    }
1916
0
                    r->b = (OSSL_PARAM *)p;
1917
0
                }
1918
0
                break;
1919
0
            case 'c':
1920
0
                if (ossl_likely(strcmp("ofactor", s + 1) == 0)) {
1921
                    /* OSSL_PKEY_PARAM_EC_COFACTOR */
1922
0
                    if (ossl_unlikely(r->cofactor != NULL)) {
1923
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1924
0
                                       "param %s is repeated", s);
1925
0
                        return 0;
1926
0
                    }
1927
0
                    r->cofactor = (OSSL_PARAM *)p;
1928
0
                }
1929
0
                break;
1930
0
            case 'd':
1931
0
                if (ossl_likely(strcmp("ecoded-from-explicit", s + 1) == 0)) {
1932
                    /* OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS */
1933
0
                    if (ossl_unlikely(r->decoded != NULL)) {
1934
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1935
0
                                       "param %s is repeated", s);
1936
0
                        return 0;
1937
0
                    }
1938
0
                    r->decoded = (OSSL_PARAM *)p;
1939
0
                }
1940
0
                break;
1941
0
            case 'e':
1942
0
                if (ossl_likely(strcmp("ncoding", s + 1) == 0)) {
1943
                    /* OSSL_PKEY_PARAM_EC_ENCODING */
1944
0
                    if (ossl_unlikely(r->encoding != NULL)) {
1945
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1946
0
                                       "param %s is repeated", s);
1947
0
                        return 0;
1948
0
                    }
1949
0
                    r->encoding = (OSSL_PARAM *)p;
1950
0
                }
1951
0
                break;
1952
0
            case 'f':
1953
0
                if (ossl_likely(strcmp("ield-type", s + 1) == 0)) {
1954
                    /* OSSL_PKEY_PARAM_EC_FIELD_TYPE */
1955
0
                    if (ossl_unlikely(r->field_type != NULL)) {
1956
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1957
0
                                       "param %s is repeated", s);
1958
0
                        return 0;
1959
0
                    }
1960
0
                    r->field_type = (OSSL_PARAM *)p;
1961
0
                }
1962
0
                break;
1963
0
            case 'g':
1964
0
                switch(s[1]) {
1965
0
                default:
1966
0
                    break;
1967
0
                case 'e':
1968
0
                    if (ossl_likely(strcmp("nerator", s + 2) == 0)) {
1969
                        /* OSSL_PKEY_PARAM_EC_GENERATOR */
1970
0
                        if (ossl_unlikely(r->generator != NULL)) {
1971
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1972
0
                                           "param %s is repeated", s);
1973
0
                            return 0;
1974
0
                        }
1975
0
                        r->generator = (OSSL_PARAM *)p;
1976
0
                    }
1977
0
                    break;
1978
0
                case 'r':
1979
0
                    switch(s[2]) {
1980
0
                    default:
1981
0
                        break;
1982
0
                    case 'o':
1983
0
                        switch(s[3]) {
1984
0
                        default:
1985
0
                            break;
1986
0
                        case 'u':
1987
0
                            switch(s[4]) {
1988
0
                            default:
1989
0
                                break;
1990
0
                            case 'p':
1991
0
                                switch(s[5]) {
1992
0
                                default:
1993
0
                                    break;
1994
0
                                case '-':
1995
0
                                    if (ossl_likely(strcmp("check", s + 6) == 0)) {
1996
                                        /* OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE */
1997
0
                                        if (ossl_unlikely(r->group_check != NULL)) {
1998
0
                                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
1999
0
                                                           "param %s is repeated", s);
2000
0
                                            return 0;
2001
0
                                        }
2002
0
                                        r->group_check = (OSSL_PARAM *)p;
2003
0
                                    }
2004
0
                                    break;
2005
0
                                case '\0':
2006
0
                                    if (ossl_unlikely(r->group_name != NULL)) {
2007
0
                                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2008
0
                                                       "param %s is repeated", s);
2009
0
                                        return 0;
2010
0
                                    }
2011
0
                                    r->group_name = (OSSL_PARAM *)p;
2012
0
                                }
2013
0
                            }
2014
0
                        }
2015
0
                    }
2016
0
                }
2017
0
                break;
2018
0
            case 'i':
2019
0
                if (ossl_likely(strcmp("nclude-public", s + 1) == 0)) {
2020
                    /* OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC */
2021
0
                    if (ossl_unlikely(r->include_public != NULL)) {
2022
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2023
0
                                       "param %s is repeated", s);
2024
0
                        return 0;
2025
0
                    }
2026
0
                    r->include_public = (OSSL_PARAM *)p;
2027
0
                }
2028
0
                break;
2029
0
            case 'o':
2030
0
                if (ossl_likely(strcmp("rder", s + 1) == 0)) {
2031
                    /* OSSL_PKEY_PARAM_EC_ORDER */
2032
0
                    if (ossl_unlikely(r->order != NULL)) {
2033
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2034
0
                                       "param %s is repeated", s);
2035
0
                        return 0;
2036
0
                    }
2037
0
                    r->order = (OSSL_PARAM *)p;
2038
0
                }
2039
0
                break;
2040
0
            case 'p':
2041
0
                switch(s[1]) {
2042
0
                default:
2043
0
                    break;
2044
0
                case 'o':
2045
0
                    if (ossl_likely(strcmp("int-format", s + 2) == 0)) {
2046
                        /* OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT */
2047
0
                        if (ossl_unlikely(r->pt_format != NULL)) {
2048
0
                            break;
2049
0
                        }
2050
0
                        r->pt_format = (OSSL_PARAM *)p;
2051
0
                    }
2052
0
                    break;
2053
0
                case 'u':
2054
0
                    if (ossl_likely(strcmp("b", s + 2) == 0)) {
2055
                        /* OSSL_PKEY_PARAM_PUB_KEY */
2056
0
                        if (ossl_unlikely(r->pub != NULL)) {
2057
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2058
0
                                           "param %s is repeated", s);
2059
0
                            return 0;
2060
0
                        }
2061
0
                        r->pub = (OSSL_PARAM *)p;
2062
0
                    }
2063
0
                    break;
2064
0
                case '\0':
2065
0
                    if (ossl_unlikely(r->p != NULL)) {
2066
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2067
0
                                       "param %s is repeated", s);
2068
0
                        return 0;
2069
0
                    }
2070
0
                    r->p = (OSSL_PARAM *)p;
2071
0
                }
2072
0
                break;
2073
0
            case 's':
2074
0
                if (ossl_likely(strcmp("eed", s + 1) == 0)) {
2075
                    /* OSSL_PKEY_PARAM_EC_SEED */
2076
0
                    if (ossl_unlikely(r->seed != NULL)) {
2077
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2078
0
                                       "param %s is repeated", s);
2079
0
                        return 0;
2080
0
                    }
2081
0
                    r->seed = (OSSL_PARAM *)p;
2082
0
                }
2083
0
                break;
2084
0
            case 'u':
2085
0
                if (ossl_likely(strcmp("se-cofactor-flag", s + 1) == 0)) {
2086
                    /* OSSL_PKEY_PARAM_USE_COFACTOR_ECDH */
2087
0
                    if (ossl_unlikely(r->use_cofactor != NULL)) {
2088
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2089
0
                                       "param %s is repeated", s);
2090
0
                        return 0;
2091
0
                    }
2092
0
                    r->use_cofactor = (OSSL_PARAM *)p;
2093
0
                }
2094
0
            }
2095
0
    return 1;
2096
0
}
Unexecuted instantiation: ec_lib.c:ec_imexport_types_14_decoder
Unexecuted instantiation: ec_kmgmt.c:ec_imexport_types_14_decoder
Unexecuted instantiation: ec_ameth.c:ec_imexport_types_14_decoder
Unexecuted instantiation: ec_backend.c:ec_imexport_types_14_decoder
2097
#endif
2098
/* End of machine generated */
2099
#define ec_imexport_types_15_st ec_params_st
2100
/* Machine generated */
2101
#ifndef ec_imexport_types_15_list
2102
static ossl_unused const OSSL_PARAM ec_imexport_types_15_list[] = {
2103
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_PRIV_KEY, NULL, 0),
2104
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_PUB_KEY, NULL, 0),
2105
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_GROUP_NAME, NULL, 0),
2106
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_ENCODING, NULL, 0),
2107
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT, NULL, 0),
2108
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_FIELD_TYPE, NULL, 0),
2109
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_P, NULL, 0),
2110
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_A, NULL, 0),
2111
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_B, NULL, 0),
2112
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_EC_GENERATOR, NULL, 0),
2113
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_ORDER, NULL, 0),
2114
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_COFACTOR, NULL, 0),
2115
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_EC_SEED, NULL, 0),
2116
    OSSL_PARAM_int(OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS, NULL),
2117
    OSSL_PARAM_int(OSSL_PKEY_PARAM_USE_COFACTOR_ECDH, NULL),
2118
    OSSL_PARAM_int(OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC, NULL),
2119
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE, NULL, 0),
2120
    OSSL_PARAM_END
2121
};
2122
#endif
2123
2124
#ifndef ec_imexport_types_15_st
2125
struct ec_imexport_types_15_st {
2126
    OSSL_PARAM *a;
2127
    OSSL_PARAM *b;
2128
    OSSL_PARAM *cofactor;
2129
    OSSL_PARAM *decoded;
2130
    OSSL_PARAM *encoding;
2131
    OSSL_PARAM *field_type;
2132
    OSSL_PARAM *generator;
2133
    OSSL_PARAM *group_check;
2134
    OSSL_PARAM *group_name;
2135
    OSSL_PARAM *include_public;
2136
    OSSL_PARAM *order;
2137
    OSSL_PARAM *p;
2138
    OSSL_PARAM *priv;
2139
    OSSL_PARAM *pt_format;
2140
    OSSL_PARAM *pub;
2141
    OSSL_PARAM *seed;
2142
    OSSL_PARAM *use_cofactor;
2143
};
2144
#endif
2145
2146
#ifndef ec_imexport_types_15_decoder
2147
static ossl_unused int ec_imexport_types_15_decoder
2148
    (const OSSL_PARAM *p, struct ec_imexport_types_15_st *r)
2149
0
{
2150
0
    const char *s;
2151
2152
0
    memset(r, 0, sizeof(*r));
2153
0
    if (p != NULL)
2154
0
        for (; (s = p->key) != NULL; p++)
2155
0
            switch(s[0]) {
2156
0
            default:
2157
0
                break;
2158
0
            case 'a':
2159
0
                switch(s[1]) {
2160
0
                default:
2161
0
                    break;
2162
0
                case '\0':
2163
0
                    if (ossl_unlikely(r->a != NULL)) {
2164
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2165
0
                                       "param %s is repeated", s);
2166
0
                        return 0;
2167
0
                    }
2168
0
                    r->a = (OSSL_PARAM *)p;
2169
0
                }
2170
0
                break;
2171
0
            case 'b':
2172
0
                switch(s[1]) {
2173
0
                default:
2174
0
                    break;
2175
0
                case '\0':
2176
0
                    if (ossl_unlikely(r->b != NULL)) {
2177
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2178
0
                                       "param %s is repeated", s);
2179
0
                        return 0;
2180
0
                    }
2181
0
                    r->b = (OSSL_PARAM *)p;
2182
0
                }
2183
0
                break;
2184
0
            case 'c':
2185
0
                if (ossl_likely(strcmp("ofactor", s + 1) == 0)) {
2186
                    /* OSSL_PKEY_PARAM_EC_COFACTOR */
2187
0
                    if (ossl_unlikely(r->cofactor != NULL)) {
2188
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2189
0
                                       "param %s is repeated", s);
2190
0
                        return 0;
2191
0
                    }
2192
0
                    r->cofactor = (OSSL_PARAM *)p;
2193
0
                }
2194
0
                break;
2195
0
            case 'd':
2196
0
                if (ossl_likely(strcmp("ecoded-from-explicit", s + 1) == 0)) {
2197
                    /* OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS */
2198
0
                    if (ossl_unlikely(r->decoded != NULL)) {
2199
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2200
0
                                       "param %s is repeated", s);
2201
0
                        return 0;
2202
0
                    }
2203
0
                    r->decoded = (OSSL_PARAM *)p;
2204
0
                }
2205
0
                break;
2206
0
            case 'e':
2207
0
                if (ossl_likely(strcmp("ncoding", s + 1) == 0)) {
2208
                    /* OSSL_PKEY_PARAM_EC_ENCODING */
2209
0
                    if (ossl_unlikely(r->encoding != NULL)) {
2210
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2211
0
                                       "param %s is repeated", s);
2212
0
                        return 0;
2213
0
                    }
2214
0
                    r->encoding = (OSSL_PARAM *)p;
2215
0
                }
2216
0
                break;
2217
0
            case 'f':
2218
0
                if (ossl_likely(strcmp("ield-type", s + 1) == 0)) {
2219
                    /* OSSL_PKEY_PARAM_EC_FIELD_TYPE */
2220
0
                    if (ossl_unlikely(r->field_type != NULL)) {
2221
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2222
0
                                       "param %s is repeated", s);
2223
0
                        return 0;
2224
0
                    }
2225
0
                    r->field_type = (OSSL_PARAM *)p;
2226
0
                }
2227
0
                break;
2228
0
            case 'g':
2229
0
                switch(s[1]) {
2230
0
                default:
2231
0
                    break;
2232
0
                case 'e':
2233
0
                    if (ossl_likely(strcmp("nerator", s + 2) == 0)) {
2234
                        /* OSSL_PKEY_PARAM_EC_GENERATOR */
2235
0
                        if (ossl_unlikely(r->generator != NULL)) {
2236
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2237
0
                                           "param %s is repeated", s);
2238
0
                            return 0;
2239
0
                        }
2240
0
                        r->generator = (OSSL_PARAM *)p;
2241
0
                    }
2242
0
                    break;
2243
0
                case 'r':
2244
0
                    switch(s[2]) {
2245
0
                    default:
2246
0
                        break;
2247
0
                    case 'o':
2248
0
                        switch(s[3]) {
2249
0
                        default:
2250
0
                            break;
2251
0
                        case 'u':
2252
0
                            switch(s[4]) {
2253
0
                            default:
2254
0
                                break;
2255
0
                            case 'p':
2256
0
                                switch(s[5]) {
2257
0
                                default:
2258
0
                                    break;
2259
0
                                case '-':
2260
0
                                    if (ossl_likely(strcmp("check", s + 6) == 0)) {
2261
                                        /* OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE */
2262
0
                                        if (ossl_unlikely(r->group_check != NULL)) {
2263
0
                                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2264
0
                                                           "param %s is repeated", s);
2265
0
                                            return 0;
2266
0
                                        }
2267
0
                                        r->group_check = (OSSL_PARAM *)p;
2268
0
                                    }
2269
0
                                    break;
2270
0
                                case '\0':
2271
0
                                    if (ossl_unlikely(r->group_name != NULL)) {
2272
0
                                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2273
0
                                                       "param %s is repeated", s);
2274
0
                                        return 0;
2275
0
                                    }
2276
0
                                    r->group_name = (OSSL_PARAM *)p;
2277
0
                                }
2278
0
                            }
2279
0
                        }
2280
0
                    }
2281
0
                }
2282
0
                break;
2283
0
            case 'i':
2284
0
                if (ossl_likely(strcmp("nclude-public", s + 1) == 0)) {
2285
                    /* OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC */
2286
0
                    if (ossl_unlikely(r->include_public != NULL)) {
2287
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2288
0
                                       "param %s is repeated", s);
2289
0
                        return 0;
2290
0
                    }
2291
0
                    r->include_public = (OSSL_PARAM *)p;
2292
0
                }
2293
0
                break;
2294
0
            case 'o':
2295
0
                if (ossl_likely(strcmp("rder", s + 1) == 0)) {
2296
                    /* OSSL_PKEY_PARAM_EC_ORDER */
2297
0
                    if (ossl_unlikely(r->order != NULL)) {
2298
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2299
0
                                       "param %s is repeated", s);
2300
0
                        return 0;
2301
0
                    }
2302
0
                    r->order = (OSSL_PARAM *)p;
2303
0
                }
2304
0
                break;
2305
0
            case 'p':
2306
0
                switch(s[1]) {
2307
0
                default:
2308
0
                    break;
2309
0
                case 'o':
2310
0
                    if (ossl_likely(strcmp("int-format", s + 2) == 0)) {
2311
                        /* OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT */
2312
0
                        if (ossl_unlikely(r->pt_format != NULL)) {
2313
0
                            break;
2314
0
                        }
2315
0
                        r->pt_format = (OSSL_PARAM *)p;
2316
0
                    }
2317
0
                    break;
2318
0
                case 'r':
2319
0
                    if (ossl_likely(strcmp("iv", s + 2) == 0)) {
2320
                        /* OSSL_PKEY_PARAM_PRIV_KEY */
2321
0
                        if (ossl_unlikely(r->priv != NULL)) {
2322
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2323
0
                                           "param %s is repeated", s);
2324
0
                            return 0;
2325
0
                        }
2326
0
                        r->priv = (OSSL_PARAM *)p;
2327
0
                    }
2328
0
                    break;
2329
0
                case 'u':
2330
0
                    if (ossl_likely(strcmp("b", s + 2) == 0)) {
2331
                        /* OSSL_PKEY_PARAM_PUB_KEY */
2332
0
                        if (ossl_unlikely(r->pub != NULL)) {
2333
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2334
0
                                           "param %s is repeated", s);
2335
0
                            return 0;
2336
0
                        }
2337
0
                        r->pub = (OSSL_PARAM *)p;
2338
0
                    }
2339
0
                    break;
2340
0
                case '\0':
2341
0
                    if (ossl_unlikely(r->p != NULL)) {
2342
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2343
0
                                       "param %s is repeated", s);
2344
0
                        return 0;
2345
0
                    }
2346
0
                    r->p = (OSSL_PARAM *)p;
2347
0
                }
2348
0
                break;
2349
0
            case 's':
2350
0
                if (ossl_likely(strcmp("eed", s + 1) == 0)) {
2351
                    /* OSSL_PKEY_PARAM_EC_SEED */
2352
0
                    if (ossl_unlikely(r->seed != NULL)) {
2353
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2354
0
                                       "param %s is repeated", s);
2355
0
                        return 0;
2356
0
                    }
2357
0
                    r->seed = (OSSL_PARAM *)p;
2358
0
                }
2359
0
                break;
2360
0
            case 'u':
2361
0
                if (ossl_likely(strcmp("se-cofactor-flag", s + 1) == 0)) {
2362
                    /* OSSL_PKEY_PARAM_USE_COFACTOR_ECDH */
2363
0
                    if (ossl_unlikely(r->use_cofactor != NULL)) {
2364
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2365
0
                                       "param %s is repeated", s);
2366
0
                        return 0;
2367
0
                    }
2368
0
                    r->use_cofactor = (OSSL_PARAM *)p;
2369
0
                }
2370
0
            }
2371
0
    return 1;
2372
0
}
Unexecuted instantiation: ec_lib.c:ec_imexport_types_15_decoder
Unexecuted instantiation: ec_kmgmt.c:ec_imexport_types_15_decoder
Unexecuted instantiation: ec_ameth.c:ec_imexport_types_15_decoder
Unexecuted instantiation: ec_backend.c:ec_imexport_types_15_decoder
2373
#endif
2374
/* End of machine generated */
2375
2376
2377
/* Public EC compatibility functions retain their existing signatures. */
2378
#define ec_group_fromdata_st ec_params_st
2379
/* Machine generated */
2380
#ifndef ec_group_fromdata_list
2381
static ossl_unused const OSSL_PARAM ec_group_fromdata_list[] = {
2382
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_GROUP_NAME, NULL, 0),
2383
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_ENCODING, NULL, 0),
2384
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT, NULL, 0),
2385
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_FIELD_TYPE, NULL, 0),
2386
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_P, NULL, 0),
2387
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_A, NULL, 0),
2388
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_B, NULL, 0),
2389
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_EC_GENERATOR, NULL, 0),
2390
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_ORDER, NULL, 0),
2391
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_COFACTOR, NULL, 0),
2392
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_EC_SEED, NULL, 0),
2393
    OSSL_PARAM_int(OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS, NULL),
2394
    OSSL_PARAM_END
2395
};
2396
#endif
2397
2398
#ifndef ec_group_fromdata_st
2399
struct ec_group_fromdata_st {
2400
    OSSL_PARAM *a;
2401
    OSSL_PARAM *b;
2402
    OSSL_PARAM *cofactor;
2403
    OSSL_PARAM *decoded;
2404
    OSSL_PARAM *encoding;
2405
    OSSL_PARAM *field_type;
2406
    OSSL_PARAM *generator;
2407
    OSSL_PARAM *group_name;
2408
    OSSL_PARAM *order;
2409
    OSSL_PARAM *p;
2410
    OSSL_PARAM *pt_format;
2411
    OSSL_PARAM *seed;
2412
};
2413
#endif
2414
2415
#ifndef ec_group_fromdata_decoder
2416
static ossl_unused int ec_group_fromdata_decoder
2417
    (const OSSL_PARAM *p, struct ec_group_fromdata_st *r)
2418
2.42k
{
2419
2.42k
    const char *s;
2420
2421
2.42k
    memset(r, 0, sizeof(*r));
2422
2.42k
    if (p != NULL)
2423
4.85k
        for (; (s = p->key) != NULL; p++)
2424
2.42k
            switch(s[0]) {
2425
0
            default:
2426
0
                break;
2427
0
            case 'a':
2428
0
                switch(s[1]) {
2429
0
                default:
2430
0
                    break;
2431
0
                case '\0':
2432
0
                    if (ossl_unlikely(r->a != NULL)) {
2433
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2434
0
                                       "param %s is repeated", s);
2435
0
                        return 0;
2436
0
                    }
2437
0
                    r->a = (OSSL_PARAM *)p;
2438
0
                }
2439
0
                break;
2440
0
            case 'b':
2441
0
                switch(s[1]) {
2442
0
                default:
2443
0
                    break;
2444
0
                case '\0':
2445
0
                    if (ossl_unlikely(r->b != NULL)) {
2446
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2447
0
                                       "param %s is repeated", s);
2448
0
                        return 0;
2449
0
                    }
2450
0
                    r->b = (OSSL_PARAM *)p;
2451
0
                }
2452
0
                break;
2453
0
            case 'c':
2454
0
                if (ossl_likely(strcmp("ofactor", s + 1) == 0)) {
2455
                    /* OSSL_PKEY_PARAM_EC_COFACTOR */
2456
0
                    if (ossl_unlikely(r->cofactor != NULL)) {
2457
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2458
0
                                       "param %s is repeated", s);
2459
0
                        return 0;
2460
0
                    }
2461
0
                    r->cofactor = (OSSL_PARAM *)p;
2462
0
                }
2463
0
                break;
2464
0
            case 'd':
2465
0
                if (ossl_likely(strcmp("ecoded-from-explicit", s + 1) == 0)) {
2466
                    /* OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS */
2467
0
                    if (ossl_unlikely(r->decoded != NULL)) {
2468
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2469
0
                                       "param %s is repeated", s);
2470
0
                        return 0;
2471
0
                    }
2472
0
                    r->decoded = (OSSL_PARAM *)p;
2473
0
                }
2474
0
                break;
2475
0
            case 'e':
2476
0
                if (ossl_likely(strcmp("ncoding", s + 1) == 0)) {
2477
                    /* OSSL_PKEY_PARAM_EC_ENCODING */
2478
0
                    if (ossl_unlikely(r->encoding != NULL)) {
2479
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2480
0
                                       "param %s is repeated", s);
2481
0
                        return 0;
2482
0
                    }
2483
0
                    r->encoding = (OSSL_PARAM *)p;
2484
0
                }
2485
0
                break;
2486
0
            case 'f':
2487
0
                if (ossl_likely(strcmp("ield-type", s + 1) == 0)) {
2488
                    /* OSSL_PKEY_PARAM_EC_FIELD_TYPE */
2489
0
                    if (ossl_unlikely(r->field_type != NULL)) {
2490
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2491
0
                                       "param %s is repeated", s);
2492
0
                        return 0;
2493
0
                    }
2494
0
                    r->field_type = (OSSL_PARAM *)p;
2495
0
                }
2496
0
                break;
2497
2.42k
            case 'g':
2498
2.42k
                switch(s[1]) {
2499
0
                default:
2500
0
                    break;
2501
0
                case 'e':
2502
0
                    if (ossl_likely(strcmp("nerator", s + 2) == 0)) {
2503
                        /* OSSL_PKEY_PARAM_EC_GENERATOR */
2504
0
                        if (ossl_unlikely(r->generator != NULL)) {
2505
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2506
0
                                           "param %s is repeated", s);
2507
0
                            return 0;
2508
0
                        }
2509
0
                        r->generator = (OSSL_PARAM *)p;
2510
0
                    }
2511
0
                    break;
2512
2.42k
                case 'r':
2513
2.42k
                    if (ossl_likely(strcmp("oup", s + 2) == 0)) {
2514
                        /* OSSL_PKEY_PARAM_GROUP_NAME */
2515
2.42k
                        if (ossl_unlikely(r->group_name != NULL)) {
2516
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2517
0
                                           "param %s is repeated", s);
2518
0
                            return 0;
2519
0
                        }
2520
2.42k
                        r->group_name = (OSSL_PARAM *)p;
2521
2.42k
                    }
2522
2.42k
                }
2523
2.42k
                break;
2524
2.42k
            case 'o':
2525
0
                if (ossl_likely(strcmp("rder", s + 1) == 0)) {
2526
                    /* OSSL_PKEY_PARAM_EC_ORDER */
2527
0
                    if (ossl_unlikely(r->order != NULL)) {
2528
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2529
0
                                       "param %s is repeated", s);
2530
0
                        return 0;
2531
0
                    }
2532
0
                    r->order = (OSSL_PARAM *)p;
2533
0
                }
2534
0
                break;
2535
0
            case 'p':
2536
0
                switch(s[1]) {
2537
0
                default:
2538
0
                    break;
2539
0
                case 'o':
2540
0
                    if (ossl_likely(strcmp("int-format", s + 2) == 0)) {
2541
                        /* OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT */
2542
0
                        if (ossl_unlikely(r->pt_format != NULL)) {
2543
0
                            break;
2544
0
                        }
2545
0
                        r->pt_format = (OSSL_PARAM *)p;
2546
0
                    }
2547
0
                    break;
2548
0
                case '\0':
2549
0
                    if (ossl_unlikely(r->p != NULL)) {
2550
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2551
0
                                       "param %s is repeated", s);
2552
0
                        return 0;
2553
0
                    }
2554
0
                    r->p = (OSSL_PARAM *)p;
2555
0
                }
2556
0
                break;
2557
0
            case 's':
2558
0
                if (ossl_likely(strcmp("eed", s + 1) == 0)) {
2559
                    /* OSSL_PKEY_PARAM_EC_SEED */
2560
0
                    if (ossl_unlikely(r->seed != NULL)) {
2561
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2562
0
                                       "param %s is repeated", s);
2563
0
                        return 0;
2564
0
                    }
2565
0
                    r->seed = (OSSL_PARAM *)p;
2566
0
                }
2567
2.42k
            }
2568
2.42k
    return 1;
2569
2.42k
}
ec_lib.c:ec_group_fromdata_decoder
Line
Count
Source
2418
2.42k
{
2419
2.42k
    const char *s;
2420
2421
2.42k
    memset(r, 0, sizeof(*r));
2422
2.42k
    if (p != NULL)
2423
4.85k
        for (; (s = p->key) != NULL; p++)
2424
2.42k
            switch(s[0]) {
2425
0
            default:
2426
0
                break;
2427
0
            case 'a':
2428
0
                switch(s[1]) {
2429
0
                default:
2430
0
                    break;
2431
0
                case '\0':
2432
0
                    if (ossl_unlikely(r->a != NULL)) {
2433
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2434
0
                                       "param %s is repeated", s);
2435
0
                        return 0;
2436
0
                    }
2437
0
                    r->a = (OSSL_PARAM *)p;
2438
0
                }
2439
0
                break;
2440
0
            case 'b':
2441
0
                switch(s[1]) {
2442
0
                default:
2443
0
                    break;
2444
0
                case '\0':
2445
0
                    if (ossl_unlikely(r->b != NULL)) {
2446
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2447
0
                                       "param %s is repeated", s);
2448
0
                        return 0;
2449
0
                    }
2450
0
                    r->b = (OSSL_PARAM *)p;
2451
0
                }
2452
0
                break;
2453
0
            case 'c':
2454
0
                if (ossl_likely(strcmp("ofactor", s + 1) == 0)) {
2455
                    /* OSSL_PKEY_PARAM_EC_COFACTOR */
2456
0
                    if (ossl_unlikely(r->cofactor != NULL)) {
2457
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2458
0
                                       "param %s is repeated", s);
2459
0
                        return 0;
2460
0
                    }
2461
0
                    r->cofactor = (OSSL_PARAM *)p;
2462
0
                }
2463
0
                break;
2464
0
            case 'd':
2465
0
                if (ossl_likely(strcmp("ecoded-from-explicit", s + 1) == 0)) {
2466
                    /* OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS */
2467
0
                    if (ossl_unlikely(r->decoded != NULL)) {
2468
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2469
0
                                       "param %s is repeated", s);
2470
0
                        return 0;
2471
0
                    }
2472
0
                    r->decoded = (OSSL_PARAM *)p;
2473
0
                }
2474
0
                break;
2475
0
            case 'e':
2476
0
                if (ossl_likely(strcmp("ncoding", s + 1) == 0)) {
2477
                    /* OSSL_PKEY_PARAM_EC_ENCODING */
2478
0
                    if (ossl_unlikely(r->encoding != NULL)) {
2479
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2480
0
                                       "param %s is repeated", s);
2481
0
                        return 0;
2482
0
                    }
2483
0
                    r->encoding = (OSSL_PARAM *)p;
2484
0
                }
2485
0
                break;
2486
0
            case 'f':
2487
0
                if (ossl_likely(strcmp("ield-type", s + 1) == 0)) {
2488
                    /* OSSL_PKEY_PARAM_EC_FIELD_TYPE */
2489
0
                    if (ossl_unlikely(r->field_type != NULL)) {
2490
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2491
0
                                       "param %s is repeated", s);
2492
0
                        return 0;
2493
0
                    }
2494
0
                    r->field_type = (OSSL_PARAM *)p;
2495
0
                }
2496
0
                break;
2497
2.42k
            case 'g':
2498
2.42k
                switch(s[1]) {
2499
0
                default:
2500
0
                    break;
2501
0
                case 'e':
2502
0
                    if (ossl_likely(strcmp("nerator", s + 2) == 0)) {
2503
                        /* OSSL_PKEY_PARAM_EC_GENERATOR */
2504
0
                        if (ossl_unlikely(r->generator != NULL)) {
2505
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2506
0
                                           "param %s is repeated", s);
2507
0
                            return 0;
2508
0
                        }
2509
0
                        r->generator = (OSSL_PARAM *)p;
2510
0
                    }
2511
0
                    break;
2512
2.42k
                case 'r':
2513
2.42k
                    if (ossl_likely(strcmp("oup", s + 2) == 0)) {
2514
                        /* OSSL_PKEY_PARAM_GROUP_NAME */
2515
2.42k
                        if (ossl_unlikely(r->group_name != NULL)) {
2516
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2517
0
                                           "param %s is repeated", s);
2518
0
                            return 0;
2519
0
                        }
2520
2.42k
                        r->group_name = (OSSL_PARAM *)p;
2521
2.42k
                    }
2522
2.42k
                }
2523
2.42k
                break;
2524
2.42k
            case 'o':
2525
0
                if (ossl_likely(strcmp("rder", s + 1) == 0)) {
2526
                    /* OSSL_PKEY_PARAM_EC_ORDER */
2527
0
                    if (ossl_unlikely(r->order != NULL)) {
2528
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2529
0
                                       "param %s is repeated", s);
2530
0
                        return 0;
2531
0
                    }
2532
0
                    r->order = (OSSL_PARAM *)p;
2533
0
                }
2534
0
                break;
2535
0
            case 'p':
2536
0
                switch(s[1]) {
2537
0
                default:
2538
0
                    break;
2539
0
                case 'o':
2540
0
                    if (ossl_likely(strcmp("int-format", s + 2) == 0)) {
2541
                        /* OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT */
2542
0
                        if (ossl_unlikely(r->pt_format != NULL)) {
2543
0
                            break;
2544
0
                        }
2545
0
                        r->pt_format = (OSSL_PARAM *)p;
2546
0
                    }
2547
0
                    break;
2548
0
                case '\0':
2549
0
                    if (ossl_unlikely(r->p != NULL)) {
2550
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2551
0
                                       "param %s is repeated", s);
2552
0
                        return 0;
2553
0
                    }
2554
0
                    r->p = (OSSL_PARAM *)p;
2555
0
                }
2556
0
                break;
2557
0
            case 's':
2558
0
                if (ossl_likely(strcmp("eed", s + 1) == 0)) {
2559
                    /* OSSL_PKEY_PARAM_EC_SEED */
2560
0
                    if (ossl_unlikely(r->seed != NULL)) {
2561
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2562
0
                                       "param %s is repeated", s);
2563
0
                        return 0;
2564
0
                    }
2565
0
                    r->seed = (OSSL_PARAM *)p;
2566
0
                }
2567
2.42k
            }
2568
2.42k
    return 1;
2569
2.42k
}
Unexecuted instantiation: ec_kmgmt.c:ec_group_fromdata_decoder
Unexecuted instantiation: ec_ameth.c:ec_group_fromdata_decoder
Unexecuted instantiation: ec_backend.c:ec_group_fromdata_decoder
2570
#endif
2571
/* End of machine generated */
2572
2573
#define ec_group_todata_st ec_params_st
2574
/* Machine generated */
2575
#ifndef ec_group_todata_list
2576
static ossl_unused const OSSL_PARAM ec_group_todata_list[] = {
2577
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_GROUP_NAME, NULL, 0),
2578
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_ENCODING, NULL, 0),
2579
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT, NULL, 0),
2580
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_FIELD_TYPE, NULL, 0),
2581
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_P, NULL, 0),
2582
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_A, NULL, 0),
2583
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_B, NULL, 0),
2584
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_EC_GENERATOR, NULL, 0),
2585
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_ORDER, NULL, 0),
2586
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_COFACTOR, NULL, 0),
2587
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_EC_SEED, NULL, 0),
2588
    OSSL_PARAM_int(OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS, NULL),
2589
    OSSL_PARAM_END
2590
};
2591
#endif
2592
2593
#ifndef ec_group_todata_st
2594
struct ec_group_todata_st {
2595
    OSSL_PARAM *a;
2596
    OSSL_PARAM *b;
2597
    OSSL_PARAM *cofactor;
2598
    OSSL_PARAM *decoded;
2599
    OSSL_PARAM *encoding;
2600
    OSSL_PARAM *field_type;
2601
    OSSL_PARAM *generator;
2602
    OSSL_PARAM *group_name;
2603
    OSSL_PARAM *order;
2604
    OSSL_PARAM *p;
2605
    OSSL_PARAM *pt_format;
2606
    OSSL_PARAM *seed;
2607
};
2608
#endif
2609
2610
#ifndef ec_group_todata_decoder
2611
static ossl_unused int ec_group_todata_decoder
2612
    (const OSSL_PARAM *p, struct ec_group_todata_st *r)
2613
0
{
2614
0
    const char *s;
2615
2616
0
    memset(r, 0, sizeof(*r));
2617
0
    if (p != NULL)
2618
0
        for (; (s = p->key) != NULL; p++)
2619
0
            switch(s[0]) {
2620
0
            default:
2621
0
                break;
2622
0
            case 'a':
2623
0
                switch(s[1]) {
2624
0
                default:
2625
0
                    break;
2626
0
                case '\0':
2627
0
                    if (ossl_unlikely(r->a != NULL)) {
2628
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2629
0
                                       "param %s is repeated", s);
2630
0
                        return 0;
2631
0
                    }
2632
0
                    r->a = (OSSL_PARAM *)p;
2633
0
                }
2634
0
                break;
2635
0
            case 'b':
2636
0
                switch(s[1]) {
2637
0
                default:
2638
0
                    break;
2639
0
                case '\0':
2640
0
                    if (ossl_unlikely(r->b != NULL)) {
2641
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2642
0
                                       "param %s is repeated", s);
2643
0
                        return 0;
2644
0
                    }
2645
0
                    r->b = (OSSL_PARAM *)p;
2646
0
                }
2647
0
                break;
2648
0
            case 'c':
2649
0
                if (ossl_likely(strcmp("ofactor", s + 1) == 0)) {
2650
                    /* OSSL_PKEY_PARAM_EC_COFACTOR */
2651
0
                    if (ossl_unlikely(r->cofactor != NULL)) {
2652
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2653
0
                                       "param %s is repeated", s);
2654
0
                        return 0;
2655
0
                    }
2656
0
                    r->cofactor = (OSSL_PARAM *)p;
2657
0
                }
2658
0
                break;
2659
0
            case 'd':
2660
0
                if (ossl_likely(strcmp("ecoded-from-explicit", s + 1) == 0)) {
2661
                    /* OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS */
2662
0
                    if (ossl_unlikely(r->decoded != NULL)) {
2663
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2664
0
                                       "param %s is repeated", s);
2665
0
                        return 0;
2666
0
                    }
2667
0
                    r->decoded = (OSSL_PARAM *)p;
2668
0
                }
2669
0
                break;
2670
0
            case 'e':
2671
0
                if (ossl_likely(strcmp("ncoding", s + 1) == 0)) {
2672
                    /* OSSL_PKEY_PARAM_EC_ENCODING */
2673
0
                    if (ossl_unlikely(r->encoding != NULL)) {
2674
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2675
0
                                       "param %s is repeated", s);
2676
0
                        return 0;
2677
0
                    }
2678
0
                    r->encoding = (OSSL_PARAM *)p;
2679
0
                }
2680
0
                break;
2681
0
            case 'f':
2682
0
                if (ossl_likely(strcmp("ield-type", s + 1) == 0)) {
2683
                    /* OSSL_PKEY_PARAM_EC_FIELD_TYPE */
2684
0
                    if (ossl_unlikely(r->field_type != NULL)) {
2685
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2686
0
                                       "param %s is repeated", s);
2687
0
                        return 0;
2688
0
                    }
2689
0
                    r->field_type = (OSSL_PARAM *)p;
2690
0
                }
2691
0
                break;
2692
0
            case 'g':
2693
0
                switch(s[1]) {
2694
0
                default:
2695
0
                    break;
2696
0
                case 'e':
2697
0
                    if (ossl_likely(strcmp("nerator", s + 2) == 0)) {
2698
                        /* OSSL_PKEY_PARAM_EC_GENERATOR */
2699
0
                        if (ossl_unlikely(r->generator != NULL)) {
2700
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2701
0
                                           "param %s is repeated", s);
2702
0
                            return 0;
2703
0
                        }
2704
0
                        r->generator = (OSSL_PARAM *)p;
2705
0
                    }
2706
0
                    break;
2707
0
                case 'r':
2708
0
                    if (ossl_likely(strcmp("oup", s + 2) == 0)) {
2709
                        /* OSSL_PKEY_PARAM_GROUP_NAME */
2710
0
                        if (ossl_unlikely(r->group_name != NULL)) {
2711
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2712
0
                                           "param %s is repeated", s);
2713
0
                            return 0;
2714
0
                        }
2715
0
                        r->group_name = (OSSL_PARAM *)p;
2716
0
                    }
2717
0
                }
2718
0
                break;
2719
0
            case 'o':
2720
0
                if (ossl_likely(strcmp("rder", s + 1) == 0)) {
2721
                    /* OSSL_PKEY_PARAM_EC_ORDER */
2722
0
                    if (ossl_unlikely(r->order != NULL)) {
2723
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2724
0
                                       "param %s is repeated", s);
2725
0
                        return 0;
2726
0
                    }
2727
0
                    r->order = (OSSL_PARAM *)p;
2728
0
                }
2729
0
                break;
2730
0
            case 'p':
2731
0
                switch(s[1]) {
2732
0
                default:
2733
0
                    break;
2734
0
                case 'o':
2735
0
                    if (ossl_likely(strcmp("int-format", s + 2) == 0)) {
2736
                        /* OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT */
2737
0
                        if (ossl_unlikely(r->pt_format != NULL)) {
2738
0
                            break;
2739
0
                        }
2740
0
                        r->pt_format = (OSSL_PARAM *)p;
2741
0
                    }
2742
0
                    break;
2743
0
                case '\0':
2744
0
                    if (ossl_unlikely(r->p != NULL)) {
2745
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2746
0
                                       "param %s is repeated", s);
2747
0
                        return 0;
2748
0
                    }
2749
0
                    r->p = (OSSL_PARAM *)p;
2750
0
                }
2751
0
                break;
2752
0
            case 's':
2753
0
                if (ossl_likely(strcmp("eed", s + 1) == 0)) {
2754
                    /* OSSL_PKEY_PARAM_EC_SEED */
2755
0
                    if (ossl_unlikely(r->seed != NULL)) {
2756
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2757
0
                                       "param %s is repeated", s);
2758
0
                        return 0;
2759
0
                    }
2760
0
                    r->seed = (OSSL_PARAM *)p;
2761
0
                }
2762
0
            }
2763
0
    return 1;
2764
0
}
Unexecuted instantiation: ec_lib.c:ec_group_todata_decoder
Unexecuted instantiation: ec_kmgmt.c:ec_group_todata_decoder
Unexecuted instantiation: ec_ameth.c:ec_group_todata_decoder
Unexecuted instantiation: ec_backend.c:ec_group_todata_decoder
2765
#endif
2766
/* End of machine generated */
2767
2768
#define ec_key_fromdata_st ec_params_st
2769
/* Machine generated */
2770
#ifndef ec_key_fromdata_list
2771
static ossl_unused const OSSL_PARAM ec_key_fromdata_list[] = {
2772
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_PUB_KEY, NULL, 0),
2773
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_PRIV_KEY, NULL, 0),
2774
    OSSL_PARAM_END
2775
};
2776
#endif
2777
2778
#ifndef ec_key_fromdata_st
2779
struct ec_key_fromdata_st {
2780
    OSSL_PARAM *priv;
2781
    OSSL_PARAM *pub;
2782
};
2783
#endif
2784
2785
#ifndef ec_key_fromdata_decoder
2786
static ossl_unused int ec_key_fromdata_decoder
2787
    (const OSSL_PARAM *p, struct ec_key_fromdata_st *r)
2788
0
{
2789
0
    const char *s;
2790
2791
0
    memset(r, 0, sizeof(*r));
2792
0
    if (p != NULL)
2793
0
        for (; (s = p->key) != NULL; p++)
2794
0
            switch(s[0]) {
2795
0
            default:
2796
0
                break;
2797
0
            case 'p':
2798
0
                switch(s[1]) {
2799
0
                default:
2800
0
                    break;
2801
0
                case 'r':
2802
0
                    if (ossl_likely(strcmp("iv", s + 2) == 0)) {
2803
                        /* OSSL_PKEY_PARAM_PRIV_KEY */
2804
0
                        if (ossl_unlikely(r->priv != NULL)) {
2805
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2806
0
                                           "param %s is repeated", s);
2807
0
                            return 0;
2808
0
                        }
2809
0
                        r->priv = (OSSL_PARAM *)p;
2810
0
                    }
2811
0
                    break;
2812
0
                case 'u':
2813
0
                    if (ossl_likely(strcmp("b", s + 2) == 0)) {
2814
                        /* OSSL_PKEY_PARAM_PUB_KEY */
2815
0
                        if (ossl_unlikely(r->pub != NULL)) {
2816
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2817
0
                                           "param %s is repeated", s);
2818
0
                            return 0;
2819
0
                        }
2820
0
                        r->pub = (OSSL_PARAM *)p;
2821
0
                    }
2822
0
                }
2823
0
            }
2824
0
    return 1;
2825
0
}
Unexecuted instantiation: ec_lib.c:ec_key_fromdata_decoder
Unexecuted instantiation: ec_kmgmt.c:ec_key_fromdata_decoder
Unexecuted instantiation: ec_ameth.c:ec_key_fromdata_decoder
Unexecuted instantiation: ec_backend.c:ec_key_fromdata_decoder
2826
#endif
2827
/* End of machine generated */
2828
2829
#define ec_key_otherparams_fromdata_st ec_params_st
2830
/* Machine generated */
2831
#ifndef ec_key_otherparams_fromdata_list
2832
static ossl_unused const OSSL_PARAM ec_key_otherparams_fromdata_list[] = {
2833
    OSSL_PARAM_int(OSSL_PKEY_PARAM_USE_COFACTOR_ECDH, NULL),
2834
    OSSL_PARAM_int(OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC, NULL),
2835
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE, NULL, 0),
2836
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT, NULL, 0),
2837
    OSSL_PARAM_END
2838
};
2839
#endif
2840
2841
#ifndef ec_key_otherparams_fromdata_st
2842
struct ec_key_otherparams_fromdata_st {
2843
    OSSL_PARAM *group_check;
2844
    OSSL_PARAM *include_public;
2845
    OSSL_PARAM *pt_format;
2846
    OSSL_PARAM *use_cofactor;
2847
};
2848
#endif
2849
2850
#ifndef ec_key_otherparams_fromdata_decoder
2851
static ossl_unused int ec_key_otherparams_fromdata_decoder
2852
    (const OSSL_PARAM *p, struct ec_key_otherparams_fromdata_st *r)
2853
0
{
2854
0
    const char *s;
2855
2856
0
    memset(r, 0, sizeof(*r));
2857
0
    if (p != NULL)
2858
0
        for (; (s = p->key) != NULL; p++)
2859
0
            switch(s[0]) {
2860
0
            default:
2861
0
                break;
2862
0
            case 'g':
2863
0
                if (ossl_likely(strcmp("roup-check", s + 1) == 0)) {
2864
                    /* OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE */
2865
0
                    if (ossl_unlikely(r->group_check != NULL)) {
2866
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2867
0
                                       "param %s is repeated", s);
2868
0
                        return 0;
2869
0
                    }
2870
0
                    r->group_check = (OSSL_PARAM *)p;
2871
0
                }
2872
0
                break;
2873
0
            case 'i':
2874
0
                if (ossl_likely(strcmp("nclude-public", s + 1) == 0)) {
2875
                    /* OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC */
2876
0
                    if (ossl_unlikely(r->include_public != NULL)) {
2877
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2878
0
                                       "param %s is repeated", s);
2879
0
                        return 0;
2880
0
                    }
2881
0
                    r->include_public = (OSSL_PARAM *)p;
2882
0
                }
2883
0
                break;
2884
0
            case 'p':
2885
0
                if (ossl_likely(strcmp("oint-format", s + 1) == 0)) {
2886
                    /* OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT */
2887
0
                    if (ossl_unlikely(r->pt_format != NULL)) {
2888
0
                        break;
2889
0
                    }
2890
0
                    r->pt_format = (OSSL_PARAM *)p;
2891
0
                }
2892
0
                break;
2893
0
            case 'u':
2894
0
                if (ossl_likely(strcmp("se-cofactor-flag", s + 1) == 0)) {
2895
                    /* OSSL_PKEY_PARAM_USE_COFACTOR_ECDH */
2896
0
                    if (ossl_unlikely(r->use_cofactor != NULL)) {
2897
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2898
0
                                       "param %s is repeated", s);
2899
0
                        return 0;
2900
0
                    }
2901
0
                    r->use_cofactor = (OSSL_PARAM *)p;
2902
0
                }
2903
0
            }
2904
0
    return 1;
2905
0
}
Unexecuted instantiation: ec_lib.c:ec_key_otherparams_fromdata_decoder
Unexecuted instantiation: ec_kmgmt.c:ec_key_otherparams_fromdata_decoder
Unexecuted instantiation: ec_ameth.c:ec_key_otherparams_fromdata_decoder
Unexecuted instantiation: ec_backend.c:ec_key_otherparams_fromdata_decoder
2906
#endif
2907
/* End of machine generated */
2908
2909
#define ec_pkey_import_from_st ec_params_st
2910
/* Machine generated */
2911
#ifndef ec_pkey_import_from_list
2912
static ossl_unused const OSSL_PARAM ec_pkey_import_from_list[] = {
2913
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_GROUP_NAME, NULL, 0),
2914
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_ENCODING, NULL, 0),
2915
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT, NULL, 0),
2916
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_FIELD_TYPE, NULL, 0),
2917
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_P, NULL, 0),
2918
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_A, NULL, 0),
2919
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_B, NULL, 0),
2920
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_EC_GENERATOR, NULL, 0),
2921
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_ORDER, NULL, 0),
2922
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_COFACTOR, NULL, 0),
2923
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_EC_SEED, NULL, 0),
2924
    OSSL_PARAM_int(OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS, NULL),
2925
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_PUB_KEY, NULL, 0),
2926
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_PRIV_KEY, NULL, 0),
2927
    OSSL_PARAM_int(OSSL_PKEY_PARAM_USE_COFACTOR_ECDH, NULL),
2928
    OSSL_PARAM_int(OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC, NULL),
2929
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE, NULL, 0),
2930
    OSSL_PARAM_END
2931
};
2932
#endif
2933
2934
#ifndef ec_pkey_import_from_st
2935
struct ec_pkey_import_from_st {
2936
    OSSL_PARAM *a;
2937
    OSSL_PARAM *b;
2938
    OSSL_PARAM *cofactor;
2939
    OSSL_PARAM *decoded;
2940
    OSSL_PARAM *encoding;
2941
    OSSL_PARAM *field_type;
2942
    OSSL_PARAM *generator;
2943
    OSSL_PARAM *group_check;
2944
    OSSL_PARAM *group_name;
2945
    OSSL_PARAM *include_public;
2946
    OSSL_PARAM *order;
2947
    OSSL_PARAM *p;
2948
    OSSL_PARAM *priv;
2949
    OSSL_PARAM *pt_format;
2950
    OSSL_PARAM *pub;
2951
    OSSL_PARAM *seed;
2952
    OSSL_PARAM *use_cofactor;
2953
};
2954
#endif
2955
2956
#ifndef ec_pkey_import_from_decoder
2957
static ossl_unused int ec_pkey_import_from_decoder
2958
    (const OSSL_PARAM *p, struct ec_pkey_import_from_st *r)
2959
0
{
2960
0
    const char *s;
2961
2962
0
    memset(r, 0, sizeof(*r));
2963
0
    if (p != NULL)
2964
0
        for (; (s = p->key) != NULL; p++)
2965
0
            switch(s[0]) {
2966
0
            default:
2967
0
                break;
2968
0
            case 'a':
2969
0
                switch(s[1]) {
2970
0
                default:
2971
0
                    break;
2972
0
                case '\0':
2973
0
                    if (ossl_unlikely(r->a != NULL)) {
2974
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2975
0
                                       "param %s is repeated", s);
2976
0
                        return 0;
2977
0
                    }
2978
0
                    r->a = (OSSL_PARAM *)p;
2979
0
                }
2980
0
                break;
2981
0
            case 'b':
2982
0
                switch(s[1]) {
2983
0
                default:
2984
0
                    break;
2985
0
                case '\0':
2986
0
                    if (ossl_unlikely(r->b != NULL)) {
2987
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2988
0
                                       "param %s is repeated", s);
2989
0
                        return 0;
2990
0
                    }
2991
0
                    r->b = (OSSL_PARAM *)p;
2992
0
                }
2993
0
                break;
2994
0
            case 'c':
2995
0
                if (ossl_likely(strcmp("ofactor", s + 1) == 0)) {
2996
                    /* OSSL_PKEY_PARAM_EC_COFACTOR */
2997
0
                    if (ossl_unlikely(r->cofactor != NULL)) {
2998
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
2999
0
                                       "param %s is repeated", s);
3000
0
                        return 0;
3001
0
                    }
3002
0
                    r->cofactor = (OSSL_PARAM *)p;
3003
0
                }
3004
0
                break;
3005
0
            case 'd':
3006
0
                if (ossl_likely(strcmp("ecoded-from-explicit", s + 1) == 0)) {
3007
                    /* OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS */
3008
0
                    if (ossl_unlikely(r->decoded != NULL)) {
3009
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3010
0
                                       "param %s is repeated", s);
3011
0
                        return 0;
3012
0
                    }
3013
0
                    r->decoded = (OSSL_PARAM *)p;
3014
0
                }
3015
0
                break;
3016
0
            case 'e':
3017
0
                if (ossl_likely(strcmp("ncoding", s + 1) == 0)) {
3018
                    /* OSSL_PKEY_PARAM_EC_ENCODING */
3019
0
                    if (ossl_unlikely(r->encoding != NULL)) {
3020
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3021
0
                                       "param %s is repeated", s);
3022
0
                        return 0;
3023
0
                    }
3024
0
                    r->encoding = (OSSL_PARAM *)p;
3025
0
                }
3026
0
                break;
3027
0
            case 'f':
3028
0
                if (ossl_likely(strcmp("ield-type", s + 1) == 0)) {
3029
                    /* OSSL_PKEY_PARAM_EC_FIELD_TYPE */
3030
0
                    if (ossl_unlikely(r->field_type != NULL)) {
3031
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3032
0
                                       "param %s is repeated", s);
3033
0
                        return 0;
3034
0
                    }
3035
0
                    r->field_type = (OSSL_PARAM *)p;
3036
0
                }
3037
0
                break;
3038
0
            case 'g':
3039
0
                switch(s[1]) {
3040
0
                default:
3041
0
                    break;
3042
0
                case 'e':
3043
0
                    if (ossl_likely(strcmp("nerator", s + 2) == 0)) {
3044
                        /* OSSL_PKEY_PARAM_EC_GENERATOR */
3045
0
                        if (ossl_unlikely(r->generator != NULL)) {
3046
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3047
0
                                           "param %s is repeated", s);
3048
0
                            return 0;
3049
0
                        }
3050
0
                        r->generator = (OSSL_PARAM *)p;
3051
0
                    }
3052
0
                    break;
3053
0
                case 'r':
3054
0
                    switch(s[2]) {
3055
0
                    default:
3056
0
                        break;
3057
0
                    case 'o':
3058
0
                        switch(s[3]) {
3059
0
                        default:
3060
0
                            break;
3061
0
                        case 'u':
3062
0
                            switch(s[4]) {
3063
0
                            default:
3064
0
                                break;
3065
0
                            case 'p':
3066
0
                                switch(s[5]) {
3067
0
                                default:
3068
0
                                    break;
3069
0
                                case '-':
3070
0
                                    if (ossl_likely(strcmp("check", s + 6) == 0)) {
3071
                                        /* OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE */
3072
0
                                        if (ossl_unlikely(r->group_check != NULL)) {
3073
0
                                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3074
0
                                                           "param %s is repeated", s);
3075
0
                                            return 0;
3076
0
                                        }
3077
0
                                        r->group_check = (OSSL_PARAM *)p;
3078
0
                                    }
3079
0
                                    break;
3080
0
                                case '\0':
3081
0
                                    if (ossl_unlikely(r->group_name != NULL)) {
3082
0
                                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3083
0
                                                       "param %s is repeated", s);
3084
0
                                        return 0;
3085
0
                                    }
3086
0
                                    r->group_name = (OSSL_PARAM *)p;
3087
0
                                }
3088
0
                            }
3089
0
                        }
3090
0
                    }
3091
0
                }
3092
0
                break;
3093
0
            case 'i':
3094
0
                if (ossl_likely(strcmp("nclude-public", s + 1) == 0)) {
3095
                    /* OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC */
3096
0
                    if (ossl_unlikely(r->include_public != NULL)) {
3097
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3098
0
                                       "param %s is repeated", s);
3099
0
                        return 0;
3100
0
                    }
3101
0
                    r->include_public = (OSSL_PARAM *)p;
3102
0
                }
3103
0
                break;
3104
0
            case 'o':
3105
0
                if (ossl_likely(strcmp("rder", s + 1) == 0)) {
3106
                    /* OSSL_PKEY_PARAM_EC_ORDER */
3107
0
                    if (ossl_unlikely(r->order != NULL)) {
3108
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3109
0
                                       "param %s is repeated", s);
3110
0
                        return 0;
3111
0
                    }
3112
0
                    r->order = (OSSL_PARAM *)p;
3113
0
                }
3114
0
                break;
3115
0
            case 'p':
3116
0
                switch(s[1]) {
3117
0
                default:
3118
0
                    break;
3119
0
                case 'o':
3120
0
                    if (ossl_likely(strcmp("int-format", s + 2) == 0)) {
3121
                        /* OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT */
3122
0
                        if (ossl_unlikely(r->pt_format != NULL)) {
3123
0
                            break;
3124
0
                        }
3125
0
                        r->pt_format = (OSSL_PARAM *)p;
3126
0
                    }
3127
0
                    break;
3128
0
                case 'r':
3129
0
                    if (ossl_likely(strcmp("iv", s + 2) == 0)) {
3130
                        /* OSSL_PKEY_PARAM_PRIV_KEY */
3131
0
                        if (ossl_unlikely(r->priv != NULL)) {
3132
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3133
0
                                           "param %s is repeated", s);
3134
0
                            return 0;
3135
0
                        }
3136
0
                        r->priv = (OSSL_PARAM *)p;
3137
0
                    }
3138
0
                    break;
3139
0
                case 'u':
3140
0
                    if (ossl_likely(strcmp("b", s + 2) == 0)) {
3141
                        /* OSSL_PKEY_PARAM_PUB_KEY */
3142
0
                        if (ossl_unlikely(r->pub != NULL)) {
3143
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3144
0
                                           "param %s is repeated", s);
3145
0
                            return 0;
3146
0
                        }
3147
0
                        r->pub = (OSSL_PARAM *)p;
3148
0
                    }
3149
0
                    break;
3150
0
                case '\0':
3151
0
                    if (ossl_unlikely(r->p != NULL)) {
3152
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3153
0
                                       "param %s is repeated", s);
3154
0
                        return 0;
3155
0
                    }
3156
0
                    r->p = (OSSL_PARAM *)p;
3157
0
                }
3158
0
                break;
3159
0
            case 's':
3160
0
                if (ossl_likely(strcmp("eed", s + 1) == 0)) {
3161
                    /* OSSL_PKEY_PARAM_EC_SEED */
3162
0
                    if (ossl_unlikely(r->seed != NULL)) {
3163
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3164
0
                                       "param %s is repeated", s);
3165
0
                        return 0;
3166
0
                    }
3167
0
                    r->seed = (OSSL_PARAM *)p;
3168
0
                }
3169
0
                break;
3170
0
            case 'u':
3171
0
                if (ossl_likely(strcmp("se-cofactor-flag", s + 1) == 0)) {
3172
                    /* OSSL_PKEY_PARAM_USE_COFACTOR_ECDH */
3173
0
                    if (ossl_unlikely(r->use_cofactor != NULL)) {
3174
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3175
0
                                       "param %s is repeated", s);
3176
0
                        return 0;
3177
0
                    }
3178
0
                    r->use_cofactor = (OSSL_PARAM *)p;
3179
0
                }
3180
0
            }
3181
0
    return 1;
3182
0
}
Unexecuted instantiation: ec_lib.c:ec_pkey_import_from_decoder
Unexecuted instantiation: ec_kmgmt.c:ec_pkey_import_from_decoder
Unexecuted instantiation: ec_ameth.c:ec_pkey_import_from_decoder
Unexecuted instantiation: ec_backend.c:ec_pkey_import_from_decoder
3183
#endif
3184
/* End of machine generated */
3185
3186
/* Keymgmt get and set parameter surfaces. */
3187
#define ec_get_params_st ec_params_st
3188
/* Machine generated */
3189
#ifndef ec_get_params_list
3190
static ossl_unused const OSSL_PARAM ec_get_params_list[] = {
3191
    OSSL_PARAM_int(OSSL_PKEY_PARAM_BITS, NULL),
3192
    OSSL_PARAM_int(OSSL_PKEY_PARAM_EC_FIELD_DEGREE, NULL),
3193
    OSSL_PARAM_int(OSSL_PKEY_PARAM_SECURITY_BITS, NULL),
3194
    OSSL_PARAM_int(OSSL_PKEY_PARAM_MAX_SIZE, NULL),
3195
    OSSL_PARAM_int(OSSL_PKEY_PARAM_SECURITY_CATEGORY, NULL),
3196
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_DEFAULT_DIGEST, NULL, 0),
3197
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY, NULL, 0),
3198
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_PUB_X, NULL, 0),
3199
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_PUB_Y, NULL, 0),
3200
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_GROUP_NAME, NULL, 0),
3201
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_ENCODING, NULL, 0),
3202
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT, NULL, 0),
3203
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_FIELD_TYPE, NULL, 0),
3204
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_P, NULL, 0),
3205
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_A, NULL, 0),
3206
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_B, NULL, 0),
3207
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_EC_GENERATOR, NULL, 0),
3208
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_ORDER, NULL, 0),
3209
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_COFACTOR, NULL, 0),
3210
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_EC_SEED, NULL, 0),
3211
    OSSL_PARAM_int(OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS, NULL),
3212
# if !defined(OPENSSL_NO_EC2M)
3213
    OSSL_PARAM_int(OSSL_PKEY_PARAM_EC_CHAR2_M, NULL),
3214
# endif
3215
# if !defined(OPENSSL_NO_EC2M)
3216
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_CHAR2_TYPE, NULL, 0),
3217
# endif
3218
# if !defined(OPENSSL_NO_EC2M)
3219
    OSSL_PARAM_int(OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS, NULL),
3220
# endif
3221
# if !defined(OPENSSL_NO_EC2M)
3222
    OSSL_PARAM_int(OSSL_PKEY_PARAM_EC_CHAR2_PP_K1, NULL),
3223
# endif
3224
# if !defined(OPENSSL_NO_EC2M)
3225
    OSSL_PARAM_int(OSSL_PKEY_PARAM_EC_CHAR2_PP_K2, NULL),
3226
# endif
3227
# if !defined(OPENSSL_NO_EC2M)
3228
    OSSL_PARAM_int(OSSL_PKEY_PARAM_EC_CHAR2_PP_K3, NULL),
3229
# endif
3230
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_PUB_KEY, NULL, 0),
3231
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_PRIV_KEY, NULL, 0),
3232
    OSSL_PARAM_int(OSSL_PKEY_PARAM_USE_COFACTOR_ECDH, NULL),
3233
    OSSL_PARAM_int(OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC, NULL),
3234
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE, NULL, 0),
3235
    OSSL_PARAM_END
3236
};
3237
#endif
3238
3239
#ifndef ec_get_params_st
3240
struct ec_get_params_st {
3241
    OSSL_PARAM *a;
3242
    OSSL_PARAM *b;
3243
    OSSL_PARAM *bits;
3244
# if !defined(OPENSSL_NO_EC2M)
3245
    OSSL_PARAM *char2_k1;
3246
# endif
3247
# if !defined(OPENSSL_NO_EC2M)
3248
    OSSL_PARAM *char2_k2;
3249
# endif
3250
# if !defined(OPENSSL_NO_EC2M)
3251
    OSSL_PARAM *char2_k3;
3252
# endif
3253
# if !defined(OPENSSL_NO_EC2M)
3254
    OSSL_PARAM *char2_m;
3255
# endif
3256
# if !defined(OPENSSL_NO_EC2M)
3257
    OSSL_PARAM *char2_tp;
3258
# endif
3259
# if !defined(OPENSSL_NO_EC2M)
3260
    OSSL_PARAM *char2_type;
3261
# endif
3262
    OSSL_PARAM *cofactor;
3263
    OSSL_PARAM *decoded;
3264
    OSSL_PARAM *default_digest;
3265
    OSSL_PARAM *encoded_pub;
3266
    OSSL_PARAM *encoding;
3267
    OSSL_PARAM *field_degree;
3268
    OSSL_PARAM *field_type;
3269
    OSSL_PARAM *generator;
3270
    OSSL_PARAM *group_check;
3271
    OSSL_PARAM *group_name;
3272
    OSSL_PARAM *include_public;
3273
    OSSL_PARAM *maxsize;
3274
    OSSL_PARAM *order;
3275
    OSSL_PARAM *p;
3276
    OSSL_PARAM *priv;
3277
    OSSL_PARAM *pt_format;
3278
    OSSL_PARAM *pub;
3279
    OSSL_PARAM *pub_x;
3280
    OSSL_PARAM *pub_y;
3281
    OSSL_PARAM *secbits;
3282
    OSSL_PARAM *seccat;
3283
    OSSL_PARAM *seed;
3284
    OSSL_PARAM *use_cofactor;
3285
};
3286
#endif
3287
3288
#ifndef ec_get_params_decoder
3289
static ossl_unused int ec_get_params_decoder
3290
    (const OSSL_PARAM *p, struct ec_get_params_st *r)
3291
119k
{
3292
119k
    const char *s;
3293
3294
119k
    memset(r, 0, sizeof(*r));
3295
119k
    if (p != NULL)
3296
566k
        for (; (s = p->key) != NULL; p++)
3297
446k
            switch(s[0]) {
3298
0
            default:
3299
0
                break;
3300
0
            case 'a':
3301
0
                switch(s[1]) {
3302
0
                default:
3303
0
                    break;
3304
0
                case '\0':
3305
0
                    if (ossl_unlikely(r->a != NULL)) {
3306
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3307
0
                                       "param %s is repeated", s);
3308
0
                        return 0;
3309
0
                    }
3310
0
                    r->a = (OSSL_PARAM *)p;
3311
0
                }
3312
0
                break;
3313
109k
            case 'b':
3314
109k
                switch(s[1]) {
3315
0
                default:
3316
0
                    break;
3317
0
                case 'a':
3318
0
# if !defined(OPENSSL_NO_EC2M)
3319
0
                    if (ossl_likely(strcmp("sis-type", s + 2) == 0)) {
3320
                        /* OSSL_PKEY_PARAM_EC_CHAR2_TYPE */
3321
0
                        if (ossl_unlikely(r->char2_type != NULL)) {
3322
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3323
0
                                           "param %s is repeated", s);
3324
0
                            return 0;
3325
0
                        }
3326
0
                        r->char2_type = (OSSL_PARAM *)p;
3327
0
                    }
3328
0
# endif
3329
0
                    break;
3330
109k
                case 'i':
3331
109k
                    if (ossl_likely(strcmp("ts", s + 2) == 0)) {
3332
                        /* OSSL_PKEY_PARAM_BITS */
3333
109k
                        if (ossl_unlikely(r->bits != NULL)) {
3334
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3335
0
                                           "param %s is repeated", s);
3336
0
                            return 0;
3337
0
                        }
3338
109k
                        r->bits = (OSSL_PARAM *)p;
3339
109k
                    }
3340
109k
                    break;
3341
109k
                case '\0':
3342
0
                    if (ossl_unlikely(r->b != NULL)) {
3343
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3344
0
                                       "param %s is repeated", s);
3345
0
                        return 0;
3346
0
                    }
3347
0
                    r->b = (OSSL_PARAM *)p;
3348
109k
                }
3349
109k
                break;
3350
109k
            case 'c':
3351
0
                if (ossl_likely(strcmp("ofactor", s + 1) == 0)) {
3352
                    /* OSSL_PKEY_PARAM_EC_COFACTOR */
3353
0
                    if (ossl_unlikely(r->cofactor != NULL)) {
3354
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3355
0
                                       "param %s is repeated", s);
3356
0
                        return 0;
3357
0
                    }
3358
0
                    r->cofactor = (OSSL_PARAM *)p;
3359
0
                }
3360
0
                break;
3361
14
            case 'd':
3362
14
                switch(s[1]) {
3363
0
                default:
3364
0
                    break;
3365
14
                case 'e':
3366
14
                    switch(s[2]) {
3367
0
                    default:
3368
0
                        break;
3369
0
                    case 'c':
3370
0
                        if (ossl_likely(strcmp("oded-from-explicit", s + 3) == 0)) {
3371
                            /* OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS */
3372
0
                            if (ossl_unlikely(r->decoded != NULL)) {
3373
0
                                ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3374
0
                                               "param %s is repeated", s);
3375
0
                                return 0;
3376
0
                            }
3377
0
                            r->decoded = (OSSL_PARAM *)p;
3378
0
                        }
3379
0
                        break;
3380
14
                    case 'f':
3381
14
                        if (ossl_likely(strcmp("ault-digest", s + 3) == 0)) {
3382
                            /* OSSL_PKEY_PARAM_DEFAULT_DIGEST */
3383
14
                            if (ossl_unlikely(r->default_digest != NULL)) {
3384
0
                                ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3385
0
                                               "param %s is repeated", s);
3386
0
                                return 0;
3387
0
                            }
3388
14
                            r->default_digest = (OSSL_PARAM *)p;
3389
14
                        }
3390
14
                    }
3391
14
                }
3392
14
                break;
3393
4.12k
            case 'e':
3394
4.12k
                switch(s[1]) {
3395
0
                default:
3396
0
                    break;
3397
4.12k
                case 'n':
3398
4.12k
                    switch(s[2]) {
3399
0
                    default:
3400
0
                        break;
3401
4.12k
                    case 'c':
3402
4.12k
                        switch(s[3]) {
3403
0
                        default:
3404
0
                            break;
3405
4.12k
                        case 'o':
3406
4.12k
                            switch(s[4]) {
3407
0
                            default:
3408
0
                                break;
3409
4.12k
                            case 'd':
3410
4.12k
                                switch(s[5]) {
3411
0
                                default:
3412
0
                                    break;
3413
4.12k
                                case 'e':
3414
4.12k
                                    if (ossl_likely(strcmp("d-pub-key", s + 6) == 0)) {
3415
                                        /* OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY */
3416
4.12k
                                        if (ossl_unlikely(r->encoded_pub != NULL)) {
3417
0
                                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3418
0
                                                           "param %s is repeated", s);
3419
0
                                            return 0;
3420
0
                                        }
3421
4.12k
                                        r->encoded_pub = (OSSL_PARAM *)p;
3422
4.12k
                                    }
3423
4.12k
                                    break;
3424
4.12k
                                case 'i':
3425
0
                                    if (ossl_likely(strcmp("ng", s + 6) == 0)) {
3426
                                        /* OSSL_PKEY_PARAM_EC_ENCODING */
3427
0
                                        if (ossl_unlikely(r->encoding != NULL)) {
3428
0
                                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3429
0
                                                           "param %s is repeated", s);
3430
0
                                            return 0;
3431
0
                                        }
3432
0
                                        r->encoding = (OSSL_PARAM *)p;
3433
0
                                    }
3434
4.12k
                                }
3435
4.12k
                            }
3436
4.12k
                        }
3437
4.12k
                    }
3438
4.12k
                }
3439
4.12k
                break;
3440
4.12k
            case 'f':
3441
0
                switch(s[1]) {
3442
0
                default:
3443
0
                    break;
3444
0
                case 'i':
3445
0
                    switch(s[2]) {
3446
0
                    default:
3447
0
                        break;
3448
0
                    case 'e':
3449
0
                        switch(s[3]) {
3450
0
                        default:
3451
0
                            break;
3452
0
                        case 'l':
3453
0
                            switch(s[4]) {
3454
0
                            default:
3455
0
                                break;
3456
0
                            case 'd':
3457
0
                                switch(s[5]) {
3458
0
                                default:
3459
0
                                    break;
3460
0
                                case '-':
3461
0
                                    switch(s[6]) {
3462
0
                                    default:
3463
0
                                        break;
3464
0
                                    case 'd':
3465
0
                                        if (ossl_likely(strcmp("egree", s + 7) == 0)) {
3466
                                            /* OSSL_PKEY_PARAM_EC_FIELD_DEGREE */
3467
0
                                            if (ossl_unlikely(r->field_degree != NULL)) {
3468
0
                                                ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3469
0
                                                               "param %s is repeated", s);
3470
0
                                                return 0;
3471
0
                                            }
3472
0
                                            r->field_degree = (OSSL_PARAM *)p;
3473
0
                                        }
3474
0
                                        break;
3475
0
                                    case 't':
3476
0
                                        if (ossl_likely(strcmp("ype", s + 7) == 0)) {
3477
                                            /* OSSL_PKEY_PARAM_EC_FIELD_TYPE */
3478
0
                                            if (ossl_unlikely(r->field_type != NULL)) {
3479
0
                                                ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3480
0
                                                               "param %s is repeated", s);
3481
0
                                                return 0;
3482
0
                                            }
3483
0
                                            r->field_type = (OSSL_PARAM *)p;
3484
0
                                        }
3485
0
                                    }
3486
0
                                }
3487
0
                            }
3488
0
                        }
3489
0
                    }
3490
0
                }
3491
0
                break;
3492
5.77k
            case 'g':
3493
5.77k
                switch(s[1]) {
3494
0
                default:
3495
0
                    break;
3496
0
                case 'e':
3497
0
                    if (ossl_likely(strcmp("nerator", s + 2) == 0)) {
3498
                        /* OSSL_PKEY_PARAM_EC_GENERATOR */
3499
0
                        if (ossl_unlikely(r->generator != NULL)) {
3500
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3501
0
                                           "param %s is repeated", s);
3502
0
                            return 0;
3503
0
                        }
3504
0
                        r->generator = (OSSL_PARAM *)p;
3505
0
                    }
3506
0
                    break;
3507
5.77k
                case 'r':
3508
5.77k
                    switch(s[2]) {
3509
0
                    default:
3510
0
                        break;
3511
5.77k
                    case 'o':
3512
5.77k
                        switch(s[3]) {
3513
0
                        default:
3514
0
                            break;
3515
5.77k
                        case 'u':
3516
5.77k
                            switch(s[4]) {
3517
0
                            default:
3518
0
                                break;
3519
5.77k
                            case 'p':
3520
5.77k
                                switch(s[5]) {
3521
0
                                default:
3522
0
                                    break;
3523
0
                                case '-':
3524
0
                                    if (ossl_likely(strcmp("check", s + 6) == 0)) {
3525
                                        /* OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE */
3526
0
                                        if (ossl_unlikely(r->group_check != NULL)) {
3527
0
                                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3528
0
                                                           "param %s is repeated", s);
3529
0
                                            return 0;
3530
0
                                        }
3531
0
                                        r->group_check = (OSSL_PARAM *)p;
3532
0
                                    }
3533
0
                                    break;
3534
5.77k
                                case '\0':
3535
5.77k
                                    if (ossl_unlikely(r->group_name != NULL)) {
3536
0
                                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3537
0
                                                       "param %s is repeated", s);
3538
0
                                        return 0;
3539
0
                                    }
3540
5.77k
                                    r->group_name = (OSSL_PARAM *)p;
3541
5.77k
                                }
3542
5.77k
                            }
3543
5.77k
                        }
3544
5.77k
                    }
3545
5.77k
                }
3546
5.77k
                break;
3547
5.77k
            case 'i':
3548
0
                if (ossl_likely(strcmp("nclude-public", s + 1) == 0)) {
3549
                    /* OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC */
3550
0
                    if (ossl_unlikely(r->include_public != NULL)) {
3551
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3552
0
                                       "param %s is repeated", s);
3553
0
                        return 0;
3554
0
                    }
3555
0
                    r->include_public = (OSSL_PARAM *)p;
3556
0
                }
3557
0
                break;
3558
0
            case 'k':
3559
0
                switch(s[1]) {
3560
0
                default:
3561
0
                    break;
3562
0
                case '1':
3563
0
                    switch(s[2]) {
3564
0
                    default:
3565
0
                        break;
3566
0
                    case '\0':
3567
0
# if !defined(OPENSSL_NO_EC2M)
3568
0
                        if (ossl_unlikely(r->char2_k1 != NULL)) {
3569
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3570
0
                                           "param %s is repeated", s);
3571
0
                            return 0;
3572
0
                        }
3573
0
                        r->char2_k1 = (OSSL_PARAM *)p;
3574
0
# endif
3575
0
                        break;
3576
0
                    }
3577
0
                    break;
3578
0
                case '2':
3579
0
                    switch(s[2]) {
3580
0
                    default:
3581
0
                        break;
3582
0
                    case '\0':
3583
0
# if !defined(OPENSSL_NO_EC2M)
3584
0
                        if (ossl_unlikely(r->char2_k2 != NULL)) {
3585
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3586
0
                                           "param %s is repeated", s);
3587
0
                            return 0;
3588
0
                        }
3589
0
                        r->char2_k2 = (OSSL_PARAM *)p;
3590
0
# endif
3591
0
                        break;
3592
0
                    }
3593
0
                    break;
3594
0
                case '3':
3595
0
                    switch(s[2]) {
3596
0
                    default:
3597
0
                        break;
3598
0
                    case '\0':
3599
0
# if !defined(OPENSSL_NO_EC2M)
3600
0
                        if (ossl_unlikely(r->char2_k3 != NULL)) {
3601
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3602
0
                                           "param %s is repeated", s);
3603
0
                            return 0;
3604
0
                        }
3605
0
                        r->char2_k3 = (OSSL_PARAM *)p;
3606
0
# endif
3607
0
                        break;
3608
0
                    }
3609
0
                    break;
3610
0
                }
3611
0
                break;
3612
109k
            case 'm':
3613
109k
                switch(s[1]) {
3614
0
                default:
3615
0
                    break;
3616
109k
                case 'a':
3617
109k
                    if (ossl_likely(strcmp("x-size", s + 2) == 0)) {
3618
                        /* OSSL_PKEY_PARAM_MAX_SIZE */
3619
109k
                        if (ossl_unlikely(r->maxsize != NULL)) {
3620
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3621
0
                                           "param %s is repeated", s);
3622
0
                            return 0;
3623
0
                        }
3624
109k
                        r->maxsize = (OSSL_PARAM *)p;
3625
109k
                    }
3626
109k
                    break;
3627
109k
                case '\0':
3628
0
# if !defined(OPENSSL_NO_EC2M)
3629
0
                    if (ossl_unlikely(r->char2_m != NULL)) {
3630
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3631
0
                                       "param %s is repeated", s);
3632
0
                        return 0;
3633
0
                    }
3634
0
                    r->char2_m = (OSSL_PARAM *)p;
3635
0
# endif
3636
0
                    break;
3637
109k
                }
3638
109k
                break;
3639
109k
            case 'o':
3640
0
                if (ossl_likely(strcmp("rder", s + 1) == 0)) {
3641
                    /* OSSL_PKEY_PARAM_EC_ORDER */
3642
0
                    if (ossl_unlikely(r->order != NULL)) {
3643
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3644
0
                                       "param %s is repeated", s);
3645
0
                        return 0;
3646
0
                    }
3647
0
                    r->order = (OSSL_PARAM *)p;
3648
0
                }
3649
0
                break;
3650
0
            case 'p':
3651
0
                switch(s[1]) {
3652
0
                default:
3653
0
                    break;
3654
0
                case 'o':
3655
0
                    if (ossl_likely(strcmp("int-format", s + 2) == 0)) {
3656
                        /* OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT */
3657
0
                        if (ossl_unlikely(r->pt_format != NULL)) {
3658
0
                            break;
3659
0
                        }
3660
0
                        r->pt_format = (OSSL_PARAM *)p;
3661
0
                    }
3662
0
                    break;
3663
0
                case 'r':
3664
0
                    if (ossl_likely(strcmp("iv", s + 2) == 0)) {
3665
                        /* OSSL_PKEY_PARAM_PRIV_KEY */
3666
0
                        if (ossl_unlikely(r->priv != NULL)) {
3667
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3668
0
                                           "param %s is repeated", s);
3669
0
                            return 0;
3670
0
                        }
3671
0
                        r->priv = (OSSL_PARAM *)p;
3672
0
                    }
3673
0
                    break;
3674
0
                case 'u':
3675
0
                    if (ossl_likely(strcmp("b", s + 2) == 0)) {
3676
                        /* OSSL_PKEY_PARAM_PUB_KEY */
3677
0
                        if (ossl_unlikely(r->pub != NULL)) {
3678
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3679
0
                                           "param %s is repeated", s);
3680
0
                            return 0;
3681
0
                        }
3682
0
                        r->pub = (OSSL_PARAM *)p;
3683
0
                    }
3684
0
                    break;
3685
0
                case '\0':
3686
0
                    if (ossl_unlikely(r->p != NULL)) {
3687
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3688
0
                                       "param %s is repeated", s);
3689
0
                        return 0;
3690
0
                    }
3691
0
                    r->p = (OSSL_PARAM *)p;
3692
0
                }
3693
0
                break;
3694
0
            case 'q':
3695
0
                switch(s[1]) {
3696
0
                default:
3697
0
                    break;
3698
0
                case 'x':
3699
0
                    switch(s[2]) {
3700
0
                    default:
3701
0
                        break;
3702
0
                    case '\0':
3703
0
                        if (ossl_unlikely(r->pub_x != NULL)) {
3704
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3705
0
                                           "param %s is repeated", s);
3706
0
                            return 0;
3707
0
                        }
3708
0
                        r->pub_x = (OSSL_PARAM *)p;
3709
0
                    }
3710
0
                    break;
3711
0
                case 'y':
3712
0
                    switch(s[2]) {
3713
0
                    default:
3714
0
                        break;
3715
0
                    case '\0':
3716
0
                        if (ossl_unlikely(r->pub_y != NULL)) {
3717
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3718
0
                                           "param %s is repeated", s);
3719
0
                            return 0;
3720
0
                        }
3721
0
                        r->pub_y = (OSSL_PARAM *)p;
3722
0
                    }
3723
0
                }
3724
0
                break;
3725
218k
            case 's':
3726
218k
                switch(s[1]) {
3727
0
                default:
3728
0
                    break;
3729
218k
                case 'e':
3730
218k
                    switch(s[2]) {
3731
0
                    default:
3732
0
                        break;
3733
218k
                    case 'c':
3734
218k
                        switch(s[3]) {
3735
0
                        default:
3736
0
                            break;
3737
218k
                        case 'u':
3738
218k
                            switch(s[4]) {
3739
0
                            default:
3740
0
                                break;
3741
218k
                            case 'r':
3742
218k
                                switch(s[5]) {
3743
0
                                default:
3744
0
                                    break;
3745
218k
                                case 'i':
3746
218k
                                    switch(s[6]) {
3747
0
                                    default:
3748
0
                                        break;
3749
218k
                                    case 't':
3750
218k
                                        switch(s[7]) {
3751
0
                                        default:
3752
0
                                            break;
3753
218k
                                        case 'y':
3754
218k
                                            switch(s[8]) {
3755
0
                                            default:
3756
0
                                                break;
3757
218k
                                            case '-':
3758
218k
                                                switch(s[9]) {
3759
0
                                                default:
3760
0
                                                    break;
3761
109k
                                                case 'b':
3762
109k
                                                    if (ossl_likely(strcmp("its", s + 10) == 0)) {
3763
                                                        /* OSSL_PKEY_PARAM_SECURITY_BITS */
3764
109k
                                                        if (ossl_unlikely(r->secbits != NULL)) {
3765
0
                                                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3766
0
                                                                           "param %s is repeated", s);
3767
0
                                                            return 0;
3768
0
                                                        }
3769
109k
                                                        r->secbits = (OSSL_PARAM *)p;
3770
109k
                                                    }
3771
109k
                                                    break;
3772
109k
                                                case 'c':
3773
109k
                                                    if (ossl_likely(strcmp("ategory", s + 10) == 0)) {
3774
                                                        /* OSSL_PKEY_PARAM_SECURITY_CATEGORY */
3775
109k
                                                        if (ossl_unlikely(r->seccat != NULL)) {
3776
0
                                                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3777
0
                                                                           "param %s is repeated", s);
3778
0
                                                            return 0;
3779
0
                                                        }
3780
109k
                                                        r->seccat = (OSSL_PARAM *)p;
3781
109k
                                                    }
3782
218k
                                                }
3783
218k
                                            }
3784
218k
                                        }
3785
218k
                                    }
3786
218k
                                }
3787
218k
                            }
3788
218k
                        }
3789
218k
                        break;
3790
218k
                    case 'e':
3791
0
                        if (ossl_likely(strcmp("d", s + 3) == 0)) {
3792
                            /* OSSL_PKEY_PARAM_EC_SEED */
3793
0
                            if (ossl_unlikely(r->seed != NULL)) {
3794
0
                                ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3795
0
                                               "param %s is repeated", s);
3796
0
                                return 0;
3797
0
                            }
3798
0
                            r->seed = (OSSL_PARAM *)p;
3799
0
                        }
3800
218k
                    }
3801
218k
                }
3802
218k
                break;
3803
218k
            case 't':
3804
0
# if !defined(OPENSSL_NO_EC2M)
3805
0
                if (ossl_likely(strcmp("p", s + 1) == 0)) {
3806
                    /* OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS */
3807
0
                    if (ossl_unlikely(r->char2_tp != NULL)) {
3808
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3809
0
                                       "param %s is repeated", s);
3810
0
                        return 0;
3811
0
                    }
3812
0
                    r->char2_tp = (OSSL_PARAM *)p;
3813
0
                }
3814
0
# endif
3815
0
                break;
3816
0
            case 'u':
3817
0
                if (ossl_likely(strcmp("se-cofactor-flag", s + 1) == 0)) {
3818
                    /* OSSL_PKEY_PARAM_USE_COFACTOR_ECDH */
3819
0
                    if (ossl_unlikely(r->use_cofactor != NULL)) {
3820
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3821
0
                                       "param %s is repeated", s);
3822
0
                        return 0;
3823
0
                    }
3824
0
                    r->use_cofactor = (OSSL_PARAM *)p;
3825
0
                }
3826
446k
            }
3827
119k
    return 1;
3828
119k
}
Unexecuted instantiation: ec_lib.c:ec_get_params_decoder
ec_kmgmt.c:ec_get_params_decoder
Line
Count
Source
3291
119k
{
3292
119k
    const char *s;
3293
3294
119k
    memset(r, 0, sizeof(*r));
3295
119k
    if (p != NULL)
3296
566k
        for (; (s = p->key) != NULL; p++)
3297
446k
            switch(s[0]) {
3298
0
            default:
3299
0
                break;
3300
0
            case 'a':
3301
0
                switch(s[1]) {
3302
0
                default:
3303
0
                    break;
3304
0
                case '\0':
3305
0
                    if (ossl_unlikely(r->a != NULL)) {
3306
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3307
0
                                       "param %s is repeated", s);
3308
0
                        return 0;
3309
0
                    }
3310
0
                    r->a = (OSSL_PARAM *)p;
3311
0
                }
3312
0
                break;
3313
109k
            case 'b':
3314
109k
                switch(s[1]) {
3315
0
                default:
3316
0
                    break;
3317
0
                case 'a':
3318
0
# if !defined(OPENSSL_NO_EC2M)
3319
0
                    if (ossl_likely(strcmp("sis-type", s + 2) == 0)) {
3320
                        /* OSSL_PKEY_PARAM_EC_CHAR2_TYPE */
3321
0
                        if (ossl_unlikely(r->char2_type != NULL)) {
3322
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3323
0
                                           "param %s is repeated", s);
3324
0
                            return 0;
3325
0
                        }
3326
0
                        r->char2_type = (OSSL_PARAM *)p;
3327
0
                    }
3328
0
# endif
3329
0
                    break;
3330
109k
                case 'i':
3331
109k
                    if (ossl_likely(strcmp("ts", s + 2) == 0)) {
3332
                        /* OSSL_PKEY_PARAM_BITS */
3333
109k
                        if (ossl_unlikely(r->bits != NULL)) {
3334
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3335
0
                                           "param %s is repeated", s);
3336
0
                            return 0;
3337
0
                        }
3338
109k
                        r->bits = (OSSL_PARAM *)p;
3339
109k
                    }
3340
109k
                    break;
3341
109k
                case '\0':
3342
0
                    if (ossl_unlikely(r->b != NULL)) {
3343
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3344
0
                                       "param %s is repeated", s);
3345
0
                        return 0;
3346
0
                    }
3347
0
                    r->b = (OSSL_PARAM *)p;
3348
109k
                }
3349
109k
                break;
3350
109k
            case 'c':
3351
0
                if (ossl_likely(strcmp("ofactor", s + 1) == 0)) {
3352
                    /* OSSL_PKEY_PARAM_EC_COFACTOR */
3353
0
                    if (ossl_unlikely(r->cofactor != NULL)) {
3354
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3355
0
                                       "param %s is repeated", s);
3356
0
                        return 0;
3357
0
                    }
3358
0
                    r->cofactor = (OSSL_PARAM *)p;
3359
0
                }
3360
0
                break;
3361
14
            case 'd':
3362
14
                switch(s[1]) {
3363
0
                default:
3364
0
                    break;
3365
14
                case 'e':
3366
14
                    switch(s[2]) {
3367
0
                    default:
3368
0
                        break;
3369
0
                    case 'c':
3370
0
                        if (ossl_likely(strcmp("oded-from-explicit", s + 3) == 0)) {
3371
                            /* OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS */
3372
0
                            if (ossl_unlikely(r->decoded != NULL)) {
3373
0
                                ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3374
0
                                               "param %s is repeated", s);
3375
0
                                return 0;
3376
0
                            }
3377
0
                            r->decoded = (OSSL_PARAM *)p;
3378
0
                        }
3379
0
                        break;
3380
14
                    case 'f':
3381
14
                        if (ossl_likely(strcmp("ault-digest", s + 3) == 0)) {
3382
                            /* OSSL_PKEY_PARAM_DEFAULT_DIGEST */
3383
14
                            if (ossl_unlikely(r->default_digest != NULL)) {
3384
0
                                ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3385
0
                                               "param %s is repeated", s);
3386
0
                                return 0;
3387
0
                            }
3388
14
                            r->default_digest = (OSSL_PARAM *)p;
3389
14
                        }
3390
14
                    }
3391
14
                }
3392
14
                break;
3393
4.12k
            case 'e':
3394
4.12k
                switch(s[1]) {
3395
0
                default:
3396
0
                    break;
3397
4.12k
                case 'n':
3398
4.12k
                    switch(s[2]) {
3399
0
                    default:
3400
0
                        break;
3401
4.12k
                    case 'c':
3402
4.12k
                        switch(s[3]) {
3403
0
                        default:
3404
0
                            break;
3405
4.12k
                        case 'o':
3406
4.12k
                            switch(s[4]) {
3407
0
                            default:
3408
0
                                break;
3409
4.12k
                            case 'd':
3410
4.12k
                                switch(s[5]) {
3411
0
                                default:
3412
0
                                    break;
3413
4.12k
                                case 'e':
3414
4.12k
                                    if (ossl_likely(strcmp("d-pub-key", s + 6) == 0)) {
3415
                                        /* OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY */
3416
4.12k
                                        if (ossl_unlikely(r->encoded_pub != NULL)) {
3417
0
                                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3418
0
                                                           "param %s is repeated", s);
3419
0
                                            return 0;
3420
0
                                        }
3421
4.12k
                                        r->encoded_pub = (OSSL_PARAM *)p;
3422
4.12k
                                    }
3423
4.12k
                                    break;
3424
4.12k
                                case 'i':
3425
0
                                    if (ossl_likely(strcmp("ng", s + 6) == 0)) {
3426
                                        /* OSSL_PKEY_PARAM_EC_ENCODING */
3427
0
                                        if (ossl_unlikely(r->encoding != NULL)) {
3428
0
                                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3429
0
                                                           "param %s is repeated", s);
3430
0
                                            return 0;
3431
0
                                        }
3432
0
                                        r->encoding = (OSSL_PARAM *)p;
3433
0
                                    }
3434
4.12k
                                }
3435
4.12k
                            }
3436
4.12k
                        }
3437
4.12k
                    }
3438
4.12k
                }
3439
4.12k
                break;
3440
4.12k
            case 'f':
3441
0
                switch(s[1]) {
3442
0
                default:
3443
0
                    break;
3444
0
                case 'i':
3445
0
                    switch(s[2]) {
3446
0
                    default:
3447
0
                        break;
3448
0
                    case 'e':
3449
0
                        switch(s[3]) {
3450
0
                        default:
3451
0
                            break;
3452
0
                        case 'l':
3453
0
                            switch(s[4]) {
3454
0
                            default:
3455
0
                                break;
3456
0
                            case 'd':
3457
0
                                switch(s[5]) {
3458
0
                                default:
3459
0
                                    break;
3460
0
                                case '-':
3461
0
                                    switch(s[6]) {
3462
0
                                    default:
3463
0
                                        break;
3464
0
                                    case 'd':
3465
0
                                        if (ossl_likely(strcmp("egree", s + 7) == 0)) {
3466
                                            /* OSSL_PKEY_PARAM_EC_FIELD_DEGREE */
3467
0
                                            if (ossl_unlikely(r->field_degree != NULL)) {
3468
0
                                                ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3469
0
                                                               "param %s is repeated", s);
3470
0
                                                return 0;
3471
0
                                            }
3472
0
                                            r->field_degree = (OSSL_PARAM *)p;
3473
0
                                        }
3474
0
                                        break;
3475
0
                                    case 't':
3476
0
                                        if (ossl_likely(strcmp("ype", s + 7) == 0)) {
3477
                                            /* OSSL_PKEY_PARAM_EC_FIELD_TYPE */
3478
0
                                            if (ossl_unlikely(r->field_type != NULL)) {
3479
0
                                                ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3480
0
                                                               "param %s is repeated", s);
3481
0
                                                return 0;
3482
0
                                            }
3483
0
                                            r->field_type = (OSSL_PARAM *)p;
3484
0
                                        }
3485
0
                                    }
3486
0
                                }
3487
0
                            }
3488
0
                        }
3489
0
                    }
3490
0
                }
3491
0
                break;
3492
5.77k
            case 'g':
3493
5.77k
                switch(s[1]) {
3494
0
                default:
3495
0
                    break;
3496
0
                case 'e':
3497
0
                    if (ossl_likely(strcmp("nerator", s + 2) == 0)) {
3498
                        /* OSSL_PKEY_PARAM_EC_GENERATOR */
3499
0
                        if (ossl_unlikely(r->generator != NULL)) {
3500
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3501
0
                                           "param %s is repeated", s);
3502
0
                            return 0;
3503
0
                        }
3504
0
                        r->generator = (OSSL_PARAM *)p;
3505
0
                    }
3506
0
                    break;
3507
5.77k
                case 'r':
3508
5.77k
                    switch(s[2]) {
3509
0
                    default:
3510
0
                        break;
3511
5.77k
                    case 'o':
3512
5.77k
                        switch(s[3]) {
3513
0
                        default:
3514
0
                            break;
3515
5.77k
                        case 'u':
3516
5.77k
                            switch(s[4]) {
3517
0
                            default:
3518
0
                                break;
3519
5.77k
                            case 'p':
3520
5.77k
                                switch(s[5]) {
3521
0
                                default:
3522
0
                                    break;
3523
0
                                case '-':
3524
0
                                    if (ossl_likely(strcmp("check", s + 6) == 0)) {
3525
                                        /* OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE */
3526
0
                                        if (ossl_unlikely(r->group_check != NULL)) {
3527
0
                                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3528
0
                                                           "param %s is repeated", s);
3529
0
                                            return 0;
3530
0
                                        }
3531
0
                                        r->group_check = (OSSL_PARAM *)p;
3532
0
                                    }
3533
0
                                    break;
3534
5.77k
                                case '\0':
3535
5.77k
                                    if (ossl_unlikely(r->group_name != NULL)) {
3536
0
                                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3537
0
                                                       "param %s is repeated", s);
3538
0
                                        return 0;
3539
0
                                    }
3540
5.77k
                                    r->group_name = (OSSL_PARAM *)p;
3541
5.77k
                                }
3542
5.77k
                            }
3543
5.77k
                        }
3544
5.77k
                    }
3545
5.77k
                }
3546
5.77k
                break;
3547
5.77k
            case 'i':
3548
0
                if (ossl_likely(strcmp("nclude-public", s + 1) == 0)) {
3549
                    /* OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC */
3550
0
                    if (ossl_unlikely(r->include_public != NULL)) {
3551
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3552
0
                                       "param %s is repeated", s);
3553
0
                        return 0;
3554
0
                    }
3555
0
                    r->include_public = (OSSL_PARAM *)p;
3556
0
                }
3557
0
                break;
3558
0
            case 'k':
3559
0
                switch(s[1]) {
3560
0
                default:
3561
0
                    break;
3562
0
                case '1':
3563
0
                    switch(s[2]) {
3564
0
                    default:
3565
0
                        break;
3566
0
                    case '\0':
3567
0
# if !defined(OPENSSL_NO_EC2M)
3568
0
                        if (ossl_unlikely(r->char2_k1 != NULL)) {
3569
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3570
0
                                           "param %s is repeated", s);
3571
0
                            return 0;
3572
0
                        }
3573
0
                        r->char2_k1 = (OSSL_PARAM *)p;
3574
0
# endif
3575
0
                        break;
3576
0
                    }
3577
0
                    break;
3578
0
                case '2':
3579
0
                    switch(s[2]) {
3580
0
                    default:
3581
0
                        break;
3582
0
                    case '\0':
3583
0
# if !defined(OPENSSL_NO_EC2M)
3584
0
                        if (ossl_unlikely(r->char2_k2 != NULL)) {
3585
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3586
0
                                           "param %s is repeated", s);
3587
0
                            return 0;
3588
0
                        }
3589
0
                        r->char2_k2 = (OSSL_PARAM *)p;
3590
0
# endif
3591
0
                        break;
3592
0
                    }
3593
0
                    break;
3594
0
                case '3':
3595
0
                    switch(s[2]) {
3596
0
                    default:
3597
0
                        break;
3598
0
                    case '\0':
3599
0
# if !defined(OPENSSL_NO_EC2M)
3600
0
                        if (ossl_unlikely(r->char2_k3 != NULL)) {
3601
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3602
0
                                           "param %s is repeated", s);
3603
0
                            return 0;
3604
0
                        }
3605
0
                        r->char2_k3 = (OSSL_PARAM *)p;
3606
0
# endif
3607
0
                        break;
3608
0
                    }
3609
0
                    break;
3610
0
                }
3611
0
                break;
3612
109k
            case 'm':
3613
109k
                switch(s[1]) {
3614
0
                default:
3615
0
                    break;
3616
109k
                case 'a':
3617
109k
                    if (ossl_likely(strcmp("x-size", s + 2) == 0)) {
3618
                        /* OSSL_PKEY_PARAM_MAX_SIZE */
3619
109k
                        if (ossl_unlikely(r->maxsize != NULL)) {
3620
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3621
0
                                           "param %s is repeated", s);
3622
0
                            return 0;
3623
0
                        }
3624
109k
                        r->maxsize = (OSSL_PARAM *)p;
3625
109k
                    }
3626
109k
                    break;
3627
109k
                case '\0':
3628
0
# if !defined(OPENSSL_NO_EC2M)
3629
0
                    if (ossl_unlikely(r->char2_m != NULL)) {
3630
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3631
0
                                       "param %s is repeated", s);
3632
0
                        return 0;
3633
0
                    }
3634
0
                    r->char2_m = (OSSL_PARAM *)p;
3635
0
# endif
3636
0
                    break;
3637
109k
                }
3638
109k
                break;
3639
109k
            case 'o':
3640
0
                if (ossl_likely(strcmp("rder", s + 1) == 0)) {
3641
                    /* OSSL_PKEY_PARAM_EC_ORDER */
3642
0
                    if (ossl_unlikely(r->order != NULL)) {
3643
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3644
0
                                       "param %s is repeated", s);
3645
0
                        return 0;
3646
0
                    }
3647
0
                    r->order = (OSSL_PARAM *)p;
3648
0
                }
3649
0
                break;
3650
0
            case 'p':
3651
0
                switch(s[1]) {
3652
0
                default:
3653
0
                    break;
3654
0
                case 'o':
3655
0
                    if (ossl_likely(strcmp("int-format", s + 2) == 0)) {
3656
                        /* OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT */
3657
0
                        if (ossl_unlikely(r->pt_format != NULL)) {
3658
0
                            break;
3659
0
                        }
3660
0
                        r->pt_format = (OSSL_PARAM *)p;
3661
0
                    }
3662
0
                    break;
3663
0
                case 'r':
3664
0
                    if (ossl_likely(strcmp("iv", s + 2) == 0)) {
3665
                        /* OSSL_PKEY_PARAM_PRIV_KEY */
3666
0
                        if (ossl_unlikely(r->priv != NULL)) {
3667
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3668
0
                                           "param %s is repeated", s);
3669
0
                            return 0;
3670
0
                        }
3671
0
                        r->priv = (OSSL_PARAM *)p;
3672
0
                    }
3673
0
                    break;
3674
0
                case 'u':
3675
0
                    if (ossl_likely(strcmp("b", s + 2) == 0)) {
3676
                        /* OSSL_PKEY_PARAM_PUB_KEY */
3677
0
                        if (ossl_unlikely(r->pub != NULL)) {
3678
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3679
0
                                           "param %s is repeated", s);
3680
0
                            return 0;
3681
0
                        }
3682
0
                        r->pub = (OSSL_PARAM *)p;
3683
0
                    }
3684
0
                    break;
3685
0
                case '\0':
3686
0
                    if (ossl_unlikely(r->p != NULL)) {
3687
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3688
0
                                       "param %s is repeated", s);
3689
0
                        return 0;
3690
0
                    }
3691
0
                    r->p = (OSSL_PARAM *)p;
3692
0
                }
3693
0
                break;
3694
0
            case 'q':
3695
0
                switch(s[1]) {
3696
0
                default:
3697
0
                    break;
3698
0
                case 'x':
3699
0
                    switch(s[2]) {
3700
0
                    default:
3701
0
                        break;
3702
0
                    case '\0':
3703
0
                        if (ossl_unlikely(r->pub_x != NULL)) {
3704
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3705
0
                                           "param %s is repeated", s);
3706
0
                            return 0;
3707
0
                        }
3708
0
                        r->pub_x = (OSSL_PARAM *)p;
3709
0
                    }
3710
0
                    break;
3711
0
                case 'y':
3712
0
                    switch(s[2]) {
3713
0
                    default:
3714
0
                        break;
3715
0
                    case '\0':
3716
0
                        if (ossl_unlikely(r->pub_y != NULL)) {
3717
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3718
0
                                           "param %s is repeated", s);
3719
0
                            return 0;
3720
0
                        }
3721
0
                        r->pub_y = (OSSL_PARAM *)p;
3722
0
                    }
3723
0
                }
3724
0
                break;
3725
218k
            case 's':
3726
218k
                switch(s[1]) {
3727
0
                default:
3728
0
                    break;
3729
218k
                case 'e':
3730
218k
                    switch(s[2]) {
3731
0
                    default:
3732
0
                        break;
3733
218k
                    case 'c':
3734
218k
                        switch(s[3]) {
3735
0
                        default:
3736
0
                            break;
3737
218k
                        case 'u':
3738
218k
                            switch(s[4]) {
3739
0
                            default:
3740
0
                                break;
3741
218k
                            case 'r':
3742
218k
                                switch(s[5]) {
3743
0
                                default:
3744
0
                                    break;
3745
218k
                                case 'i':
3746
218k
                                    switch(s[6]) {
3747
0
                                    default:
3748
0
                                        break;
3749
218k
                                    case 't':
3750
218k
                                        switch(s[7]) {
3751
0
                                        default:
3752
0
                                            break;
3753
218k
                                        case 'y':
3754
218k
                                            switch(s[8]) {
3755
0
                                            default:
3756
0
                                                break;
3757
218k
                                            case '-':
3758
218k
                                                switch(s[9]) {
3759
0
                                                default:
3760
0
                                                    break;
3761
109k
                                                case 'b':
3762
109k
                                                    if (ossl_likely(strcmp("its", s + 10) == 0)) {
3763
                                                        /* OSSL_PKEY_PARAM_SECURITY_BITS */
3764
109k
                                                        if (ossl_unlikely(r->secbits != NULL)) {
3765
0
                                                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3766
0
                                                                           "param %s is repeated", s);
3767
0
                                                            return 0;
3768
0
                                                        }
3769
109k
                                                        r->secbits = (OSSL_PARAM *)p;
3770
109k
                                                    }
3771
109k
                                                    break;
3772
109k
                                                case 'c':
3773
109k
                                                    if (ossl_likely(strcmp("ategory", s + 10) == 0)) {
3774
                                                        /* OSSL_PKEY_PARAM_SECURITY_CATEGORY */
3775
109k
                                                        if (ossl_unlikely(r->seccat != NULL)) {
3776
0
                                                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3777
0
                                                                           "param %s is repeated", s);
3778
0
                                                            return 0;
3779
0
                                                        }
3780
109k
                                                        r->seccat = (OSSL_PARAM *)p;
3781
109k
                                                    }
3782
218k
                                                }
3783
218k
                                            }
3784
218k
                                        }
3785
218k
                                    }
3786
218k
                                }
3787
218k
                            }
3788
218k
                        }
3789
218k
                        break;
3790
218k
                    case 'e':
3791
0
                        if (ossl_likely(strcmp("d", s + 3) == 0)) {
3792
                            /* OSSL_PKEY_PARAM_EC_SEED */
3793
0
                            if (ossl_unlikely(r->seed != NULL)) {
3794
0
                                ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3795
0
                                               "param %s is repeated", s);
3796
0
                                return 0;
3797
0
                            }
3798
0
                            r->seed = (OSSL_PARAM *)p;
3799
0
                        }
3800
218k
                    }
3801
218k
                }
3802
218k
                break;
3803
218k
            case 't':
3804
0
# if !defined(OPENSSL_NO_EC2M)
3805
0
                if (ossl_likely(strcmp("p", s + 1) == 0)) {
3806
                    /* OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS */
3807
0
                    if (ossl_unlikely(r->char2_tp != NULL)) {
3808
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3809
0
                                       "param %s is repeated", s);
3810
0
                        return 0;
3811
0
                    }
3812
0
                    r->char2_tp = (OSSL_PARAM *)p;
3813
0
                }
3814
0
# endif
3815
0
                break;
3816
0
            case 'u':
3817
0
                if (ossl_likely(strcmp("se-cofactor-flag", s + 1) == 0)) {
3818
                    /* OSSL_PKEY_PARAM_USE_COFACTOR_ECDH */
3819
0
                    if (ossl_unlikely(r->use_cofactor != NULL)) {
3820
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3821
0
                                       "param %s is repeated", s);
3822
0
                        return 0;
3823
0
                    }
3824
0
                    r->use_cofactor = (OSSL_PARAM *)p;
3825
0
                }
3826
446k
            }
3827
119k
    return 1;
3828
119k
}
Unexecuted instantiation: ec_ameth.c:ec_get_params_decoder
Unexecuted instantiation: ec_backend.c:ec_get_params_decoder
3829
#endif
3830
/* End of machine generated */
3831
3832
#define sm2_get_params_st ec_params_st
3833
/* Machine generated */
3834
#ifndef sm2_get_params_list
3835
static ossl_unused const OSSL_PARAM sm2_get_params_list[] = {
3836
    OSSL_PARAM_int(OSSL_PKEY_PARAM_BITS, NULL),
3837
    OSSL_PARAM_int(OSSL_PKEY_PARAM_EC_FIELD_DEGREE, NULL),
3838
    OSSL_PARAM_int(OSSL_PKEY_PARAM_SECURITY_BITS, NULL),
3839
    OSSL_PARAM_int(OSSL_PKEY_PARAM_MAX_SIZE, NULL),
3840
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_DEFAULT_DIGEST, NULL, 0),
3841
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY, NULL, 0),
3842
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_GROUP_NAME, NULL, 0),
3843
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_ENCODING, NULL, 0),
3844
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT, NULL, 0),
3845
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_FIELD_TYPE, NULL, 0),
3846
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_P, NULL, 0),
3847
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_A, NULL, 0),
3848
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_B, NULL, 0),
3849
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_EC_GENERATOR, NULL, 0),
3850
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_ORDER, NULL, 0),
3851
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_COFACTOR, NULL, 0),
3852
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_EC_SEED, NULL, 0),
3853
    OSSL_PARAM_int(OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS, NULL),
3854
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_PUB_KEY, NULL, 0),
3855
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_PRIV_KEY, NULL, 0),
3856
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_PUB_X, NULL, 0),
3857
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_PUB_Y, NULL, 0),
3858
    OSSL_PARAM_END
3859
};
3860
#endif
3861
3862
#ifndef sm2_get_params_st
3863
struct sm2_get_params_st {
3864
    OSSL_PARAM *a;
3865
    OSSL_PARAM *b;
3866
    OSSL_PARAM *bits;
3867
    OSSL_PARAM *cofactor;
3868
    OSSL_PARAM *decoded;
3869
    OSSL_PARAM *default_digest;
3870
    OSSL_PARAM *encoded_pub;
3871
    OSSL_PARAM *encoding;
3872
    OSSL_PARAM *field_degree;
3873
    OSSL_PARAM *field_type;
3874
    OSSL_PARAM *generator;
3875
    OSSL_PARAM *group_name;
3876
    OSSL_PARAM *maxsize;
3877
    OSSL_PARAM *order;
3878
    OSSL_PARAM *p;
3879
    OSSL_PARAM *priv;
3880
    OSSL_PARAM *pt_format;
3881
    OSSL_PARAM *pub;
3882
    OSSL_PARAM *pub_x;
3883
    OSSL_PARAM *pub_y;
3884
    OSSL_PARAM *secbits;
3885
    OSSL_PARAM *seed;
3886
};
3887
#endif
3888
3889
#ifndef sm2_get_params_decoder
3890
static ossl_unused int sm2_get_params_decoder
3891
    (const OSSL_PARAM *p, struct sm2_get_params_st *r)
3892
1.13k
{
3893
1.13k
    const char *s;
3894
3895
1.13k
    memset(r, 0, sizeof(*r));
3896
1.13k
    if (p != NULL)
3897
5.27k
        for (; (s = p->key) != NULL; p++)
3898
4.14k
            switch(s[0]) {
3899
0
            default:
3900
0
                break;
3901
0
            case 'a':
3902
0
                switch(s[1]) {
3903
0
                default:
3904
0
                    break;
3905
0
                case '\0':
3906
0
                    if (ossl_unlikely(r->a != NULL)) {
3907
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3908
0
                                       "param %s is repeated", s);
3909
0
                        return 0;
3910
0
                    }
3911
0
                    r->a = (OSSL_PARAM *)p;
3912
0
                }
3913
0
                break;
3914
1.00k
            case 'b':
3915
1.00k
                switch(s[1]) {
3916
0
                default:
3917
0
                    break;
3918
1.00k
                case 'i':
3919
1.00k
                    if (ossl_likely(strcmp("ts", s + 2) == 0)) {
3920
                        /* OSSL_PKEY_PARAM_BITS */
3921
1.00k
                        if (ossl_unlikely(r->bits != NULL)) {
3922
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3923
0
                                           "param %s is repeated", s);
3924
0
                            return 0;
3925
0
                        }
3926
1.00k
                        r->bits = (OSSL_PARAM *)p;
3927
1.00k
                    }
3928
1.00k
                    break;
3929
1.00k
                case '\0':
3930
0
                    if (ossl_unlikely(r->b != NULL)) {
3931
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3932
0
                                       "param %s is repeated", s);
3933
0
                        return 0;
3934
0
                    }
3935
0
                    r->b = (OSSL_PARAM *)p;
3936
1.00k
                }
3937
1.00k
                break;
3938
1.00k
            case 'c':
3939
0
                if (ossl_likely(strcmp("ofactor", s + 1) == 0)) {
3940
                    /* OSSL_PKEY_PARAM_EC_COFACTOR */
3941
0
                    if (ossl_unlikely(r->cofactor != NULL)) {
3942
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3943
0
                                       "param %s is repeated", s);
3944
0
                        return 0;
3945
0
                    }
3946
0
                    r->cofactor = (OSSL_PARAM *)p;
3947
0
                }
3948
0
                break;
3949
0
            case 'd':
3950
0
                switch(s[1]) {
3951
0
                default:
3952
0
                    break;
3953
0
                case 'e':
3954
0
                    switch(s[2]) {
3955
0
                    default:
3956
0
                        break;
3957
0
                    case 'c':
3958
0
                        if (ossl_likely(strcmp("oded-from-explicit", s + 3) == 0)) {
3959
                            /* OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS */
3960
0
                            if (ossl_unlikely(r->decoded != NULL)) {
3961
0
                                ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3962
0
                                               "param %s is repeated", s);
3963
0
                                return 0;
3964
0
                            }
3965
0
                            r->decoded = (OSSL_PARAM *)p;
3966
0
                        }
3967
0
                        break;
3968
0
                    case 'f':
3969
0
                        if (ossl_likely(strcmp("ault-digest", s + 3) == 0)) {
3970
                            /* OSSL_PKEY_PARAM_DEFAULT_DIGEST */
3971
0
                            if (ossl_unlikely(r->default_digest != NULL)) {
3972
0
                                ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3973
0
                                               "param %s is repeated", s);
3974
0
                                return 0;
3975
0
                            }
3976
0
                            r->default_digest = (OSSL_PARAM *)p;
3977
0
                        }
3978
0
                    }
3979
0
                }
3980
0
                break;
3981
128
            case 'e':
3982
128
                switch(s[1]) {
3983
0
                default:
3984
0
                    break;
3985
128
                case 'n':
3986
128
                    switch(s[2]) {
3987
0
                    default:
3988
0
                        break;
3989
128
                    case 'c':
3990
128
                        switch(s[3]) {
3991
0
                        default:
3992
0
                            break;
3993
128
                        case 'o':
3994
128
                            switch(s[4]) {
3995
0
                            default:
3996
0
                                break;
3997
128
                            case 'd':
3998
128
                                switch(s[5]) {
3999
0
                                default:
4000
0
                                    break;
4001
128
                                case 'e':
4002
128
                                    if (ossl_likely(strcmp("d-pub-key", s + 6) == 0)) {
4003
                                        /* OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY */
4004
128
                                        if (ossl_unlikely(r->encoded_pub != NULL)) {
4005
0
                                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4006
0
                                                           "param %s is repeated", s);
4007
0
                                            return 0;
4008
0
                                        }
4009
128
                                        r->encoded_pub = (OSSL_PARAM *)p;
4010
128
                                    }
4011
128
                                    break;
4012
128
                                case 'i':
4013
0
                                    if (ossl_likely(strcmp("ng", s + 6) == 0)) {
4014
                                        /* OSSL_PKEY_PARAM_EC_ENCODING */
4015
0
                                        if (ossl_unlikely(r->encoding != NULL)) {
4016
0
                                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4017
0
                                                           "param %s is repeated", s);
4018
0
                                            return 0;
4019
0
                                        }
4020
0
                                        r->encoding = (OSSL_PARAM *)p;
4021
0
                                    }
4022
128
                                }
4023
128
                            }
4024
128
                        }
4025
128
                    }
4026
128
                }
4027
128
                break;
4028
128
            case 'f':
4029
0
                switch(s[1]) {
4030
0
                default:
4031
0
                    break;
4032
0
                case 'i':
4033
0
                    switch(s[2]) {
4034
0
                    default:
4035
0
                        break;
4036
0
                    case 'e':
4037
0
                        switch(s[3]) {
4038
0
                        default:
4039
0
                            break;
4040
0
                        case 'l':
4041
0
                            switch(s[4]) {
4042
0
                            default:
4043
0
                                break;
4044
0
                            case 'd':
4045
0
                                switch(s[5]) {
4046
0
                                default:
4047
0
                                    break;
4048
0
                                case '-':
4049
0
                                    switch(s[6]) {
4050
0
                                    default:
4051
0
                                        break;
4052
0
                                    case 'd':
4053
0
                                        if (ossl_likely(strcmp("egree", s + 7) == 0)) {
4054
                                            /* OSSL_PKEY_PARAM_EC_FIELD_DEGREE */
4055
0
                                            if (ossl_unlikely(r->field_degree != NULL)) {
4056
0
                                                ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4057
0
                                                               "param %s is repeated", s);
4058
0
                                                return 0;
4059
0
                                            }
4060
0
                                            r->field_degree = (OSSL_PARAM *)p;
4061
0
                                        }
4062
0
                                        break;
4063
0
                                    case 't':
4064
0
                                        if (ossl_likely(strcmp("ype", s + 7) == 0)) {
4065
                                            /* OSSL_PKEY_PARAM_EC_FIELD_TYPE */
4066
0
                                            if (ossl_unlikely(r->field_type != NULL)) {
4067
0
                                                ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4068
0
                                                               "param %s is repeated", s);
4069
0
                                                return 0;
4070
0
                                            }
4071
0
                                            r->field_type = (OSSL_PARAM *)p;
4072
0
                                        }
4073
0
                                    }
4074
0
                                }
4075
0
                            }
4076
0
                        }
4077
0
                    }
4078
0
                }
4079
0
                break;
4080
0
            case 'g':
4081
0
                switch(s[1]) {
4082
0
                default:
4083
0
                    break;
4084
0
                case 'e':
4085
0
                    if (ossl_likely(strcmp("nerator", s + 2) == 0)) {
4086
                        /* OSSL_PKEY_PARAM_EC_GENERATOR */
4087
0
                        if (ossl_unlikely(r->generator != NULL)) {
4088
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4089
0
                                           "param %s is repeated", s);
4090
0
                            return 0;
4091
0
                        }
4092
0
                        r->generator = (OSSL_PARAM *)p;
4093
0
                    }
4094
0
                    break;
4095
0
                case 'r':
4096
0
                    if (ossl_likely(strcmp("oup", s + 2) == 0)) {
4097
                        /* OSSL_PKEY_PARAM_GROUP_NAME */
4098
0
                        if (ossl_unlikely(r->group_name != NULL)) {
4099
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4100
0
                                           "param %s is repeated", s);
4101
0
                            return 0;
4102
0
                        }
4103
0
                        r->group_name = (OSSL_PARAM *)p;
4104
0
                    }
4105
0
                }
4106
0
                break;
4107
1.00k
            case 'm':
4108
1.00k
                if (ossl_likely(strcmp("ax-size", s + 1) == 0)) {
4109
                    /* OSSL_PKEY_PARAM_MAX_SIZE */
4110
1.00k
                    if (ossl_unlikely(r->maxsize != NULL)) {
4111
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4112
0
                                       "param %s is repeated", s);
4113
0
                        return 0;
4114
0
                    }
4115
1.00k
                    r->maxsize = (OSSL_PARAM *)p;
4116
1.00k
                }
4117
1.00k
                break;
4118
1.00k
            case 'o':
4119
0
                if (ossl_likely(strcmp("rder", s + 1) == 0)) {
4120
                    /* OSSL_PKEY_PARAM_EC_ORDER */
4121
0
                    if (ossl_unlikely(r->order != NULL)) {
4122
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4123
0
                                       "param %s is repeated", s);
4124
0
                        return 0;
4125
0
                    }
4126
0
                    r->order = (OSSL_PARAM *)p;
4127
0
                }
4128
0
                break;
4129
0
            case 'p':
4130
0
                switch(s[1]) {
4131
0
                default:
4132
0
                    break;
4133
0
                case 'o':
4134
0
                    if (ossl_likely(strcmp("int-format", s + 2) == 0)) {
4135
                        /* OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT */
4136
0
                        if (ossl_unlikely(r->pt_format != NULL)) {
4137
0
                            break;
4138
0
                        }
4139
0
                        r->pt_format = (OSSL_PARAM *)p;
4140
0
                    }
4141
0
                    break;
4142
0
                case 'r':
4143
0
                    if (ossl_likely(strcmp("iv", s + 2) == 0)) {
4144
                        /* OSSL_PKEY_PARAM_PRIV_KEY */
4145
0
                        if (ossl_unlikely(r->priv != NULL)) {
4146
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4147
0
                                           "param %s is repeated", s);
4148
0
                            return 0;
4149
0
                        }
4150
0
                        r->priv = (OSSL_PARAM *)p;
4151
0
                    }
4152
0
                    break;
4153
0
                case 'u':
4154
0
                    if (ossl_likely(strcmp("b", s + 2) == 0)) {
4155
                        /* OSSL_PKEY_PARAM_PUB_KEY */
4156
0
                        if (ossl_unlikely(r->pub != NULL)) {
4157
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4158
0
                                           "param %s is repeated", s);
4159
0
                            return 0;
4160
0
                        }
4161
0
                        r->pub = (OSSL_PARAM *)p;
4162
0
                    }
4163
0
                    break;
4164
0
                case '\0':
4165
0
                    if (ossl_unlikely(r->p != NULL)) {
4166
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4167
0
                                       "param %s is repeated", s);
4168
0
                        return 0;
4169
0
                    }
4170
0
                    r->p = (OSSL_PARAM *)p;
4171
0
                }
4172
0
                break;
4173
0
            case 'q':
4174
0
                switch(s[1]) {
4175
0
                default:
4176
0
                    break;
4177
0
                case 'x':
4178
0
                    switch(s[2]) {
4179
0
                    default:
4180
0
                        break;
4181
0
                    case '\0':
4182
0
                        if (ossl_unlikely(r->pub_x != NULL)) {
4183
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4184
0
                                           "param %s is repeated", s);
4185
0
                            return 0;
4186
0
                        }
4187
0
                        r->pub_x = (OSSL_PARAM *)p;
4188
0
                    }
4189
0
                    break;
4190
0
                case 'y':
4191
0
                    switch(s[2]) {
4192
0
                    default:
4193
0
                        break;
4194
0
                    case '\0':
4195
0
                        if (ossl_unlikely(r->pub_y != NULL)) {
4196
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4197
0
                                           "param %s is repeated", s);
4198
0
                            return 0;
4199
0
                        }
4200
0
                        r->pub_y = (OSSL_PARAM *)p;
4201
0
                    }
4202
0
                }
4203
0
                break;
4204
2.00k
            case 's':
4205
2.00k
                switch(s[1]) {
4206
0
                default:
4207
0
                    break;
4208
2.00k
                case 'e':
4209
2.00k
                    switch(s[2]) {
4210
0
                    default:
4211
0
                        break;
4212
2.00k
                    case 'c':
4213
2.00k
                        if (ossl_likely(strcmp("urity-bits", s + 3) == 0)) {
4214
                            /* OSSL_PKEY_PARAM_SECURITY_BITS */
4215
1.00k
                            if (ossl_unlikely(r->secbits != NULL)) {
4216
0
                                ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4217
0
                                               "param %s is repeated", s);
4218
0
                                return 0;
4219
0
                            }
4220
1.00k
                            r->secbits = (OSSL_PARAM *)p;
4221
1.00k
                        }
4222
2.00k
                        break;
4223
2.00k
                    case 'e':
4224
0
                        if (ossl_likely(strcmp("d", s + 3) == 0)) {
4225
                            /* OSSL_PKEY_PARAM_EC_SEED */
4226
0
                            if (ossl_unlikely(r->seed != NULL)) {
4227
0
                                ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4228
0
                                               "param %s is repeated", s);
4229
0
                                return 0;
4230
0
                            }
4231
0
                            r->seed = (OSSL_PARAM *)p;
4232
0
                        }
4233
2.00k
                    }
4234
2.00k
                }
4235
4.14k
            }
4236
1.13k
    return 1;
4237
1.13k
}
Unexecuted instantiation: ec_lib.c:sm2_get_params_decoder
ec_kmgmt.c:sm2_get_params_decoder
Line
Count
Source
3892
1.13k
{
3893
1.13k
    const char *s;
3894
3895
1.13k
    memset(r, 0, sizeof(*r));
3896
1.13k
    if (p != NULL)
3897
5.27k
        for (; (s = p->key) != NULL; p++)
3898
4.14k
            switch(s[0]) {
3899
0
            default:
3900
0
                break;
3901
0
            case 'a':
3902
0
                switch(s[1]) {
3903
0
                default:
3904
0
                    break;
3905
0
                case '\0':
3906
0
                    if (ossl_unlikely(r->a != NULL)) {
3907
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3908
0
                                       "param %s is repeated", s);
3909
0
                        return 0;
3910
0
                    }
3911
0
                    r->a = (OSSL_PARAM *)p;
3912
0
                }
3913
0
                break;
3914
1.00k
            case 'b':
3915
1.00k
                switch(s[1]) {
3916
0
                default:
3917
0
                    break;
3918
1.00k
                case 'i':
3919
1.00k
                    if (ossl_likely(strcmp("ts", s + 2) == 0)) {
3920
                        /* OSSL_PKEY_PARAM_BITS */
3921
1.00k
                        if (ossl_unlikely(r->bits != NULL)) {
3922
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3923
0
                                           "param %s is repeated", s);
3924
0
                            return 0;
3925
0
                        }
3926
1.00k
                        r->bits = (OSSL_PARAM *)p;
3927
1.00k
                    }
3928
1.00k
                    break;
3929
1.00k
                case '\0':
3930
0
                    if (ossl_unlikely(r->b != NULL)) {
3931
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3932
0
                                       "param %s is repeated", s);
3933
0
                        return 0;
3934
0
                    }
3935
0
                    r->b = (OSSL_PARAM *)p;
3936
1.00k
                }
3937
1.00k
                break;
3938
1.00k
            case 'c':
3939
0
                if (ossl_likely(strcmp("ofactor", s + 1) == 0)) {
3940
                    /* OSSL_PKEY_PARAM_EC_COFACTOR */
3941
0
                    if (ossl_unlikely(r->cofactor != NULL)) {
3942
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3943
0
                                       "param %s is repeated", s);
3944
0
                        return 0;
3945
0
                    }
3946
0
                    r->cofactor = (OSSL_PARAM *)p;
3947
0
                }
3948
0
                break;
3949
0
            case 'd':
3950
0
                switch(s[1]) {
3951
0
                default:
3952
0
                    break;
3953
0
                case 'e':
3954
0
                    switch(s[2]) {
3955
0
                    default:
3956
0
                        break;
3957
0
                    case 'c':
3958
0
                        if (ossl_likely(strcmp("oded-from-explicit", s + 3) == 0)) {
3959
                            /* OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS */
3960
0
                            if (ossl_unlikely(r->decoded != NULL)) {
3961
0
                                ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3962
0
                                               "param %s is repeated", s);
3963
0
                                return 0;
3964
0
                            }
3965
0
                            r->decoded = (OSSL_PARAM *)p;
3966
0
                        }
3967
0
                        break;
3968
0
                    case 'f':
3969
0
                        if (ossl_likely(strcmp("ault-digest", s + 3) == 0)) {
3970
                            /* OSSL_PKEY_PARAM_DEFAULT_DIGEST */
3971
0
                            if (ossl_unlikely(r->default_digest != NULL)) {
3972
0
                                ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
3973
0
                                               "param %s is repeated", s);
3974
0
                                return 0;
3975
0
                            }
3976
0
                            r->default_digest = (OSSL_PARAM *)p;
3977
0
                        }
3978
0
                    }
3979
0
                }
3980
0
                break;
3981
128
            case 'e':
3982
128
                switch(s[1]) {
3983
0
                default:
3984
0
                    break;
3985
128
                case 'n':
3986
128
                    switch(s[2]) {
3987
0
                    default:
3988
0
                        break;
3989
128
                    case 'c':
3990
128
                        switch(s[3]) {
3991
0
                        default:
3992
0
                            break;
3993
128
                        case 'o':
3994
128
                            switch(s[4]) {
3995
0
                            default:
3996
0
                                break;
3997
128
                            case 'd':
3998
128
                                switch(s[5]) {
3999
0
                                default:
4000
0
                                    break;
4001
128
                                case 'e':
4002
128
                                    if (ossl_likely(strcmp("d-pub-key", s + 6) == 0)) {
4003
                                        /* OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY */
4004
128
                                        if (ossl_unlikely(r->encoded_pub != NULL)) {
4005
0
                                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4006
0
                                                           "param %s is repeated", s);
4007
0
                                            return 0;
4008
0
                                        }
4009
128
                                        r->encoded_pub = (OSSL_PARAM *)p;
4010
128
                                    }
4011
128
                                    break;
4012
128
                                case 'i':
4013
0
                                    if (ossl_likely(strcmp("ng", s + 6) == 0)) {
4014
                                        /* OSSL_PKEY_PARAM_EC_ENCODING */
4015
0
                                        if (ossl_unlikely(r->encoding != NULL)) {
4016
0
                                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4017
0
                                                           "param %s is repeated", s);
4018
0
                                            return 0;
4019
0
                                        }
4020
0
                                        r->encoding = (OSSL_PARAM *)p;
4021
0
                                    }
4022
128
                                }
4023
128
                            }
4024
128
                        }
4025
128
                    }
4026
128
                }
4027
128
                break;
4028
128
            case 'f':
4029
0
                switch(s[1]) {
4030
0
                default:
4031
0
                    break;
4032
0
                case 'i':
4033
0
                    switch(s[2]) {
4034
0
                    default:
4035
0
                        break;
4036
0
                    case 'e':
4037
0
                        switch(s[3]) {
4038
0
                        default:
4039
0
                            break;
4040
0
                        case 'l':
4041
0
                            switch(s[4]) {
4042
0
                            default:
4043
0
                                break;
4044
0
                            case 'd':
4045
0
                                switch(s[5]) {
4046
0
                                default:
4047
0
                                    break;
4048
0
                                case '-':
4049
0
                                    switch(s[6]) {
4050
0
                                    default:
4051
0
                                        break;
4052
0
                                    case 'd':
4053
0
                                        if (ossl_likely(strcmp("egree", s + 7) == 0)) {
4054
                                            /* OSSL_PKEY_PARAM_EC_FIELD_DEGREE */
4055
0
                                            if (ossl_unlikely(r->field_degree != NULL)) {
4056
0
                                                ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4057
0
                                                               "param %s is repeated", s);
4058
0
                                                return 0;
4059
0
                                            }
4060
0
                                            r->field_degree = (OSSL_PARAM *)p;
4061
0
                                        }
4062
0
                                        break;
4063
0
                                    case 't':
4064
0
                                        if (ossl_likely(strcmp("ype", s + 7) == 0)) {
4065
                                            /* OSSL_PKEY_PARAM_EC_FIELD_TYPE */
4066
0
                                            if (ossl_unlikely(r->field_type != NULL)) {
4067
0
                                                ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4068
0
                                                               "param %s is repeated", s);
4069
0
                                                return 0;
4070
0
                                            }
4071
0
                                            r->field_type = (OSSL_PARAM *)p;
4072
0
                                        }
4073
0
                                    }
4074
0
                                }
4075
0
                            }
4076
0
                        }
4077
0
                    }
4078
0
                }
4079
0
                break;
4080
0
            case 'g':
4081
0
                switch(s[1]) {
4082
0
                default:
4083
0
                    break;
4084
0
                case 'e':
4085
0
                    if (ossl_likely(strcmp("nerator", s + 2) == 0)) {
4086
                        /* OSSL_PKEY_PARAM_EC_GENERATOR */
4087
0
                        if (ossl_unlikely(r->generator != NULL)) {
4088
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4089
0
                                           "param %s is repeated", s);
4090
0
                            return 0;
4091
0
                        }
4092
0
                        r->generator = (OSSL_PARAM *)p;
4093
0
                    }
4094
0
                    break;
4095
0
                case 'r':
4096
0
                    if (ossl_likely(strcmp("oup", s + 2) == 0)) {
4097
                        /* OSSL_PKEY_PARAM_GROUP_NAME */
4098
0
                        if (ossl_unlikely(r->group_name != NULL)) {
4099
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4100
0
                                           "param %s is repeated", s);
4101
0
                            return 0;
4102
0
                        }
4103
0
                        r->group_name = (OSSL_PARAM *)p;
4104
0
                    }
4105
0
                }
4106
0
                break;
4107
1.00k
            case 'm':
4108
1.00k
                if (ossl_likely(strcmp("ax-size", s + 1) == 0)) {
4109
                    /* OSSL_PKEY_PARAM_MAX_SIZE */
4110
1.00k
                    if (ossl_unlikely(r->maxsize != NULL)) {
4111
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4112
0
                                       "param %s is repeated", s);
4113
0
                        return 0;
4114
0
                    }
4115
1.00k
                    r->maxsize = (OSSL_PARAM *)p;
4116
1.00k
                }
4117
1.00k
                break;
4118
1.00k
            case 'o':
4119
0
                if (ossl_likely(strcmp("rder", s + 1) == 0)) {
4120
                    /* OSSL_PKEY_PARAM_EC_ORDER */
4121
0
                    if (ossl_unlikely(r->order != NULL)) {
4122
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4123
0
                                       "param %s is repeated", s);
4124
0
                        return 0;
4125
0
                    }
4126
0
                    r->order = (OSSL_PARAM *)p;
4127
0
                }
4128
0
                break;
4129
0
            case 'p':
4130
0
                switch(s[1]) {
4131
0
                default:
4132
0
                    break;
4133
0
                case 'o':
4134
0
                    if (ossl_likely(strcmp("int-format", s + 2) == 0)) {
4135
                        /* OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT */
4136
0
                        if (ossl_unlikely(r->pt_format != NULL)) {
4137
0
                            break;
4138
0
                        }
4139
0
                        r->pt_format = (OSSL_PARAM *)p;
4140
0
                    }
4141
0
                    break;
4142
0
                case 'r':
4143
0
                    if (ossl_likely(strcmp("iv", s + 2) == 0)) {
4144
                        /* OSSL_PKEY_PARAM_PRIV_KEY */
4145
0
                        if (ossl_unlikely(r->priv != NULL)) {
4146
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4147
0
                                           "param %s is repeated", s);
4148
0
                            return 0;
4149
0
                        }
4150
0
                        r->priv = (OSSL_PARAM *)p;
4151
0
                    }
4152
0
                    break;
4153
0
                case 'u':
4154
0
                    if (ossl_likely(strcmp("b", s + 2) == 0)) {
4155
                        /* OSSL_PKEY_PARAM_PUB_KEY */
4156
0
                        if (ossl_unlikely(r->pub != NULL)) {
4157
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4158
0
                                           "param %s is repeated", s);
4159
0
                            return 0;
4160
0
                        }
4161
0
                        r->pub = (OSSL_PARAM *)p;
4162
0
                    }
4163
0
                    break;
4164
0
                case '\0':
4165
0
                    if (ossl_unlikely(r->p != NULL)) {
4166
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4167
0
                                       "param %s is repeated", s);
4168
0
                        return 0;
4169
0
                    }
4170
0
                    r->p = (OSSL_PARAM *)p;
4171
0
                }
4172
0
                break;
4173
0
            case 'q':
4174
0
                switch(s[1]) {
4175
0
                default:
4176
0
                    break;
4177
0
                case 'x':
4178
0
                    switch(s[2]) {
4179
0
                    default:
4180
0
                        break;
4181
0
                    case '\0':
4182
0
                        if (ossl_unlikely(r->pub_x != NULL)) {
4183
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4184
0
                                           "param %s is repeated", s);
4185
0
                            return 0;
4186
0
                        }
4187
0
                        r->pub_x = (OSSL_PARAM *)p;
4188
0
                    }
4189
0
                    break;
4190
0
                case 'y':
4191
0
                    switch(s[2]) {
4192
0
                    default:
4193
0
                        break;
4194
0
                    case '\0':
4195
0
                        if (ossl_unlikely(r->pub_y != NULL)) {
4196
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4197
0
                                           "param %s is repeated", s);
4198
0
                            return 0;
4199
0
                        }
4200
0
                        r->pub_y = (OSSL_PARAM *)p;
4201
0
                    }
4202
0
                }
4203
0
                break;
4204
2.00k
            case 's':
4205
2.00k
                switch(s[1]) {
4206
0
                default:
4207
0
                    break;
4208
2.00k
                case 'e':
4209
2.00k
                    switch(s[2]) {
4210
0
                    default:
4211
0
                        break;
4212
2.00k
                    case 'c':
4213
2.00k
                        if (ossl_likely(strcmp("urity-bits", s + 3) == 0)) {
4214
                            /* OSSL_PKEY_PARAM_SECURITY_BITS */
4215
1.00k
                            if (ossl_unlikely(r->secbits != NULL)) {
4216
0
                                ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4217
0
                                               "param %s is repeated", s);
4218
0
                                return 0;
4219
0
                            }
4220
1.00k
                            r->secbits = (OSSL_PARAM *)p;
4221
1.00k
                        }
4222
2.00k
                        break;
4223
2.00k
                    case 'e':
4224
0
                        if (ossl_likely(strcmp("d", s + 3) == 0)) {
4225
                            /* OSSL_PKEY_PARAM_EC_SEED */
4226
0
                            if (ossl_unlikely(r->seed != NULL)) {
4227
0
                                ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4228
0
                                               "param %s is repeated", s);
4229
0
                                return 0;
4230
0
                            }
4231
0
                            r->seed = (OSSL_PARAM *)p;
4232
0
                        }
4233
2.00k
                    }
4234
2.00k
                }
4235
4.14k
            }
4236
1.13k
    return 1;
4237
1.13k
}
Unexecuted instantiation: ec_ameth.c:sm2_get_params_decoder
Unexecuted instantiation: ec_backend.c:sm2_get_params_decoder
4238
#endif
4239
/* End of machine generated */
4240
4241
#define ec_set_params_st ec_params_st
4242
/* Machine generated */
4243
#ifndef ec_set_params_list
4244
static ossl_unused const OSSL_PARAM ec_set_params_list[] = {
4245
    OSSL_PARAM_int(OSSL_PKEY_PARAM_USE_COFACTOR_ECDH, NULL),
4246
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY, NULL, 0),
4247
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_ENCODING, NULL, 0),
4248
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT, NULL, 0),
4249
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_EC_SEED, NULL, 0),
4250
    OSSL_PARAM_int(OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC, NULL),
4251
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE, NULL, 0),
4252
    OSSL_PARAM_END
4253
};
4254
#endif
4255
4256
#ifndef ec_set_params_st
4257
struct ec_set_params_st {
4258
    OSSL_PARAM *encoded_pub;
4259
    OSSL_PARAM *encoding;
4260
    OSSL_PARAM *group_check;
4261
    OSSL_PARAM *include_public;
4262
    OSSL_PARAM *pt_format;
4263
    OSSL_PARAM *seed;
4264
    OSSL_PARAM *use_cofactor;
4265
};
4266
#endif
4267
4268
#ifndef ec_set_params_decoder
4269
static ossl_unused int ec_set_params_decoder
4270
    (const OSSL_PARAM *p, struct ec_set_params_st *r)
4271
1.70k
{
4272
1.70k
    const char *s;
4273
4274
1.70k
    memset(r, 0, sizeof(*r));
4275
1.70k
    if (p != NULL)
4276
3.41k
        for (; (s = p->key) != NULL; p++)
4277
1.70k
            switch(s[0]) {
4278
0
            default:
4279
0
                break;
4280
1.70k
            case 'e':
4281
1.70k
                switch(s[1]) {
4282
0
                default:
4283
0
                    break;
4284
1.70k
                case 'n':
4285
1.70k
                    switch(s[2]) {
4286
0
                    default:
4287
0
                        break;
4288
1.70k
                    case 'c':
4289
1.70k
                        switch(s[3]) {
4290
0
                        default:
4291
0
                            break;
4292
1.70k
                        case 'o':
4293
1.70k
                            switch(s[4]) {
4294
0
                            default:
4295
0
                                break;
4296
1.70k
                            case 'd':
4297
1.70k
                                switch(s[5]) {
4298
0
                                default:
4299
0
                                    break;
4300
1.70k
                                case 'e':
4301
1.70k
                                    if (ossl_likely(strcmp("d-pub-key", s + 6) == 0)) {
4302
                                        /* OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY */
4303
1.70k
                                        if (ossl_unlikely(r->encoded_pub != NULL)) {
4304
0
                                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4305
0
                                                           "param %s is repeated", s);
4306
0
                                            return 0;
4307
0
                                        }
4308
1.70k
                                        r->encoded_pub = (OSSL_PARAM *)p;
4309
1.70k
                                    }
4310
1.70k
                                    break;
4311
1.70k
                                case 'i':
4312
0
                                    if (ossl_likely(strcmp("ng", s + 6) == 0)) {
4313
                                        /* OSSL_PKEY_PARAM_EC_ENCODING */
4314
0
                                        if (ossl_unlikely(r->encoding != NULL)) {
4315
0
                                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4316
0
                                                           "param %s is repeated", s);
4317
0
                                            return 0;
4318
0
                                        }
4319
0
                                        r->encoding = (OSSL_PARAM *)p;
4320
0
                                    }
4321
1.70k
                                }
4322
1.70k
                            }
4323
1.70k
                        }
4324
1.70k
                    }
4325
1.70k
                }
4326
1.70k
                break;
4327
1.70k
            case 'g':
4328
0
                if (ossl_likely(strcmp("roup-check", s + 1) == 0)) {
4329
                    /* OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE */
4330
0
                    if (ossl_unlikely(r->group_check != NULL)) {
4331
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4332
0
                                       "param %s is repeated", s);
4333
0
                        return 0;
4334
0
                    }
4335
0
                    r->group_check = (OSSL_PARAM *)p;
4336
0
                }
4337
0
                break;
4338
0
            case 'i':
4339
0
                if (ossl_likely(strcmp("nclude-public", s + 1) == 0)) {
4340
                    /* OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC */
4341
0
                    if (ossl_unlikely(r->include_public != NULL)) {
4342
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4343
0
                                       "param %s is repeated", s);
4344
0
                        return 0;
4345
0
                    }
4346
0
                    r->include_public = (OSSL_PARAM *)p;
4347
0
                }
4348
0
                break;
4349
0
            case 'p':
4350
0
                if (ossl_likely(strcmp("oint-format", s + 1) == 0)) {
4351
                    /* OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT */
4352
0
                    if (ossl_unlikely(r->pt_format != NULL)) {
4353
0
                        break;
4354
0
                    }
4355
0
                    r->pt_format = (OSSL_PARAM *)p;
4356
0
                }
4357
0
                break;
4358
0
            case 's':
4359
0
                if (ossl_likely(strcmp("eed", s + 1) == 0)) {
4360
                    /* OSSL_PKEY_PARAM_EC_SEED */
4361
0
                    if (ossl_unlikely(r->seed != NULL)) {
4362
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4363
0
                                       "param %s is repeated", s);
4364
0
                        return 0;
4365
0
                    }
4366
0
                    r->seed = (OSSL_PARAM *)p;
4367
0
                }
4368
0
                break;
4369
0
            case 'u':
4370
0
                if (ossl_likely(strcmp("se-cofactor-flag", s + 1) == 0)) {
4371
                    /* OSSL_PKEY_PARAM_USE_COFACTOR_ECDH */
4372
0
                    if (ossl_unlikely(r->use_cofactor != NULL)) {
4373
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4374
0
                                       "param %s is repeated", s);
4375
0
                        return 0;
4376
0
                    }
4377
0
                    r->use_cofactor = (OSSL_PARAM *)p;
4378
0
                }
4379
1.70k
            }
4380
1.70k
    return 1;
4381
1.70k
}
Unexecuted instantiation: ec_lib.c:ec_set_params_decoder
ec_kmgmt.c:ec_set_params_decoder
Line
Count
Source
4271
1.70k
{
4272
1.70k
    const char *s;
4273
4274
1.70k
    memset(r, 0, sizeof(*r));
4275
1.70k
    if (p != NULL)
4276
3.41k
        for (; (s = p->key) != NULL; p++)
4277
1.70k
            switch(s[0]) {
4278
0
            default:
4279
0
                break;
4280
1.70k
            case 'e':
4281
1.70k
                switch(s[1]) {
4282
0
                default:
4283
0
                    break;
4284
1.70k
                case 'n':
4285
1.70k
                    switch(s[2]) {
4286
0
                    default:
4287
0
                        break;
4288
1.70k
                    case 'c':
4289
1.70k
                        switch(s[3]) {
4290
0
                        default:
4291
0
                            break;
4292
1.70k
                        case 'o':
4293
1.70k
                            switch(s[4]) {
4294
0
                            default:
4295
0
                                break;
4296
1.70k
                            case 'd':
4297
1.70k
                                switch(s[5]) {
4298
0
                                default:
4299
0
                                    break;
4300
1.70k
                                case 'e':
4301
1.70k
                                    if (ossl_likely(strcmp("d-pub-key", s + 6) == 0)) {
4302
                                        /* OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY */
4303
1.70k
                                        if (ossl_unlikely(r->encoded_pub != NULL)) {
4304
0
                                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4305
0
                                                           "param %s is repeated", s);
4306
0
                                            return 0;
4307
0
                                        }
4308
1.70k
                                        r->encoded_pub = (OSSL_PARAM *)p;
4309
1.70k
                                    }
4310
1.70k
                                    break;
4311
1.70k
                                case 'i':
4312
0
                                    if (ossl_likely(strcmp("ng", s + 6) == 0)) {
4313
                                        /* OSSL_PKEY_PARAM_EC_ENCODING */
4314
0
                                        if (ossl_unlikely(r->encoding != NULL)) {
4315
0
                                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4316
0
                                                           "param %s is repeated", s);
4317
0
                                            return 0;
4318
0
                                        }
4319
0
                                        r->encoding = (OSSL_PARAM *)p;
4320
0
                                    }
4321
1.70k
                                }
4322
1.70k
                            }
4323
1.70k
                        }
4324
1.70k
                    }
4325
1.70k
                }
4326
1.70k
                break;
4327
1.70k
            case 'g':
4328
0
                if (ossl_likely(strcmp("roup-check", s + 1) == 0)) {
4329
                    /* OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE */
4330
0
                    if (ossl_unlikely(r->group_check != NULL)) {
4331
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4332
0
                                       "param %s is repeated", s);
4333
0
                        return 0;
4334
0
                    }
4335
0
                    r->group_check = (OSSL_PARAM *)p;
4336
0
                }
4337
0
                break;
4338
0
            case 'i':
4339
0
                if (ossl_likely(strcmp("nclude-public", s + 1) == 0)) {
4340
                    /* OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC */
4341
0
                    if (ossl_unlikely(r->include_public != NULL)) {
4342
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4343
0
                                       "param %s is repeated", s);
4344
0
                        return 0;
4345
0
                    }
4346
0
                    r->include_public = (OSSL_PARAM *)p;
4347
0
                }
4348
0
                break;
4349
0
            case 'p':
4350
0
                if (ossl_likely(strcmp("oint-format", s + 1) == 0)) {
4351
                    /* OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT */
4352
0
                    if (ossl_unlikely(r->pt_format != NULL)) {
4353
0
                        break;
4354
0
                    }
4355
0
                    r->pt_format = (OSSL_PARAM *)p;
4356
0
                }
4357
0
                break;
4358
0
            case 's':
4359
0
                if (ossl_likely(strcmp("eed", s + 1) == 0)) {
4360
                    /* OSSL_PKEY_PARAM_EC_SEED */
4361
0
                    if (ossl_unlikely(r->seed != NULL)) {
4362
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4363
0
                                       "param %s is repeated", s);
4364
0
                        return 0;
4365
0
                    }
4366
0
                    r->seed = (OSSL_PARAM *)p;
4367
0
                }
4368
0
                break;
4369
0
            case 'u':
4370
0
                if (ossl_likely(strcmp("se-cofactor-flag", s + 1) == 0)) {
4371
                    /* OSSL_PKEY_PARAM_USE_COFACTOR_ECDH */
4372
0
                    if (ossl_unlikely(r->use_cofactor != NULL)) {
4373
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4374
0
                                       "param %s is repeated", s);
4375
0
                        return 0;
4376
0
                    }
4377
0
                    r->use_cofactor = (OSSL_PARAM *)p;
4378
0
                }
4379
1.70k
            }
4380
1.70k
    return 1;
4381
1.70k
}
Unexecuted instantiation: ec_ameth.c:ec_set_params_decoder
Unexecuted instantiation: ec_backend.c:ec_set_params_decoder
4382
#endif
4383
/* End of machine generated */
4384
4385
#define sm2_set_params_st ec_params_st
4386
/* Machine generated */
4387
#ifndef sm2_set_params_list
4388
static ossl_unused const OSSL_PARAM sm2_set_params_list[] = {
4389
    OSSL_PARAM_int(OSSL_PKEY_PARAM_USE_COFACTOR_ECDH, NULL),
4390
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY, NULL, 0),
4391
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_ENCODING, NULL, 0),
4392
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT, NULL, 0),
4393
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_EC_SEED, NULL, 0),
4394
    OSSL_PARAM_int(OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC, NULL),
4395
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE, NULL, 0),
4396
    OSSL_PARAM_END
4397
};
4398
#endif
4399
4400
#ifndef sm2_set_params_st
4401
struct sm2_set_params_st {
4402
    OSSL_PARAM *encoded_pub;
4403
    OSSL_PARAM *encoding;
4404
    OSSL_PARAM *group_check;
4405
    OSSL_PARAM *include_public;
4406
    OSSL_PARAM *pt_format;
4407
    OSSL_PARAM *seed;
4408
    OSSL_PARAM *use_cofactor;
4409
};
4410
#endif
4411
4412
#ifndef sm2_set_params_decoder
4413
static ossl_unused int sm2_set_params_decoder
4414
    (const OSSL_PARAM *p, struct sm2_set_params_st *r)
4415
170
{
4416
170
    const char *s;
4417
4418
170
    memset(r, 0, sizeof(*r));
4419
170
    if (p != NULL)
4420
340
        for (; (s = p->key) != NULL; p++)
4421
170
            switch(s[0]) {
4422
0
            default:
4423
0
                break;
4424
170
            case 'e':
4425
170
                switch(s[1]) {
4426
0
                default:
4427
0
                    break;
4428
170
                case 'n':
4429
170
                    switch(s[2]) {
4430
0
                    default:
4431
0
                        break;
4432
170
                    case 'c':
4433
170
                        switch(s[3]) {
4434
0
                        default:
4435
0
                            break;
4436
170
                        case 'o':
4437
170
                            switch(s[4]) {
4438
0
                            default:
4439
0
                                break;
4440
170
                            case 'd':
4441
170
                                switch(s[5]) {
4442
0
                                default:
4443
0
                                    break;
4444
170
                                case 'e':
4445
170
                                    if (ossl_likely(strcmp("d-pub-key", s + 6) == 0)) {
4446
                                        /* OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY */
4447
170
                                        if (ossl_unlikely(r->encoded_pub != NULL)) {
4448
0
                                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4449
0
                                                           "param %s is repeated", s);
4450
0
                                            return 0;
4451
0
                                        }
4452
170
                                        r->encoded_pub = (OSSL_PARAM *)p;
4453
170
                                    }
4454
170
                                    break;
4455
170
                                case 'i':
4456
0
                                    if (ossl_likely(strcmp("ng", s + 6) == 0)) {
4457
                                        /* OSSL_PKEY_PARAM_EC_ENCODING */
4458
0
                                        if (ossl_unlikely(r->encoding != NULL)) {
4459
0
                                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4460
0
                                                           "param %s is repeated", s);
4461
0
                                            return 0;
4462
0
                                        }
4463
0
                                        r->encoding = (OSSL_PARAM *)p;
4464
0
                                    }
4465
170
                                }
4466
170
                            }
4467
170
                        }
4468
170
                    }
4469
170
                }
4470
170
                break;
4471
170
            case 'g':
4472
0
                if (ossl_likely(strcmp("roup-check", s + 1) == 0)) {
4473
                    /* OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE */
4474
0
                    if (ossl_unlikely(r->group_check != NULL)) {
4475
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4476
0
                                       "param %s is repeated", s);
4477
0
                        return 0;
4478
0
                    }
4479
0
                    r->group_check = (OSSL_PARAM *)p;
4480
0
                }
4481
0
                break;
4482
0
            case 'i':
4483
0
                if (ossl_likely(strcmp("nclude-public", s + 1) == 0)) {
4484
                    /* OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC */
4485
0
                    if (ossl_unlikely(r->include_public != NULL)) {
4486
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4487
0
                                       "param %s is repeated", s);
4488
0
                        return 0;
4489
0
                    }
4490
0
                    r->include_public = (OSSL_PARAM *)p;
4491
0
                }
4492
0
                break;
4493
0
            case 'p':
4494
0
                if (ossl_likely(strcmp("oint-format", s + 1) == 0)) {
4495
                    /* OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT */
4496
0
                    if (ossl_unlikely(r->pt_format != NULL)) {
4497
0
                        break;
4498
0
                    }
4499
0
                    r->pt_format = (OSSL_PARAM *)p;
4500
0
                }
4501
0
                break;
4502
0
            case 's':
4503
0
                if (ossl_likely(strcmp("eed", s + 1) == 0)) {
4504
                    /* OSSL_PKEY_PARAM_EC_SEED */
4505
0
                    if (ossl_unlikely(r->seed != NULL)) {
4506
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4507
0
                                       "param %s is repeated", s);
4508
0
                        return 0;
4509
0
                    }
4510
0
                    r->seed = (OSSL_PARAM *)p;
4511
0
                }
4512
0
                break;
4513
0
            case 'u':
4514
0
                if (ossl_likely(strcmp("se-cofactor-flag", s + 1) == 0)) {
4515
                    /* OSSL_PKEY_PARAM_USE_COFACTOR_ECDH */
4516
0
                    if (ossl_unlikely(r->use_cofactor != NULL)) {
4517
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4518
0
                                       "param %s is repeated", s);
4519
0
                        return 0;
4520
0
                    }
4521
0
                    r->use_cofactor = (OSSL_PARAM *)p;
4522
0
                }
4523
170
            }
4524
170
    return 1;
4525
170
}
Unexecuted instantiation: ec_lib.c:sm2_set_params_decoder
ec_kmgmt.c:sm2_set_params_decoder
Line
Count
Source
4415
170
{
4416
170
    const char *s;
4417
4418
170
    memset(r, 0, sizeof(*r));
4419
170
    if (p != NULL)
4420
340
        for (; (s = p->key) != NULL; p++)
4421
170
            switch(s[0]) {
4422
0
            default:
4423
0
                break;
4424
170
            case 'e':
4425
170
                switch(s[1]) {
4426
0
                default:
4427
0
                    break;
4428
170
                case 'n':
4429
170
                    switch(s[2]) {
4430
0
                    default:
4431
0
                        break;
4432
170
                    case 'c':
4433
170
                        switch(s[3]) {
4434
0
                        default:
4435
0
                            break;
4436
170
                        case 'o':
4437
170
                            switch(s[4]) {
4438
0
                            default:
4439
0
                                break;
4440
170
                            case 'd':
4441
170
                                switch(s[5]) {
4442
0
                                default:
4443
0
                                    break;
4444
170
                                case 'e':
4445
170
                                    if (ossl_likely(strcmp("d-pub-key", s + 6) == 0)) {
4446
                                        /* OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY */
4447
170
                                        if (ossl_unlikely(r->encoded_pub != NULL)) {
4448
0
                                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4449
0
                                                           "param %s is repeated", s);
4450
0
                                            return 0;
4451
0
                                        }
4452
170
                                        r->encoded_pub = (OSSL_PARAM *)p;
4453
170
                                    }
4454
170
                                    break;
4455
170
                                case 'i':
4456
0
                                    if (ossl_likely(strcmp("ng", s + 6) == 0)) {
4457
                                        /* OSSL_PKEY_PARAM_EC_ENCODING */
4458
0
                                        if (ossl_unlikely(r->encoding != NULL)) {
4459
0
                                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4460
0
                                                           "param %s is repeated", s);
4461
0
                                            return 0;
4462
0
                                        }
4463
0
                                        r->encoding = (OSSL_PARAM *)p;
4464
0
                                    }
4465
170
                                }
4466
170
                            }
4467
170
                        }
4468
170
                    }
4469
170
                }
4470
170
                break;
4471
170
            case 'g':
4472
0
                if (ossl_likely(strcmp("roup-check", s + 1) == 0)) {
4473
                    /* OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE */
4474
0
                    if (ossl_unlikely(r->group_check != NULL)) {
4475
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4476
0
                                       "param %s is repeated", s);
4477
0
                        return 0;
4478
0
                    }
4479
0
                    r->group_check = (OSSL_PARAM *)p;
4480
0
                }
4481
0
                break;
4482
0
            case 'i':
4483
0
                if (ossl_likely(strcmp("nclude-public", s + 1) == 0)) {
4484
                    /* OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC */
4485
0
                    if (ossl_unlikely(r->include_public != NULL)) {
4486
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4487
0
                                       "param %s is repeated", s);
4488
0
                        return 0;
4489
0
                    }
4490
0
                    r->include_public = (OSSL_PARAM *)p;
4491
0
                }
4492
0
                break;
4493
0
            case 'p':
4494
0
                if (ossl_likely(strcmp("oint-format", s + 1) == 0)) {
4495
                    /* OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT */
4496
0
                    if (ossl_unlikely(r->pt_format != NULL)) {
4497
0
                        break;
4498
0
                    }
4499
0
                    r->pt_format = (OSSL_PARAM *)p;
4500
0
                }
4501
0
                break;
4502
0
            case 's':
4503
0
                if (ossl_likely(strcmp("eed", s + 1) == 0)) {
4504
                    /* OSSL_PKEY_PARAM_EC_SEED */
4505
0
                    if (ossl_unlikely(r->seed != NULL)) {
4506
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4507
0
                                       "param %s is repeated", s);
4508
0
                        return 0;
4509
0
                    }
4510
0
                    r->seed = (OSSL_PARAM *)p;
4511
0
                }
4512
0
                break;
4513
0
            case 'u':
4514
0
                if (ossl_likely(strcmp("se-cofactor-flag", s + 1) == 0)) {
4515
                    /* OSSL_PKEY_PARAM_USE_COFACTOR_ECDH */
4516
0
                    if (ossl_unlikely(r->use_cofactor != NULL)) {
4517
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4518
0
                                       "param %s is repeated", s);
4519
0
                        return 0;
4520
0
                    }
4521
0
                    r->use_cofactor = (OSSL_PARAM *)p;
4522
0
                }
4523
170
            }
4524
170
    return 1;
4525
170
}
Unexecuted instantiation: ec_ameth.c:sm2_set_params_decoder
Unexecuted instantiation: ec_backend.c:sm2_set_params_decoder
4526
#endif
4527
/* End of machine generated */
4528
4529
/* Key generation context parameters. */
4530
#define ec_gen_set_params_st ec_params_st
4531
/* Machine generated */
4532
#ifndef ec_gen_set_params_list
4533
static ossl_unused const OSSL_PARAM ec_gen_set_params_list[] = {
4534
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_GROUP_NAME, NULL, 0),
4535
    OSSL_PARAM_int(OSSL_PKEY_PARAM_USE_COFACTOR_ECDH, NULL),
4536
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_ENCODING, NULL, 0),
4537
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT, NULL, 0),
4538
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_FIELD_TYPE, NULL, 0),
4539
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE, NULL, 0),
4540
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_P, NULL, 0),
4541
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_A, NULL, 0),
4542
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_B, NULL, 0),
4543
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_EC_GENERATOR, NULL, 0),
4544
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_ORDER, NULL, 0),
4545
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_COFACTOR, NULL, 0),
4546
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_EC_SEED, NULL, 0),
4547
# if !defined(FIPS_MODULE)
4548
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_DHKEM_IKM, NULL, 0),
4549
# endif
4550
# if defined(FIPS_MODULE)
4551
    OSSL_PARAM_int(OSSL_PKEY_PARAM_FIPS_KEY_CHECK, NULL),
4552
# endif
4553
    OSSL_PARAM_END
4554
};
4555
#endif
4556
4557
#ifndef ec_gen_set_params_st
4558
struct ec_gen_set_params_st {
4559
    OSSL_PARAM *a;
4560
    OSSL_PARAM *b;
4561
    OSSL_PARAM *cofactor;
4562
# if !defined(FIPS_MODULE)
4563
    OSSL_PARAM *dhkem_ikm;
4564
# endif
4565
    OSSL_PARAM *encoding;
4566
    OSSL_PARAM *field_type;
4567
# if defined(FIPS_MODULE)
4568
    OSSL_PARAM *fips_key_check;
4569
# endif
4570
    OSSL_PARAM *generator;
4571
    OSSL_PARAM *group_check;
4572
    OSSL_PARAM *group_name;
4573
    OSSL_PARAM *order;
4574
    OSSL_PARAM *p;
4575
    OSSL_PARAM *pt_format;
4576
    OSSL_PARAM *seed;
4577
    OSSL_PARAM *use_cofactor;
4578
};
4579
#endif
4580
4581
#ifndef ec_gen_set_params_decoder
4582
static ossl_unused int ec_gen_set_params_decoder
4583
    (const OSSL_PARAM *p, struct ec_gen_set_params_st *r)
4584
5.11k
{
4585
5.11k
    const char *s;
4586
4587
5.11k
    memset(r, 0, sizeof(*r));
4588
5.11k
    if (p != NULL)
4589
4.50k
        for (; (s = p->key) != NULL; p++)
4590
2.25k
            switch(s[0]) {
4591
0
            default:
4592
0
                break;
4593
0
            case 'a':
4594
0
                switch(s[1]) {
4595
0
                default:
4596
0
                    break;
4597
0
                case '\0':
4598
0
                    if (ossl_unlikely(r->a != NULL)) {
4599
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4600
0
                                       "param %s is repeated", s);
4601
0
                        return 0;
4602
0
                    }
4603
0
                    r->a = (OSSL_PARAM *)p;
4604
0
                }
4605
0
                break;
4606
0
            case 'b':
4607
0
                switch(s[1]) {
4608
0
                default:
4609
0
                    break;
4610
0
                case '\0':
4611
0
                    if (ossl_unlikely(r->b != NULL)) {
4612
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4613
0
                                       "param %s is repeated", s);
4614
0
                        return 0;
4615
0
                    }
4616
0
                    r->b = (OSSL_PARAM *)p;
4617
0
                }
4618
0
                break;
4619
0
            case 'c':
4620
0
                if (ossl_likely(strcmp("ofactor", s + 1) == 0)) {
4621
                    /* OSSL_PKEY_PARAM_EC_COFACTOR */
4622
0
                    if (ossl_unlikely(r->cofactor != NULL)) {
4623
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4624
0
                                       "param %s is repeated", s);
4625
0
                        return 0;
4626
0
                    }
4627
0
                    r->cofactor = (OSSL_PARAM *)p;
4628
0
                }
4629
0
                break;
4630
0
            case 'd':
4631
0
# if !defined(FIPS_MODULE)
4632
0
                if (ossl_likely(strcmp("hkem-ikm", s + 1) == 0)) {
4633
                    /* OSSL_PKEY_PARAM_DHKEM_IKM */
4634
0
                    if (ossl_unlikely(r->dhkem_ikm != NULL)) {
4635
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4636
0
                                       "param %s is repeated", s);
4637
0
                        return 0;
4638
0
                    }
4639
0
                    r->dhkem_ikm = (OSSL_PARAM *)p;
4640
0
                }
4641
0
# endif
4642
0
                break;
4643
0
            case 'e':
4644
0
                if (ossl_likely(strcmp("ncoding", s + 1) == 0)) {
4645
                    /* OSSL_PKEY_PARAM_EC_ENCODING */
4646
0
                    if (ossl_unlikely(r->encoding != NULL)) {
4647
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4648
0
                                       "param %s is repeated", s);
4649
0
                        return 0;
4650
0
                    }
4651
0
                    r->encoding = (OSSL_PARAM *)p;
4652
0
                }
4653
0
                break;
4654
0
            case 'f':
4655
0
                if (ossl_likely(strcmp("ield-type", s + 1) == 0)) {
4656
                    /* OSSL_PKEY_PARAM_EC_FIELD_TYPE */
4657
0
                    if (ossl_unlikely(r->field_type != NULL)) {
4658
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4659
0
                                       "param %s is repeated", s);
4660
0
                        return 0;
4661
0
                    }
4662
0
                    r->field_type = (OSSL_PARAM *)p;
4663
0
                }
4664
0
                break;
4665
2.25k
            case 'g':
4666
2.25k
                switch(s[1]) {
4667
0
                default:
4668
0
                    break;
4669
0
                case 'e':
4670
0
                    if (ossl_likely(strcmp("nerator", s + 2) == 0)) {
4671
                        /* OSSL_PKEY_PARAM_EC_GENERATOR */
4672
0
                        if (ossl_unlikely(r->generator != NULL)) {
4673
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4674
0
                                           "param %s is repeated", s);
4675
0
                            return 0;
4676
0
                        }
4677
0
                        r->generator = (OSSL_PARAM *)p;
4678
0
                    }
4679
0
                    break;
4680
2.25k
                case 'r':
4681
2.25k
                    switch(s[2]) {
4682
0
                    default:
4683
0
                        break;
4684
2.25k
                    case 'o':
4685
2.25k
                        switch(s[3]) {
4686
0
                        default:
4687
0
                            break;
4688
2.25k
                        case 'u':
4689
2.25k
                            switch(s[4]) {
4690
0
                            default:
4691
0
                                break;
4692
2.25k
                            case 'p':
4693
2.25k
                                switch(s[5]) {
4694
0
                                default:
4695
0
                                    break;
4696
0
                                case '-':
4697
0
                                    if (ossl_likely(strcmp("check", s + 6) == 0)) {
4698
                                        /* OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE */
4699
0
                                        if (ossl_unlikely(r->group_check != NULL)) {
4700
0
                                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4701
0
                                                           "param %s is repeated", s);
4702
0
                                            return 0;
4703
0
                                        }
4704
0
                                        r->group_check = (OSSL_PARAM *)p;
4705
0
                                    }
4706
0
                                    break;
4707
2.25k
                                case '\0':
4708
2.25k
                                    if (ossl_unlikely(r->group_name != NULL)) {
4709
0
                                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4710
0
                                                       "param %s is repeated", s);
4711
0
                                        return 0;
4712
0
                                    }
4713
2.25k
                                    r->group_name = (OSSL_PARAM *)p;
4714
2.25k
                                }
4715
2.25k
                            }
4716
2.25k
                        }
4717
2.25k
                    }
4718
2.25k
                }
4719
2.25k
                break;
4720
2.25k
            case 'k':
4721
# if defined(FIPS_MODULE)
4722
                if (ossl_likely(strcmp("ey-check", s + 1) == 0)) {
4723
                    /* OSSL_PKEY_PARAM_FIPS_KEY_CHECK */
4724
                    if (ossl_unlikely(r->fips_key_check != NULL)) {
4725
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4726
                                       "param %s is repeated", s);
4727
                        return 0;
4728
                    }
4729
                    r->fips_key_check = (OSSL_PARAM *)p;
4730
                }
4731
# endif
4732
0
                break;
4733
0
            case 'o':
4734
0
                if (ossl_likely(strcmp("rder", s + 1) == 0)) {
4735
                    /* OSSL_PKEY_PARAM_EC_ORDER */
4736
0
                    if (ossl_unlikely(r->order != NULL)) {
4737
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4738
0
                                       "param %s is repeated", s);
4739
0
                        return 0;
4740
0
                    }
4741
0
                    r->order = (OSSL_PARAM *)p;
4742
0
                }
4743
0
                break;
4744
0
            case 'p':
4745
0
                switch(s[1]) {
4746
0
                default:
4747
0
                    break;
4748
0
                case 'o':
4749
0
                    if (ossl_likely(strcmp("int-format", s + 2) == 0)) {
4750
                        /* OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT */
4751
0
                        if (ossl_unlikely(r->pt_format != NULL)) {
4752
0
                            break;
4753
0
                        }
4754
0
                        r->pt_format = (OSSL_PARAM *)p;
4755
0
                    }
4756
0
                    break;
4757
0
                case '\0':
4758
0
                    if (ossl_unlikely(r->p != NULL)) {
4759
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4760
0
                                       "param %s is repeated", s);
4761
0
                        return 0;
4762
0
                    }
4763
0
                    r->p = (OSSL_PARAM *)p;
4764
0
                }
4765
0
                break;
4766
0
            case 's':
4767
0
                if (ossl_likely(strcmp("eed", s + 1) == 0)) {
4768
                    /* OSSL_PKEY_PARAM_EC_SEED */
4769
0
                    if (ossl_unlikely(r->seed != NULL)) {
4770
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4771
0
                                       "param %s is repeated", s);
4772
0
                        return 0;
4773
0
                    }
4774
0
                    r->seed = (OSSL_PARAM *)p;
4775
0
                }
4776
0
                break;
4777
0
            case 'u':
4778
0
                if (ossl_likely(strcmp("se-cofactor-flag", s + 1) == 0)) {
4779
                    /* OSSL_PKEY_PARAM_USE_COFACTOR_ECDH */
4780
0
                    if (ossl_unlikely(r->use_cofactor != NULL)) {
4781
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4782
0
                                       "param %s is repeated", s);
4783
0
                        return 0;
4784
0
                    }
4785
0
                    r->use_cofactor = (OSSL_PARAM *)p;
4786
0
                }
4787
2.25k
            }
4788
5.11k
    return 1;
4789
5.11k
}
Unexecuted instantiation: ec_lib.c:ec_gen_set_params_decoder
ec_kmgmt.c:ec_gen_set_params_decoder
Line
Count
Source
4584
5.11k
{
4585
5.11k
    const char *s;
4586
4587
5.11k
    memset(r, 0, sizeof(*r));
4588
5.11k
    if (p != NULL)
4589
4.50k
        for (; (s = p->key) != NULL; p++)
4590
2.25k
            switch(s[0]) {
4591
0
            default:
4592
0
                break;
4593
0
            case 'a':
4594
0
                switch(s[1]) {
4595
0
                default:
4596
0
                    break;
4597
0
                case '\0':
4598
0
                    if (ossl_unlikely(r->a != NULL)) {
4599
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4600
0
                                       "param %s is repeated", s);
4601
0
                        return 0;
4602
0
                    }
4603
0
                    r->a = (OSSL_PARAM *)p;
4604
0
                }
4605
0
                break;
4606
0
            case 'b':
4607
0
                switch(s[1]) {
4608
0
                default:
4609
0
                    break;
4610
0
                case '\0':
4611
0
                    if (ossl_unlikely(r->b != NULL)) {
4612
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4613
0
                                       "param %s is repeated", s);
4614
0
                        return 0;
4615
0
                    }
4616
0
                    r->b = (OSSL_PARAM *)p;
4617
0
                }
4618
0
                break;
4619
0
            case 'c':
4620
0
                if (ossl_likely(strcmp("ofactor", s + 1) == 0)) {
4621
                    /* OSSL_PKEY_PARAM_EC_COFACTOR */
4622
0
                    if (ossl_unlikely(r->cofactor != NULL)) {
4623
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4624
0
                                       "param %s is repeated", s);
4625
0
                        return 0;
4626
0
                    }
4627
0
                    r->cofactor = (OSSL_PARAM *)p;
4628
0
                }
4629
0
                break;
4630
0
            case 'd':
4631
0
# if !defined(FIPS_MODULE)
4632
0
                if (ossl_likely(strcmp("hkem-ikm", s + 1) == 0)) {
4633
                    /* OSSL_PKEY_PARAM_DHKEM_IKM */
4634
0
                    if (ossl_unlikely(r->dhkem_ikm != NULL)) {
4635
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4636
0
                                       "param %s is repeated", s);
4637
0
                        return 0;
4638
0
                    }
4639
0
                    r->dhkem_ikm = (OSSL_PARAM *)p;
4640
0
                }
4641
0
# endif
4642
0
                break;
4643
0
            case 'e':
4644
0
                if (ossl_likely(strcmp("ncoding", s + 1) == 0)) {
4645
                    /* OSSL_PKEY_PARAM_EC_ENCODING */
4646
0
                    if (ossl_unlikely(r->encoding != NULL)) {
4647
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4648
0
                                       "param %s is repeated", s);
4649
0
                        return 0;
4650
0
                    }
4651
0
                    r->encoding = (OSSL_PARAM *)p;
4652
0
                }
4653
0
                break;
4654
0
            case 'f':
4655
0
                if (ossl_likely(strcmp("ield-type", s + 1) == 0)) {
4656
                    /* OSSL_PKEY_PARAM_EC_FIELD_TYPE */
4657
0
                    if (ossl_unlikely(r->field_type != NULL)) {
4658
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4659
0
                                       "param %s is repeated", s);
4660
0
                        return 0;
4661
0
                    }
4662
0
                    r->field_type = (OSSL_PARAM *)p;
4663
0
                }
4664
0
                break;
4665
2.25k
            case 'g':
4666
2.25k
                switch(s[1]) {
4667
0
                default:
4668
0
                    break;
4669
0
                case 'e':
4670
0
                    if (ossl_likely(strcmp("nerator", s + 2) == 0)) {
4671
                        /* OSSL_PKEY_PARAM_EC_GENERATOR */
4672
0
                        if (ossl_unlikely(r->generator != NULL)) {
4673
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4674
0
                                           "param %s is repeated", s);
4675
0
                            return 0;
4676
0
                        }
4677
0
                        r->generator = (OSSL_PARAM *)p;
4678
0
                    }
4679
0
                    break;
4680
2.25k
                case 'r':
4681
2.25k
                    switch(s[2]) {
4682
0
                    default:
4683
0
                        break;
4684
2.25k
                    case 'o':
4685
2.25k
                        switch(s[3]) {
4686
0
                        default:
4687
0
                            break;
4688
2.25k
                        case 'u':
4689
2.25k
                            switch(s[4]) {
4690
0
                            default:
4691
0
                                break;
4692
2.25k
                            case 'p':
4693
2.25k
                                switch(s[5]) {
4694
0
                                default:
4695
0
                                    break;
4696
0
                                case '-':
4697
0
                                    if (ossl_likely(strcmp("check", s + 6) == 0)) {
4698
                                        /* OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE */
4699
0
                                        if (ossl_unlikely(r->group_check != NULL)) {
4700
0
                                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4701
0
                                                           "param %s is repeated", s);
4702
0
                                            return 0;
4703
0
                                        }
4704
0
                                        r->group_check = (OSSL_PARAM *)p;
4705
0
                                    }
4706
0
                                    break;
4707
2.25k
                                case '\0':
4708
2.25k
                                    if (ossl_unlikely(r->group_name != NULL)) {
4709
0
                                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4710
0
                                                       "param %s is repeated", s);
4711
0
                                        return 0;
4712
0
                                    }
4713
2.25k
                                    r->group_name = (OSSL_PARAM *)p;
4714
2.25k
                                }
4715
2.25k
                            }
4716
2.25k
                        }
4717
2.25k
                    }
4718
2.25k
                }
4719
2.25k
                break;
4720
2.25k
            case 'k':
4721
# if defined(FIPS_MODULE)
4722
                if (ossl_likely(strcmp("ey-check", s + 1) == 0)) {
4723
                    /* OSSL_PKEY_PARAM_FIPS_KEY_CHECK */
4724
                    if (ossl_unlikely(r->fips_key_check != NULL)) {
4725
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4726
                                       "param %s is repeated", s);
4727
                        return 0;
4728
                    }
4729
                    r->fips_key_check = (OSSL_PARAM *)p;
4730
                }
4731
# endif
4732
0
                break;
4733
0
            case 'o':
4734
0
                if (ossl_likely(strcmp("rder", s + 1) == 0)) {
4735
                    /* OSSL_PKEY_PARAM_EC_ORDER */
4736
0
                    if (ossl_unlikely(r->order != NULL)) {
4737
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4738
0
                                       "param %s is repeated", s);
4739
0
                        return 0;
4740
0
                    }
4741
0
                    r->order = (OSSL_PARAM *)p;
4742
0
                }
4743
0
                break;
4744
0
            case 'p':
4745
0
                switch(s[1]) {
4746
0
                default:
4747
0
                    break;
4748
0
                case 'o':
4749
0
                    if (ossl_likely(strcmp("int-format", s + 2) == 0)) {
4750
                        /* OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT */
4751
0
                        if (ossl_unlikely(r->pt_format != NULL)) {
4752
0
                            break;
4753
0
                        }
4754
0
                        r->pt_format = (OSSL_PARAM *)p;
4755
0
                    }
4756
0
                    break;
4757
0
                case '\0':
4758
0
                    if (ossl_unlikely(r->p != NULL)) {
4759
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4760
0
                                       "param %s is repeated", s);
4761
0
                        return 0;
4762
0
                    }
4763
0
                    r->p = (OSSL_PARAM *)p;
4764
0
                }
4765
0
                break;
4766
0
            case 's':
4767
0
                if (ossl_likely(strcmp("eed", s + 1) == 0)) {
4768
                    /* OSSL_PKEY_PARAM_EC_SEED */
4769
0
                    if (ossl_unlikely(r->seed != NULL)) {
4770
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4771
0
                                       "param %s is repeated", s);
4772
0
                        return 0;
4773
0
                    }
4774
0
                    r->seed = (OSSL_PARAM *)p;
4775
0
                }
4776
0
                break;
4777
0
            case 'u':
4778
0
                if (ossl_likely(strcmp("se-cofactor-flag", s + 1) == 0)) {
4779
                    /* OSSL_PKEY_PARAM_USE_COFACTOR_ECDH */
4780
0
                    if (ossl_unlikely(r->use_cofactor != NULL)) {
4781
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4782
0
                                       "param %s is repeated", s);
4783
0
                        return 0;
4784
0
                    }
4785
0
                    r->use_cofactor = (OSSL_PARAM *)p;
4786
0
                }
4787
2.25k
            }
4788
5.11k
    return 1;
4789
5.11k
}
Unexecuted instantiation: ec_ameth.c:ec_gen_set_params_decoder
Unexecuted instantiation: ec_backend.c:ec_gen_set_params_decoder
4790
#endif
4791
/* End of machine generated */
4792
4793
#define sm2_gen_set_params_st ec_params_st
4794
/* Machine generated */
4795
#ifndef sm2_gen_set_params_list
4796
static ossl_unused const OSSL_PARAM sm2_gen_set_params_list[] = {
4797
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_GROUP_NAME, NULL, 0),
4798
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_ENCODING, NULL, 0),
4799
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT, NULL, 0),
4800
    OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_FIELD_TYPE, NULL, 0),
4801
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_P, NULL, 0),
4802
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_A, NULL, 0),
4803
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_B, NULL, 0),
4804
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_EC_GENERATOR, NULL, 0),
4805
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_ORDER, NULL, 0),
4806
    OSSL_PARAM_BN(OSSL_PKEY_PARAM_EC_COFACTOR, NULL, 0),
4807
    OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_EC_SEED, NULL, 0),
4808
    OSSL_PARAM_END
4809
};
4810
#endif
4811
4812
#ifndef sm2_gen_set_params_st
4813
struct sm2_gen_set_params_st {
4814
    OSSL_PARAM *a;
4815
    OSSL_PARAM *b;
4816
    OSSL_PARAM *cofactor;
4817
    OSSL_PARAM *encoding;
4818
    OSSL_PARAM *field_type;
4819
    OSSL_PARAM *generator;
4820
    OSSL_PARAM *group_name;
4821
    OSSL_PARAM *order;
4822
    OSSL_PARAM *p;
4823
    OSSL_PARAM *pt_format;
4824
    OSSL_PARAM *seed;
4825
};
4826
#endif
4827
4828
#ifndef sm2_gen_set_params_decoder
4829
static ossl_unused int sm2_gen_set_params_decoder
4830
    (const OSSL_PARAM *p, struct sm2_gen_set_params_st *r)
4831
413
{
4832
413
    const char *s;
4833
4834
413
    memset(r, 0, sizeof(*r));
4835
413
    if (p != NULL)
4836
349
        for (; (s = p->key) != NULL; p++)
4837
174
            switch(s[0]) {
4838
0
            default:
4839
0
                break;
4840
0
            case 'a':
4841
0
                switch(s[1]) {
4842
0
                default:
4843
0
                    break;
4844
0
                case '\0':
4845
0
                    if (ossl_unlikely(r->a != NULL)) {
4846
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4847
0
                                       "param %s is repeated", s);
4848
0
                        return 0;
4849
0
                    }
4850
0
                    r->a = (OSSL_PARAM *)p;
4851
0
                }
4852
0
                break;
4853
0
            case 'b':
4854
0
                switch(s[1]) {
4855
0
                default:
4856
0
                    break;
4857
0
                case '\0':
4858
0
                    if (ossl_unlikely(r->b != NULL)) {
4859
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4860
0
                                       "param %s is repeated", s);
4861
0
                        return 0;
4862
0
                    }
4863
0
                    r->b = (OSSL_PARAM *)p;
4864
0
                }
4865
0
                break;
4866
0
            case 'c':
4867
0
                if (ossl_likely(strcmp("ofactor", s + 1) == 0)) {
4868
                    /* OSSL_PKEY_PARAM_EC_COFACTOR */
4869
0
                    if (ossl_unlikely(r->cofactor != NULL)) {
4870
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4871
0
                                       "param %s is repeated", s);
4872
0
                        return 0;
4873
0
                    }
4874
0
                    r->cofactor = (OSSL_PARAM *)p;
4875
0
                }
4876
0
                break;
4877
0
            case 'e':
4878
0
                if (ossl_likely(strcmp("ncoding", s + 1) == 0)) {
4879
                    /* OSSL_PKEY_PARAM_EC_ENCODING */
4880
0
                    if (ossl_unlikely(r->encoding != NULL)) {
4881
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4882
0
                                       "param %s is repeated", s);
4883
0
                        return 0;
4884
0
                    }
4885
0
                    r->encoding = (OSSL_PARAM *)p;
4886
0
                }
4887
0
                break;
4888
0
            case 'f':
4889
0
                if (ossl_likely(strcmp("ield-type", s + 1) == 0)) {
4890
                    /* OSSL_PKEY_PARAM_EC_FIELD_TYPE */
4891
0
                    if (ossl_unlikely(r->field_type != NULL)) {
4892
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4893
0
                                       "param %s is repeated", s);
4894
0
                        return 0;
4895
0
                    }
4896
0
                    r->field_type = (OSSL_PARAM *)p;
4897
0
                }
4898
0
                break;
4899
174
            case 'g':
4900
174
                switch(s[1]) {
4901
0
                default:
4902
0
                    break;
4903
0
                case 'e':
4904
0
                    if (ossl_likely(strcmp("nerator", s + 2) == 0)) {
4905
                        /* OSSL_PKEY_PARAM_EC_GENERATOR */
4906
0
                        if (ossl_unlikely(r->generator != NULL)) {
4907
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4908
0
                                           "param %s is repeated", s);
4909
0
                            return 0;
4910
0
                        }
4911
0
                        r->generator = (OSSL_PARAM *)p;
4912
0
                    }
4913
0
                    break;
4914
174
                case 'r':
4915
174
                    if (ossl_likely(strcmp("oup", s + 2) == 0)) {
4916
                        /* OSSL_PKEY_PARAM_GROUP_NAME */
4917
174
                        if (ossl_unlikely(r->group_name != NULL)) {
4918
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4919
0
                                           "param %s is repeated", s);
4920
0
                            return 0;
4921
0
                        }
4922
174
                        r->group_name = (OSSL_PARAM *)p;
4923
174
                    }
4924
174
                }
4925
174
                break;
4926
174
            case 'o':
4927
0
                if (ossl_likely(strcmp("rder", s + 1) == 0)) {
4928
                    /* OSSL_PKEY_PARAM_EC_ORDER */
4929
0
                    if (ossl_unlikely(r->order != NULL)) {
4930
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4931
0
                                       "param %s is repeated", s);
4932
0
                        return 0;
4933
0
                    }
4934
0
                    r->order = (OSSL_PARAM *)p;
4935
0
                }
4936
0
                break;
4937
0
            case 'p':
4938
0
                switch(s[1]) {
4939
0
                default:
4940
0
                    break;
4941
0
                case 'o':
4942
0
                    if (ossl_likely(strcmp("int-format", s + 2) == 0)) {
4943
                        /* OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT */
4944
0
                        if (ossl_unlikely(r->pt_format != NULL)) {
4945
0
                            break;
4946
0
                        }
4947
0
                        r->pt_format = (OSSL_PARAM *)p;
4948
0
                    }
4949
0
                    break;
4950
0
                case '\0':
4951
0
                    if (ossl_unlikely(r->p != NULL)) {
4952
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4953
0
                                       "param %s is repeated", s);
4954
0
                        return 0;
4955
0
                    }
4956
0
                    r->p = (OSSL_PARAM *)p;
4957
0
                }
4958
0
                break;
4959
0
            case 's':
4960
0
                if (ossl_likely(strcmp("eed", s + 1) == 0)) {
4961
                    /* OSSL_PKEY_PARAM_EC_SEED */
4962
0
                    if (ossl_unlikely(r->seed != NULL)) {
4963
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4964
0
                                       "param %s is repeated", s);
4965
0
                        return 0;
4966
0
                    }
4967
0
                    r->seed = (OSSL_PARAM *)p;
4968
0
                }
4969
174
            }
4970
413
    return 1;
4971
413
}
Unexecuted instantiation: ec_lib.c:sm2_gen_set_params_decoder
ec_kmgmt.c:sm2_gen_set_params_decoder
Line
Count
Source
4831
413
{
4832
413
    const char *s;
4833
4834
413
    memset(r, 0, sizeof(*r));
4835
413
    if (p != NULL)
4836
349
        for (; (s = p->key) != NULL; p++)
4837
174
            switch(s[0]) {
4838
0
            default:
4839
0
                break;
4840
0
            case 'a':
4841
0
                switch(s[1]) {
4842
0
                default:
4843
0
                    break;
4844
0
                case '\0':
4845
0
                    if (ossl_unlikely(r->a != NULL)) {
4846
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4847
0
                                       "param %s is repeated", s);
4848
0
                        return 0;
4849
0
                    }
4850
0
                    r->a = (OSSL_PARAM *)p;
4851
0
                }
4852
0
                break;
4853
0
            case 'b':
4854
0
                switch(s[1]) {
4855
0
                default:
4856
0
                    break;
4857
0
                case '\0':
4858
0
                    if (ossl_unlikely(r->b != NULL)) {
4859
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4860
0
                                       "param %s is repeated", s);
4861
0
                        return 0;
4862
0
                    }
4863
0
                    r->b = (OSSL_PARAM *)p;
4864
0
                }
4865
0
                break;
4866
0
            case 'c':
4867
0
                if (ossl_likely(strcmp("ofactor", s + 1) == 0)) {
4868
                    /* OSSL_PKEY_PARAM_EC_COFACTOR */
4869
0
                    if (ossl_unlikely(r->cofactor != NULL)) {
4870
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4871
0
                                       "param %s is repeated", s);
4872
0
                        return 0;
4873
0
                    }
4874
0
                    r->cofactor = (OSSL_PARAM *)p;
4875
0
                }
4876
0
                break;
4877
0
            case 'e':
4878
0
                if (ossl_likely(strcmp("ncoding", s + 1) == 0)) {
4879
                    /* OSSL_PKEY_PARAM_EC_ENCODING */
4880
0
                    if (ossl_unlikely(r->encoding != NULL)) {
4881
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4882
0
                                       "param %s is repeated", s);
4883
0
                        return 0;
4884
0
                    }
4885
0
                    r->encoding = (OSSL_PARAM *)p;
4886
0
                }
4887
0
                break;
4888
0
            case 'f':
4889
0
                if (ossl_likely(strcmp("ield-type", s + 1) == 0)) {
4890
                    /* OSSL_PKEY_PARAM_EC_FIELD_TYPE */
4891
0
                    if (ossl_unlikely(r->field_type != NULL)) {
4892
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4893
0
                                       "param %s is repeated", s);
4894
0
                        return 0;
4895
0
                    }
4896
0
                    r->field_type = (OSSL_PARAM *)p;
4897
0
                }
4898
0
                break;
4899
174
            case 'g':
4900
174
                switch(s[1]) {
4901
0
                default:
4902
0
                    break;
4903
0
                case 'e':
4904
0
                    if (ossl_likely(strcmp("nerator", s + 2) == 0)) {
4905
                        /* OSSL_PKEY_PARAM_EC_GENERATOR */
4906
0
                        if (ossl_unlikely(r->generator != NULL)) {
4907
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4908
0
                                           "param %s is repeated", s);
4909
0
                            return 0;
4910
0
                        }
4911
0
                        r->generator = (OSSL_PARAM *)p;
4912
0
                    }
4913
0
                    break;
4914
174
                case 'r':
4915
174
                    if (ossl_likely(strcmp("oup", s + 2) == 0)) {
4916
                        /* OSSL_PKEY_PARAM_GROUP_NAME */
4917
174
                        if (ossl_unlikely(r->group_name != NULL)) {
4918
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4919
0
                                           "param %s is repeated", s);
4920
0
                            return 0;
4921
0
                        }
4922
174
                        r->group_name = (OSSL_PARAM *)p;
4923
174
                    }
4924
174
                }
4925
174
                break;
4926
174
            case 'o':
4927
0
                if (ossl_likely(strcmp("rder", s + 1) == 0)) {
4928
                    /* OSSL_PKEY_PARAM_EC_ORDER */
4929
0
                    if (ossl_unlikely(r->order != NULL)) {
4930
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4931
0
                                       "param %s is repeated", s);
4932
0
                        return 0;
4933
0
                    }
4934
0
                    r->order = (OSSL_PARAM *)p;
4935
0
                }
4936
0
                break;
4937
0
            case 'p':
4938
0
                switch(s[1]) {
4939
0
                default:
4940
0
                    break;
4941
0
                case 'o':
4942
0
                    if (ossl_likely(strcmp("int-format", s + 2) == 0)) {
4943
                        /* OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT */
4944
0
                        if (ossl_unlikely(r->pt_format != NULL)) {
4945
0
                            break;
4946
0
                        }
4947
0
                        r->pt_format = (OSSL_PARAM *)p;
4948
0
                    }
4949
0
                    break;
4950
0
                case '\0':
4951
0
                    if (ossl_unlikely(r->p != NULL)) {
4952
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4953
0
                                       "param %s is repeated", s);
4954
0
                        return 0;
4955
0
                    }
4956
0
                    r->p = (OSSL_PARAM *)p;
4957
0
                }
4958
0
                break;
4959
0
            case 's':
4960
0
                if (ossl_likely(strcmp("eed", s + 1) == 0)) {
4961
                    /* OSSL_PKEY_PARAM_EC_SEED */
4962
0
                    if (ossl_unlikely(r->seed != NULL)) {
4963
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
4964
0
                                       "param %s is repeated", s);
4965
0
                        return 0;
4966
0
                    }
4967
0
                    r->seed = (OSSL_PARAM *)p;
4968
0
                }
4969
174
            }
4970
413
    return 1;
4971
413
}
Unexecuted instantiation: ec_ameth.c:sm2_gen_set_params_decoder
Unexecuted instantiation: ec_backend.c:sm2_gen_set_params_decoder
4972
#endif
4973
/* End of machine generated */
4974
4975
#define ec_gen_get_params_st ec_params_st
4976
/* Machine generated */
4977
#ifndef ec_gen_get_params_list
4978
static ossl_unused const OSSL_PARAM ec_gen_get_params_list[] = {
4979
# if defined(FIPS_MODULE)
4980
    OSSL_PARAM_int(OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR, NULL),
4981
# endif
4982
    OSSL_PARAM_END
4983
};
4984
#endif
4985
4986
#ifndef ec_gen_get_params_st
4987
struct ec_gen_get_params_st {
4988
# if defined(FIPS_MODULE)
4989
    OSSL_PARAM *fips_indicator;
4990
# else
4991
    int dummy; /* unused */
4992
# endif
4993
};
4994
#endif
4995
4996
#ifndef ec_gen_get_params_decoder
4997
static ossl_unused int ec_gen_get_params_decoder
4998
    (const OSSL_PARAM *p, struct ec_gen_get_params_st *r)
4999
0
{
5000
0
    const char *s;
5001
5002
0
    memset(r, 0, sizeof(*r));
5003
0
    if (p != NULL)
5004
0
        for (; (s = p->key) != NULL; p++)
5005
# if defined(FIPS_MODULE)
5006
            if (ossl_likely(strcmp("fips-indicator", s + 0) == 0)) {
5007
                /* OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR */
5008
                if (ossl_unlikely(r->fips_indicator != NULL)) {
5009
                    ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
5010
                                   "param %s is repeated", s);
5011
                    return 0;
5012
                }
5013
                r->fips_indicator = (OSSL_PARAM *)p;
5014
            }
5015
# else
5016
0
            ;
5017
0
# endif
5018
0
    return 1;
5019
0
}
Unexecuted instantiation: ec_lib.c:ec_gen_get_params_decoder
Unexecuted instantiation: ec_kmgmt.c:ec_gen_get_params_decoder
Unexecuted instantiation: ec_ameth.c:ec_gen_get_params_decoder
Unexecuted instantiation: ec_backend.c:ec_gen_get_params_decoder
5020
#endif
5021
/* End of machine generated */
5022
5023
/* clang-format on */
5024
5025
#endif