Coverage Report

Created: 2025-11-07 06:36

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/openssl/providers/implementations/signature/ecdsa_sig.inc
Line
Count
Source
1
/*
2
 * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved.
3
 *
4
 * Licensed under the Apache License 2.0 (the \"License\").  You may not use
5
 * this file except in compliance with the License.  You can obtain a copy
6
 * in the file LICENSE in the source distribution or at
7
 * https://www.openssl.org/source/license.html
8
 */
9
10
11
12
/* Machine generated by util/perl/OpenSSL/paramnames.pm */
13
#ifndef ecdsa_get_ctx_params_list
14
static const OSSL_PARAM ecdsa_get_ctx_params_list[] = {
15
    OSSL_PARAM_octet_string(OSSL_SIGNATURE_PARAM_ALGORITHM_ID, NULL, 0),
16
    OSSL_PARAM_size_t(OSSL_SIGNATURE_PARAM_DIGEST_SIZE, NULL),
17
    OSSL_PARAM_utf8_string(OSSL_SIGNATURE_PARAM_DIGEST, NULL, 0),
18
    OSSL_PARAM_uint(OSSL_SIGNATURE_PARAM_NONCE_TYPE, NULL),
19
# if defined(FIPS_MODULE)
20
    OSSL_PARAM_uint(OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE, NULL),
21
# endif
22
# if defined(FIPS_MODULE)
23
    OSSL_PARAM_int(OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR, NULL),
24
# endif
25
    OSSL_PARAM_END
26
};
27
#endif
28
29
#ifndef ecdsa_get_ctx_params_st
30
struct ecdsa_get_ctx_params_st {
31
    OSSL_PARAM *algid;
32
    OSSL_PARAM *digest;
33
# if defined(FIPS_MODULE)
34
    OSSL_PARAM *ind;
35
# endif
36
    OSSL_PARAM *nonce;
37
    OSSL_PARAM *size;
38
# if defined(FIPS_MODULE)
39
    OSSL_PARAM *verify;
40
# endif
41
};
42
#endif
43
44
#ifndef ecdsa_get_ctx_params_decoder
45
static int ecdsa_get_ctx_params_decoder
46
    (const OSSL_PARAM *p, struct ecdsa_get_ctx_params_st *r)
47
0
{
48
0
    const char *s;
49
50
0
    memset(r, 0, sizeof(*r));
51
0
    if (p != NULL)
52
0
        for (; (s = p->key) != NULL; p++)
53
0
            switch(s[0]) {
54
0
            default:
55
0
                break;
56
0
            case 'a':
57
0
                if (ossl_likely(strcmp("lgorithm-id", s + 1) == 0)) {
58
                    /* OSSL_SIGNATURE_PARAM_ALGORITHM_ID */
59
0
                    if (ossl_unlikely(r->algid != NULL)) {
60
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
61
0
                                       "param %s is repeated", s);
62
0
                        return 0;
63
0
                    }
64
0
                    r->algid = (OSSL_PARAM *)p;
65
0
                }
66
0
                break;
67
0
            case 'd':
68
0
                switch(s[1]) {
69
0
                default:
70
0
                    break;
71
0
                case 'i':
72
0
                    switch(s[2]) {
73
0
                    default:
74
0
                        break;
75
0
                    case 'g':
76
0
                        switch(s[3]) {
77
0
                        default:
78
0
                            break;
79
0
                        case 'e':
80
0
                            switch(s[4]) {
81
0
                            default:
82
0
                                break;
83
0
                            case 's':
84
0
                                switch(s[5]) {
85
0
                                default:
86
0
                                    break;
87
0
                                case 't':
88
0
                                    switch(s[6]) {
89
0
                                    default:
90
0
                                        break;
91
0
                                    case '-':
92
0
                                        if (ossl_likely(strcmp("size", s + 7) == 0)) {
93
                                            /* OSSL_SIGNATURE_PARAM_DIGEST_SIZE */
94
0
                                            if (ossl_unlikely(r->size != NULL)) {
95
0
                                                ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
96
0
                                                               "param %s is repeated", s);
97
0
                                                return 0;
98
0
                                            }
99
0
                                            r->size = (OSSL_PARAM *)p;
100
0
                                        }
101
0
                                        break;
102
0
                                    case '\0':
103
0
                                        if (ossl_unlikely(r->digest != NULL)) {
104
0
                                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
105
0
                                                           "param %s is repeated", s);
106
0
                                            return 0;
107
0
                                        }
108
0
                                        r->digest = (OSSL_PARAM *)p;
109
0
                                    }
110
0
                                }
111
0
                            }
112
0
                        }
113
0
                    }
