Coverage Report

Created: 2026-05-20 07:05

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