Coverage Report

Created: 2026-09-12 06:55

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/openssl41/providers/implementations/kdfs/tls1_prf.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 tls1prf_set_ctx_params_list
21
static ossl_unused const OSSL_PARAM tls1prf_set_ctx_params_list[] = {
22
    OSSL_PARAM_utf8_string(OSSL_KDF_PARAM_PROPERTIES, NULL, 0),
23
    OSSL_PARAM_utf8_string(OSSL_KDF_PARAM_DIGEST, NULL, 0),
24
    OSSL_PARAM_octet_string(OSSL_KDF_PARAM_SECRET, NULL, 0),
25
    OSSL_PARAM_octet_string(OSSL_KDF_PARAM_SEED, NULL, 0),
26
# if defined(FIPS_MODULE)
27
    OSSL_PARAM_int(OSSL_KDF_PARAM_FIPS_EMS_CHECK, NULL),
28
# endif
29
# if defined(FIPS_MODULE)
30
    OSSL_PARAM_int(OSSL_KDF_PARAM_FIPS_DIGEST_CHECK, NULL),
31
# endif
32
# if defined(FIPS_MODULE)
33
    OSSL_PARAM_int(OSSL_KDF_PARAM_FIPS_KEY_CHECK, NULL),
34
# endif
35
    OSSL_PARAM_END
36
};
37
#endif
38
39
#ifndef tls1prf_set_ctx_params_st
40
struct tls1prf_set_ctx_params_st {
41
    OSSL_PARAM *digest;
42
# if defined(FIPS_MODULE)
43
    OSSL_PARAM *ind_d;
44
# endif
45
# if defined(FIPS_MODULE)
46
    OSSL_PARAM *ind_e;
47
# endif
48
# if defined(FIPS_MODULE)
49
    OSSL_PARAM *ind_k;
50
# endif
51
    OSSL_PARAM *propq;
52
    OSSL_PARAM *secret;
53
    OSSL_PARAM *seed[TLSPRF_MAX_SEEDS];
54
    int num_seed;
55
};
56
#endif
57
58
#ifndef tls1prf_set_ctx_params_decoder
59
static ossl_unused int tls1prf_set_ctx_params_decoder
60
    (const OSSL_PARAM *p, struct tls1prf_set_ctx_params_st *r)
61
22.1k
{
62
22.1k
    const char *s;
63
64
22.1k
    memset(r, 0, sizeof(*r));
65
22.1k
    if (p != NULL)
66
173k
        for (; (s = p->key) != NULL; p++)
67
151k
            switch(s[0]) {
68
0
            default:
69
0
                break;
70
21.9k
            case 'd':
71
21.9k
                switch(s[1]) {
72
0
                default:
73
0
                    break;
74
21.9k
                case 'i':
75
21.9k
                    switch(s[2]) {
76
0
                    default:
77
0
                        break;
78
21.9k
                    case 'g':
79
21.9k
                        switch(s[3]) {
80
0
                        default:
81
0
                            break;
82
21.9k
                        case 'e':
83
21.9k
                            switch(s[4]) {
84
0
                            default:
85
0
                                break;
86
21.9k
                            case 's':
87
21.9k
                                switch(s[5]) {
88
0
                                default:
89
0
                                    break;
90
21.9k
                                case 't':
91
21.9k
                                    switch(s[6]) {
92
0
                                    default:
93
0
                                        break;
94
0
                                    case '-':
95
# if defined(FIPS_MODULE)
96
                                        if (ossl_likely(strcmp("check", s + 7) == 0)) {
97
                                            /* OSSL_KDF_PARAM_FIPS_DIGEST_CHECK */
98
                                            if (ossl_unlikely(r->ind_d != NULL)) {
99
                                                ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
100
                                                               "param %s is repeated", s);
101
                                                return 0;
102
                                            }
103
                                            r->ind_d = (OSSL_PARAM *)p;
104
                                        }
105
# endif
106
0
                                        break;
107
21.9k
                                    case '\0':
108
21.9k
                                        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
21.9k
                                        r->digest = (OSSL_PARAM *)p;
114
21.9k
                                    }
115
21.9k
                                }
116
21.9k
                            }
117
21.9k
                        }
118
21.9k
                    }
119
21.9k
                }
120
21.9k
                break;
121
21.9k
            case 'e':
122
# if defined(FIPS_MODULE)
123
                if (ossl_likely(strcmp("ms_check", s + 1) == 0)) {
124
                    /* OSSL_KDF_PARAM_FIPS_EMS_CHECK */
125
                    if (ossl_unlikely(r->ind_e != 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_e = (OSSL_PARAM *)p;
131
                }
132
# endif
133
0
                break;
134
0
            case 'k':
135
# if defined(FIPS_MODULE)
136
                if (ossl_likely(strcmp("ey-check", s + 1) == 0)) {
137
                    /* OSSL_KDF_PARAM_FIPS_KEY_CHECK */
138
                    if (ossl_unlikely(r->ind_k != NULL)) {
139
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
140
                                       "param %s is repeated", s);
141
                        return 0;
142
                    }
143
                    r->ind_k = (OSSL_PARAM *)p;
144
                }
145
# endif
146
0
                break;
147
587
            case 'p':
148
587
                if (ossl_likely(strcmp("roperties", s + 1) == 0)) {
149
                    /* OSSL_KDF_PARAM_PROPERTIES */
150
587
                    if (ossl_unlikely(r->propq != NULL)) {
151
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
152
0
                                       "param %s is repeated", s);
153
0
                        return 0;
154
0
                    }
155
587
                    r->propq = (OSSL_PARAM *)p;
156
587
                }
157
587
                break;
158
129k
            case 's':
159
129k
                switch(s[1]) {
160
0
                default:
161
0
                    break;
162
129k
                case 'e':
163
129k
                    switch(s[2]) {
164
0
                    default:
165
0
                        break;
166
21.9k
                    case 'c':
167
21.9k
                        if (ossl_likely(strcmp("ret", s + 3) == 0)) {
168
                            /* OSSL_KDF_PARAM_SECRET */
169
21.9k
                            if (ossl_unlikely(r->secret != NULL)) {
170
0
                                ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
171
0
                                               "param %s is repeated", s);
172
0
                                return 0;
173
0
                            }
174
21.9k
                            r->secret = (OSSL_PARAM *)p;
175
21.9k
                        }
176
21.9k
                        break;
177
107k
                    case 'e':
178
107k
                        if (ossl_likely(strcmp("d", s + 3) == 0)) {
179
                            /* OSSL_KDF_PARAM_SEED */
180
107k
                            if (ossl_unlikely(r->num_seed >= TLSPRF_MAX_SEEDS)) {
181
0
                                ERR_raise_data(ERR_LIB_PROV, PROV_R_TOO_MANY_RECORDS,
182
0
                                               "param %s present >%d times", s, TLSPRF_MAX_SEEDS);
183
0
                                return 0;
184
0
                            }
185
107k
                            r->seed[r->num_seed++] = (OSSL_PARAM *)p;
186
107k
                        }
187
129k
                    }
188
129k
                }