114
0
                }
115
0
                break;
116
0
            case 'f':
117
# if defined(FIPS_MODULE)
118
                if (ossl_likely(strcmp("ips-indicator", s + 1) == 0)) {
119
                    /* OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR */
120
                    if (ossl_unlikely(r->ind != NULL)) {
121
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
122
                                       "param %s is repeated", s);
123
                        return 0;
124
                    }
125
                    r->ind = (OSSL_PARAM *)p;
126
                }
127
# endif
128
0
                break;
129
0
            case 'n':
130
0
                if (ossl_likely(strcmp("once-type", s + 1) == 0)) {
131
                    /* OSSL_SIGNATURE_PARAM_NONCE_TYPE */
132
0
                    if (ossl_unlikely(r->nonce != NULL)) {
133
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
134
0
                                       "param %s is repeated", s);
135
0
                        return 0;
136
0
                    }
137
0
                    r->nonce = (OSSL_PARAM *)p;
138
0
                }
139
0
                break;
140
0
            case 'v':
141
# if defined(FIPS_MODULE)
142
                if (ossl_likely(strcmp("erify-message", s + 1) == 0)) {
143
                    /* OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE */
144
                    if (ossl_unlikely(r->verify != NULL)) {
145
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
146
                                       "param %s is repeated", s);
147
                        return 0;
148
                    }
149
                    r->verify = (OSSL_PARAM *)p;
150
                }
151
# endif
152
0
                break;
153
0
            }
154
0
    return 1;
155
0
}
156
#endif
157
/* End of machine generated */
158
159
/* Machine generated by util/perl/OpenSSL/paramnames.pm */
160
#ifndef ecdsa_set_ctx_params_list
161
static const OSSL_PARAM ecdsa_set_ctx_params_list[] = {
162
    OSSL_PARAM_utf8_string(OSSL_SIGNATURE_PARAM_DIGEST, NULL, 0),
163
    OSSL_PARAM_utf8_string(OSSL_SIGNATURE_PARAM_PROPERTIES, NULL, 0),
164
    OSSL_PARAM_size_t(OSSL_SIGNATURE_PARAM_DIGEST_SIZE, NULL),
165
# if !defined(OPENSSL_NO_ACVP_TESTS)
166
    OSSL_PARAM_uint(OSSL_SIGNATURE_PARAM_KAT, NULL),
167
# endif
168
    OSSL_PARAM_uint(OSSL_SIGNATURE_PARAM_NONCE_TYPE, NULL),
169
# if defined(FIPS_MODULE)
170
    OSSL_PARAM_int(OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK, NULL),
171
# endif
172
# if defined(FIPS_MODULE)
173
    OSSL_PARAM_int(OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK, NULL),
174
# endif
175
    OSSL_PARAM_END
176
};
177
#endif
178
179
#ifndef ecdsa_set_ctx_params_st
180
struct ecdsa_set_ctx_params_st {
181
    OSSL_PARAM *digest;
182
# if defined(FIPS_MODULE)
183
    OSSL_PARAM *ind_d;
184
# endif
185
# if defined(FIPS_MODULE)
186
    OSSL_PARAM *ind_k;
187
# endif
188
# if !defined(OPENSSL_NO_ACVP_TESTS)
189
    OSSL_PARAM *kat;
190
# endif
191
    OSSL_PARAM *nonce;
192
    OSSL_PARAM *propq;
193
    OSSL_PARAM *size;
194
};
195
#endif
196
197
#ifndef ecdsa_set_ctx_params_decoder
198
static int ecdsa_set_ctx_params_decoder
199
    (const OSSL_PARAM *p, struct ecdsa_set_ctx_params_st *r)
