summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/evp/names.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/evp/names.c')
-rw-r--r--src/lib/libcrypto/evp/names.c93
1 files changed, 1 insertions, 92 deletions
diff --git a/src/lib/libcrypto/evp/names.c b/src/lib/libcrypto/evp/names.c
index a96301ed56..7f5b455088 100644
--- a/src/lib/libcrypto/evp/names.c
+++ b/src/lib/libcrypto/evp/names.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: names.c,v 1.22 2023/12/15 14:22:10 tb Exp $ */ 1/* $OpenBSD: names.c,v 1.23 2024/01/13 11:08:39 tb Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -146,94 +146,3 @@ EVP_cleanup(void)
146 OBJ_cleanup(); 146 OBJ_cleanup();
147 } 147 }
148} 148}
149
150struct doall_cipher {
151 void *arg;
152 void (*fn)(const EVP_CIPHER *ciph, const char *from, const char *to,
153 void *arg);
154};
155
156static void
157do_all_cipher_fn(const OBJ_NAME *nm, void *arg)
158{
159 struct doall_cipher *dc = arg;
160
161 if (nm->alias)
162 dc->fn(NULL, nm->name, nm->data, dc->arg);
163 else
164 dc->fn((const EVP_CIPHER *)nm->data, nm->name, NULL, dc->arg);
165}
166
167void
168EVP_CIPHER_do_all(void (*fn)(const EVP_CIPHER *ciph, const char *from,
169 const char *to, void *x), void *arg)
170{
171 struct doall_cipher dc;
172
173 /* Prayer and clean living lets you ignore errors, OpenSSL style */
174 (void) OPENSSL_init_crypto(0, NULL);
175
176 dc.fn = fn;
177 dc.arg = arg;
178 OBJ_NAME_do_all(OBJ_NAME_TYPE_CIPHER_METH, do_all_cipher_fn, &dc);
179}
180
181void
182EVP_CIPHER_do_all_sorted(void (*fn)(const EVP_CIPHER *ciph, const char *from,
183 const char *to, void *x), void *arg)
184{
185 struct doall_cipher dc;
186
187 /* Prayer and clean living lets you ignore errors, OpenSSL style */
188 (void) OPENSSL_init_crypto(0, NULL);
189
190 dc.fn = fn;
191 dc.arg = arg;
192 OBJ_NAME_do_all_sorted(OBJ_NAME_TYPE_CIPHER_METH,
193 do_all_cipher_fn, &dc);
194}
195
196struct doall_md {
197 void *arg;
198 void (*fn)(const EVP_MD *ciph, const char *from, const char *to,
199 void *arg);
200};
201
202static void
203do_all_md_fn(const OBJ_NAME *nm, void *arg)
204{
205 struct doall_md *dc = arg;
206
207 if (nm->alias)
208 dc->fn(NULL, nm->name, nm->data, dc->arg);
209 else
210 dc->fn((const EVP_MD *)nm->data, nm->name, NULL, dc->arg);
211}
212
213void
214EVP_MD_do_all(void (*fn)(const EVP_MD *md, const char *from, const char *to,
215 void *x), void *arg)
216{
217 struct doall_md dc;
218
219 /* Prayer and clean living lets you ignore errors, OpenSSL style */
220 (void) OPENSSL_init_crypto(0, NULL);
221
222 dc.fn = fn;
223 dc.arg = arg;
224 OBJ_NAME_do_all(OBJ_NAME_TYPE_MD_METH, do_all_md_fn, &dc);
225}
226
227void
228EVP_MD_do_all_sorted(void (*fn)(const EVP_MD *md,
229 const char *from, const char *to, void *x), void *arg)
230{
231 struct doall_md dc;
232
233 /* Prayer and clean living lets you ignore errors, OpenSSL style */
234 (void) OPENSSL_init_crypto(0, NULL);
235
236 dc.fn = fn;
237 dc.arg = arg;
238 OBJ_NAME_do_all_sorted(OBJ_NAME_TYPE_MD_METH, do_all_md_fn, &dc);
239}