189
151k
            }
190
22.1k
    return 1;
191
22.1k
}
192
#endif
193
/* End of machine generated */
194
195
/* Machine generated */
196
#ifndef tls1prf_get_ctx_params_list
197
static ossl_unused const OSSL_PARAM tls1prf_get_ctx_params_list[] = {
198
    OSSL_PARAM_size_t(OSSL_KDF_PARAM_SIZE, NULL),
199
# if defined(FIPS_MODULE)
200
    OSSL_PARAM_int(OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR, NULL),
201
# endif
202
    OSSL_PARAM_END
203
};
204
#endif
205
206
#ifndef tls1prf_get_ctx_params_st
207
struct tls1prf_get_ctx_params_st {
208
# if defined(FIPS_MODULE)
209
    OSSL_PARAM *ind;
210
# endif
211
    OSSL_PARAM *size;
212
};
213
#endif
214
215
#ifndef tls1prf_get_ctx_params_decoder
216
static ossl_unused int tls1prf_get_ctx_params_decoder
217
    (const OSSL_PARAM *p, struct tls1prf_get_ctx_params_st *r)
218
0
{
219
0
    const char *s;
220
221
0
    memset(r, 0, sizeof(*r));
222
0
    if (p != NULL)
223
0
        for (; (s = p->key) != NULL; p++)
224
0
            switch(s[0]) {
225
0
            default:
226
0
                break;
227
0
            case 'f':
228
# if defined(FIPS_MODULE)
229
                if (ossl_likely(strcmp("ips-indicator", s + 1) == 0)) {
230
                    /* OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR */
231
                    if (ossl_unlikely(r->ind != NULL)) {
232
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
233
                                       "param %s is repeated", s);
234
                        return 0;
235
                    }
236
                    r->ind = (OSSL_PARAM *)p;
237
                }
238
# endif
239
0
                break;
240
0
            case 's':
241
0
                if (ossl_likely(strcmp("ize", s + 1) == 0)) {
242
                    /* OSSL_KDF_PARAM_SIZE */
243
0
                    if (ossl_unlikely(r->size != NULL)) {
244
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
245
0
                                       "param %s is repeated", s);
246
0
                        return 0;
247
0
                    }
248
0
                    r->size = (OSSL_PARAM *)p;
249
0
                }
250
0
            }
251
0
    return 1;
252
0
}
253
#endif
254
/* End of machine generated */