200
0
{
201
0
    const char *s;
202
203
0
    memset(r, 0, sizeof(*r));
204
0
    if (p != NULL)
205
0
        for (; (s = p->key) != NULL; p++)
206
0
            switch(s[0]) {
207
0
            default:
208
0
                break;
209
0
            case 'd':
210
0
                switch(s[1]) {
211
0
                default:
212
0
                    break;
213
0
                case 'i':
214
0
                    switch(s[2]) {
215
0
                    default:
216
0
                        break;
217
0
                    case 'g':
218
0
                        switch(s[3]) {
219
0
                        default:
220
0
                            break;
221
0
                        case 'e':
222
0
                            switch(s[4]) {
223
0
                            default:
224
0
                                break;
225
0
                            case 's':
226
0
                                switch(s[5]) {
227
0
                                default:
228
0
                                    break;
229
0
                                case 't':
230
0
                                    switch(s[6]) {
231
0
                                    default:
232
0
                                        break;
233
0
                                    case '-':
234
0
                                        switch(s[7]) {
235
0
                                        default:
236
0
                                            break;
237
0
                                        case 'c':
238
# if defined(FIPS_MODULE)
239
                                            if (ossl_likely(strcmp("heck", s + 8) == 0)) {
240
                                                /* OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK */
241
                                                if (ossl_unlikely(r->ind_d != NULL)) {
242
                                                    ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
243
                                                                   "param %s is repeated", s);
244
                                                    return 0;
245
                                                }
246
                                                r->ind_d = (OSSL_PARAM *)p;
247
                                            }
248
# endif
249
0
                                            break;
250
0
                                        case 's':
251
0
                                            if (ossl_likely(strcmp("ize", s + 8) == 0)) {
252
                                                /* OSSL_SIGNATURE_PARAM_DIGEST_SIZE */
253
0
                                                if (ossl_unlikely(r->size != NULL)) {
254
0
                                                    ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
255
0
                                                                   "param %s is repeated", s);
256
0
                                                    return 0;
257
0
                                                }
258
0
                                                r->size = (OSSL_PARAM *)p;
259
0
                                            }
260
0
                                        }
261
0
                                        break;
262
0
                                    case '\0':
263
0
                                        if (ossl_unlikely(r->digest != NULL)) {
264
0
                                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
265
0
                                                           "param %s is repeated", s);
266
0
                                            return 0;
267
0
                                        }
268
0
                                        r->digest = (OSSL_PARAM *)p;
269
0
                                    }
270
0
                                }
271
0
                            }
272
0
                        }
273
0
                    }
274
0
                }
275
0
                break;
276
0
            case 'k':
277
0
                switch(s[1]) {
278
0
                default:
279
0
                    break;
280
0
                case 'a':
281
# if !defined(OPENSSL_NO_ACVP_TESTS)
282
                    if (ossl_likely(strcmp("t", s + 2) == 0)) {
283
                        /* OSSL_SIGNATURE_PARAM_KAT */
284
                        if (ossl_unlikely(r->kat != NULL)) {
285
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
286
                                           "param %s is repeated", s);
287
                            return 0;
288
                        }
289
                        r->kat = (OSSL_PARAM *)p;
290
                    }
291
# endif
292
0
                    break;
293
0
                case 'e':
294
# if defined(FIPS_MODULE)
295
                    if (ossl_likely(strcmp("y-check", s + 2) == 0)) {
296
                        /* OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK */
297
                        if (ossl_unlikely(r->ind_k != NULL)) {
298
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
299
                                           "param %s is repeated", s);
300
                            return 0;
301
                        }
302
                        r->ind_k = (OSSL_PARAM *)p;
303
                    }
304
# endif
305
0
                    break;
306
0
                }
307
0
                break;
308
0
            case 'n':
309
0
                if (ossl_likely(strcmp("once-type", s + 1) == 0)) {
310
                    /* OSSL_SIGNATURE_PARAM_NONCE_TYPE */
311
0
                    if (ossl_unlikely(r->nonce != NULL)) {
312
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
313
0
                                       "param %s is repeated", s);
314
0
                        return 0;
315
0
                    }
316
0
                    r->nonce = (OSSL_PARAM *)p;
317
0
                }
318
0
                break;
319
0
            case 'p':
320
0
                if (ossl_likely(strcmp("roperties", s + 1) == 0)) {
321
                    /* OSSL_SIGNATURE_PARAM_PROPERTIES */
322
0
                    if (ossl_unlikely(r->propq != NULL)) {
323
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
324
0
                                       "param %s is repeated", s);
325
0
                        return 0;
326
0
                    }
327
0
                    r->propq = (OSSL_PARAM *)p;
328
0
                }
329
0
            }
330
0
    return 1;
