Coverage Report

Created: 2026-05-20 07:05

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/openssl/providers/implementations/kdfs/srtpkdf.inc
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
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 srtp_set_ctx_params_list
19
static const OSSL_PARAM srtp_set_ctx_params_list[] = {
20
    OSSL_PARAM_utf8_string(OSSL_KDF_PARAM_PROPERTIES, NULL, 0),
21
    OSSL_PARAM_utf8_string(OSSL_KDF_PARAM_CIPHER, NULL, 0),
22
    OSSL_PARAM_octet_string(OSSL_KDF_PARAM_KEY, NULL, 0),
23
    OSSL_PARAM_octet_string(OSSL_KDF_PARAM_SALT, NULL, 0),
24
    OSSL_PARAM_octet_string(OSSL_KDF_PARAM_SRTPKDF_INDEX, NULL, 0),
25
    OSSL_PARAM_uint32(OSSL_KDF_PARAM_SRTPKDF_KDR, NULL),
26
    OSSL_PARAM_uint32(OSSL_KDF_PARAM_LABEL, NULL),
27
    OSSL_PARAM_END
28
};
29
#endif
30
31
#ifndef srtp_set_ctx_params_st
32
struct srtp_set_ctx_params_st {
33
    OSSL_PARAM *cipher;
34
    OSSL_PARAM *index;
35
    OSSL_PARAM *kdr;
36
    OSSL_PARAM *key;
37
    OSSL_PARAM *label;
38
    OSSL_PARAM *propq;
39
    OSSL_PARAM *salt;
40
};
41
#endif
42
43
#ifndef srtp_set_ctx_params_decoder
44
static int srtp_set_ctx_params_decoder
45
    (const OSSL_PARAM *p, struct srtp_set_ctx_params_st *r)
46
0
{
47
0
    const char *s;
48
49
0
    memset(r, 0, sizeof(*r));
50
0
    if (p != NULL)
51
0
        for (; (s = p->key) != NULL; p++)
52
0
            switch(s[0]) {
53
0
            default:
54
0
                break;
55
0
            case 'c':
56
0
                if (ossl_likely(strcmp("ipher", s + 1) == 0)) {
57
                    /* OSSL_KDF_PARAM_CIPHER */
58
0
                    if (ossl_unlikely(r->cipher != 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->cipher = (OSSL_PARAM *)p;
64
0
                }
65
0
                break;
66
0
            case 'i':
67
0
                if (ossl_likely(strcmp("ndex", s + 1) == 0)) {
68
                    /* OSSL_KDF_PARAM_SRTPKDF_INDEX */
69
0
                    if (ossl_unlikely(r->index != NULL)) {
70
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
71
0
                                       "param %s is repeated", s);
72
0
                        return 0;
73
0
                    }
74
0
                    r->index = (OSSL_PARAM *)p;
75
0
                }
76
0
                break;
77
0
            case 'k':
78
0
                switch(s[1]) {
79
0
                default:
80
0
                    break;
81
0
                case 'd':
82
0
                    if (ossl_likely(strcmp("r", s + 2) == 0)) {
83
                        /* OSSL_KDF_PARAM_SRTPKDF_KDR */
84
0
                        if (ossl_unlikely(r->kdr != NULL)) {
85
0
                            ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
86
0
                                           "param %s is repeated", s);
87
0
                            return 0;
88
0
                        }
89
0
                        r->kdr = (OSSL_PARAM *)p;
90
0
                    }
91
0
                    break;
92
0
                case 'e':
93
0
                    if (ossl_likely(strcmp("y", s + 2) == 0)) {
94
                        /* OSSL_KDF_PARAM_KEY */
95
0
                        if (ossl_unlikely(r->key != 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->key = (OSSL_PARAM *)p;
101
0
                    }
102
0
                }
103
0
                break;
104
0
            case 'l':
105
0
                if (ossl_likely(strcmp("abel", s + 1) == 0)) {
106
                    /* OSSL_KDF_PARAM_LABEL */
107
0
                    if (ossl_unlikely(r->label != NULL)) {
108
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
109
0
                                       "param %s is repeated", s);
110
0
                        return 0;
111
0
                    }
112
0
                    r->label = (OSSL_PARAM *)p;
113
0
                }
114
0
                break;
115
0
            case 'p':
116
0
                if (ossl_likely(strcmp("roperties", s + 1) == 0)) {
117
                    /* OSSL_KDF_PARAM_PROPERTIES */
118
0
                    if (ossl_unlikely(r->propq != NULL)) {
119
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
120
0
                                       "param %s is repeated", s);
121
0
                        return 0;
122
0
                    }
123
0
                    r->propq = (OSSL_PARAM *)p;
124
0
                }
125
0
                break;
126
0
            case 's':
127
0
                if (ossl_likely(strcmp("alt", s + 1) == 0)) {
128
                    /* OSSL_KDF_PARAM_SALT */
129
0
                    if (ossl_unlikely(r->salt != NULL)) {
130
0
                        ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
131
0
                                       "param %s is repeated", s);
132
0
                        return 0;
133
0
                    }
134
0
                    r->salt = (OSSL_PARAM *)p;
135
0
                }
136
0
            }
137
0
    return 1;
138
0
}
139
#endif
140
/* End of machine generated */
141
142
/* Machine generated by util/perl/OpenSSL/paramnames.pm */
143
#include <string.h>
144
#include <openssl/params.h>
145
#include "internal/common.h"
146
#include "prov/proverr.h"
147
148
#ifndef srtp_get_ctx_params_list
149
static const OSSL_PARAM srtp_get_ctx_params_list[] = {
150
    OSSL_PARAM_size_t(OSSL_KDF_PARAM_SIZE, NULL),
151
    OSSL_PARAM_END
152
};
153
#endif
154
155
#ifndef srtp_get_ctx_params_st
156
struct srtp_get_ctx_params_st {
157
    OSSL_PARAM *size;
158
};
159
#endif
160
161
#ifndef srtp_get_ctx_params_decoder
162
static int srtp_get_ctx_params_decoder
163
    (const OSSL_PARAM *p, struct srtp_get_ctx_params_st *r)
164
0
{
165
0
    const char *s;
166
167
0
    memset(r, 0, sizeof(*r));
168
0
    if (p != NULL)
169
0
        for (; (s = p->key) != NULL; p++)
170
0
            if (ossl_likely(strcmp("size", s + 0) == 0)) {
171
                /* OSSL_KDF_PARAM_SIZE */
172
0
                if (ossl_unlikely(r->size != NULL)) {
173
0
                    ERR_raise_data(ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER,
174
0
                                   "param %s is repeated", s);
175
0
                    return 0;
176
0
                }
177
0
                r->size = (OSSL_PARAM *)p;
178
0
            }
179
0
    return 1;
180
0
}
181
#endif
182
/* End of machine generated */