Coverage Report

Created: 2026-09-12 06:55

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