331
0
}
332
#endif
333
/* End of machine generated */
334
335
/* Machine generated by util/perl/OpenSSL/paramnames.pm */
336
#ifndef ecdsa_sigalg_set_ctx_params_list
337
static const OSSL_PARAM ecdsa_sigalg_set_ctx_params_list[] = {
338
    OSSL_PARAM_octet_string(OSSL_SIGNATURE_PARAM_SIGNATURE, NULL, 0),
339
# if !defined(OPENSSL_NO_ACVP_TESTS)
340
    OSSL_PARAM_uint(OSSL_SIGNATURE_PARAM_KAT, NULL),
341
# endif
342
    OSSL_PARAM_uint(OSSL_SIGNATURE_PARAM_NONCE_TYPE, NULL),
343
# if defined(FIPS_MODULE)
344
    OSSL_PARAM_int(OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK, NULL),
345
# endif
346
# if defined(FIPS_MODULE)
347
    OSSL_PARAM_int(OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK, NULL),
348
# endif
349
    OSSL_PARAM_END
350
};
351
#endif
352
353
#ifndef ecdsa_sigalg_set_ctx_params_st
354
struct ecdsa_sigalg_set_ctx_params_st {
355
# if defined(FIPS_MODULE)
356
    OSSL_PARAM *ind_d;
357
# endif
358
# if defined(FIPS_MODULE)
359
    OSSL_PARAM *ind_k;
360
# endif
361
# if !defined(OPENSSL_NO_ACVP_TESTS)
362
    OSSL_PARAM *kat;
363
# endif
364
    OSSL_PARAM *nonce;
365
    OSSL_PARAM *sig;
366
};
367
#endif
368
369
#ifndef ecdsa_sigalg_set_ctx_params_decoder
370
static int ecdsa_sigalg_set_ctx_params_decoder
371
    (const OSSL_PARAM *p, struct ecdsa_sigalg_set_ctx_params_st *r)
372
0
{
373
0
    const char *s;
374
375
0
    memset(r, 0, sizeof(*r));
376
0
    if (p != NULL)
377
0
        for (; (s = p->key) != NULL; p++)
378
0
            switch(s[0]) {
379
0
            default:
380
0
                break;
381
0
            case 'd':
382
# if defined(FIPS_MODULE)
383
                if (ossl_likely(strcmp("igest-check", s + 1) == 0)) {
384
                    /* OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK */
385
                    if (ossl_unlikely(r->ind_d != NULL)) {
386
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
387
                                       "param %s is repeated", s);
388
                        return 0;
389
                    }
390
                    r->ind_d = (OSSL_PARAM *)p;
391
                }
392
# endif
393
0
                break;
394
0
            case 'k':
395
0
                switch(s[1]) {
396
0
                default:
397
0
                    break;
398
0
                case 'a':
399
# if !defined(OPENSSL_NO_ACVP_TESTS)
400
                    if (ossl_likely(strcmp("t", s + 2) == 0)) {
401
                        /* OSSL_SIGNATURE_PARAM_KAT */
402
                        if (ossl_unlikely(r->kat != NULL)) {
403
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
404
                                           "param %s is repeated", s);
405
                            return 0;
406
                        }
407
                        r->kat = (OSSL_PARAM *)p;
408
                    }
409
# endif
410
0
                    break;
411
0
                case 'e':
412
# if defined(FIPS_MODULE)
413
                    if (ossl_likely(strcmp("y-check", s + 2) == 0)) {
414
                        /* OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK */
415
                        if (ossl_unlikely(r->ind_k != NULL)) {
416
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
417
                                           "param %s is repeated", s);
418
                            return 0;
419
                        }
420
                        r->ind_k = (OSSL_PARAM *)p;
421
                    }
422
# endif
423
0
                    break;
424
0
                }
425
0
                break;
426
0
            case 'n':
427
0
                if (ossl_likely(strcmp("once-type", s + 1) == 0)) {
428
                    /* OSSL_SIGNATURE_PARAM_NONCE_TYPE */
429
0
                    if (ossl_unlikely(r->nonce != 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->nonce = (OSSL_PARAM *)p;
435
0
                }
436
0
                break;
437
0
            case 's':
438
0
                if (ossl_likely(strcmp("ignature", s + 1) == 0)) {
439
                    /* OSSL_SIGNATURE_PARAM_SIGNATURE */
440
0
                    if (ossl_unlikely(r->sig != 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->sig = (OSSL_PARAM *)p;
446
0
                }
447
0
            }
448
0
    return 1;
449
0
}
450
#endif
451
/* End of machine generated */