summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/libcrypto/Symbols.namespace21
-rw-r--r--src/lib/libcrypto/hidden/openssl/stack.h46
-rw-r--r--src/lib/libcrypto/stack/stack.c23
3 files changed, 89 insertions, 1 deletions
diff --git a/src/lib/libcrypto/Symbols.namespace b/src/lib/libcrypto/Symbols.namespace
index 31f7fba4c8..6ec4d6f648 100644
--- a/src/lib/libcrypto/Symbols.namespace
+++ b/src/lib/libcrypto/Symbols.namespace
@@ -7,3 +7,24 @@ _libre_HMAC_CTX_set_flags
7_libre_HMAC_Final 7_libre_HMAC_Final
8_libre_HMAC_Init_ex 8_libre_HMAC_Init_ex
9_libre_HMAC_Update 9_libre_HMAC_Update
10_libre_sk_num
11_libre_sk_value
12_libre_sk_set
13_libre_sk_new
14_libre_sk_new_null
15_libre_sk_free
16_libre_sk_pop_free
17_libre_sk_insert
18_libre_sk_delete
19_libre_sk_delete_ptr
20_libre_sk_find
21_libre_sk_find_ex
22_libre_sk_push
23_libre_sk_unshift
24_libre_sk_shift
25_libre_sk_pop
26_libre_sk_zero
27_libre_sk_set_cmp_func
28_libre_sk_dup
29_libre_sk_sort
30_libre_sk_is_sorted
diff --git a/src/lib/libcrypto/hidden/openssl/stack.h b/src/lib/libcrypto/hidden/openssl/stack.h
new file mode 100644
index 0000000000..671735436f
--- /dev/null
+++ b/src/lib/libcrypto/hidden/openssl/stack.h
@@ -0,0 +1,46 @@
1/* $OpenBSD: stack.h,v 1.1 2022/11/11 19:18:55 beck Exp $ */
2/*
3 * Copyright (c) 2022 Bob Beck <beck@openbsd.org>
4 *
5 * Permission to use, copy, modify, and distribute this software for any
6 * purpose with or without fee is hereby granted, provided that the above
7 * copyright notice and this permission notice appear in all copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 */
17
18#ifndef _LIBCRYPTO_STACK_H
19#define _LIBCRYPTO_STACK_H
20
21#include_next <openssl/stack.h>
22#include "crypto_namespace.h"
23
24LCRYPTO_USED(sk_num);
25LCRYPTO_USED(sk_value);
26LCRYPTO_USED(sk_set);
27LCRYPTO_USED(sk_new);
28LCRYPTO_USED(sk_new_null);
29LCRYPTO_USED(sk_free);
30LCRYPTO_USED(sk_pop_free);
31LCRYPTO_USED(sk_insert);
32LCRYPTO_USED(sk_delete);
33LCRYPTO_USED(sk_delete_ptr);
34LCRYPTO_USED(sk_find);
35LCRYPTO_USED(sk_find_ex);
36LCRYPTO_USED(sk_push);
37LCRYPTO_USED(sk_unshift);
38LCRYPTO_USED(sk_shift);
39LCRYPTO_USED(sk_pop);
40LCRYPTO_USED(sk_zero);
41LCRYPTO_USED(sk_set_cmp_func);
42LCRYPTO_USED(sk_dup);
43LCRYPTO_USED(sk_sort);
44LCRYPTO_USED(sk_is_sorted);
45
46#endif /* _LIBCRYPTO_STACK_H */
diff --git a/src/lib/libcrypto/stack/stack.c b/src/lib/libcrypto/stack/stack.c
index b76a0d7271..c99941aa46 100644
--- a/src/lib/libcrypto/stack/stack.c
+++ b/src/lib/libcrypto/stack/stack.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: stack.c,v 1.20 2018/04/01 00:36:28 schwarze Exp $ */ 1/* $OpenBSD: stack.c,v 1.21 2022/11/11 19:18:55 beck 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 *
@@ -79,6 +79,7 @@ int
79 79
80 return old; 80 return old;
81} 81}
82LCRYPTO_ALIAS(sk_set_cmp_func)
82 83
83_STACK * 84_STACK *
84sk_dup(_STACK *sk) 85sk_dup(_STACK *sk)
@@ -105,12 +106,14 @@ err:
105 sk_free(ret); 106 sk_free(ret);
106 return (NULL); 107 return (NULL);
107} 108}
109LCRYPTO_ALIAS(sk_dup)
108 110
109_STACK * 111_STACK *
110sk_new_null(void) 112sk_new_null(void)
111{ 113{
112 return sk_new((int (*)(const void *, const void *))0); 114 return sk_new((int (*)(const void *, const void *))0);
113} 115}
116LCRYPTO_ALIAS(sk_new_null)
114 117
115_STACK * 118_STACK *
116sk_new(int (*c)(const void *, const void *)) 119sk_new(int (*c)(const void *, const void *))
@@ -134,6 +137,7 @@ err:
134 free(ret); 137 free(ret);
135 return (NULL); 138 return (NULL);
136} 139}
140LCRYPTO_ALIAS(sk_new)
137 141
138int 142int
139sk_insert(_STACK *st, void *data, int loc) 143sk_insert(_STACK *st, void *data, int loc)
@@ -160,6 +164,7 @@ sk_insert(_STACK *st, void *data, int loc)
160 st->sorted = 0; 164 st->sorted = 0;
161 return (st->num); 165 return (st->num);
162} 166}
167LCRYPTO_ALIAS(sk_insert)
163 168
164void * 169void *
165sk_delete_ptr(_STACK *st, void *p) 170sk_delete_ptr(_STACK *st, void *p)
@@ -171,6 +176,7 @@ sk_delete_ptr(_STACK *st, void *p)
171 return (sk_delete(st, i)); 176 return (sk_delete(st, i));
172 return (NULL); 177 return (NULL);
173} 178}
179LCRYPTO_ALIAS(sk_delete_ptr)
174 180
175void * 181void *
176sk_delete(_STACK *st, int loc) 182sk_delete(_STACK *st, int loc)
@@ -188,6 +194,7 @@ sk_delete(_STACK *st, int loc)
188 st->num--; 194 st->num--;
189 return (ret); 195 return (ret);
190} 196}
197LCRYPTO_ALIAS(sk_delete)
191 198
192static int 199static int
193internal_find(_STACK *st, void *data, int ret_val_options) 200internal_find(_STACK *st, void *data, int ret_val_options)
@@ -219,24 +226,28 @@ sk_find(_STACK *st, void *data)
219{ 226{
220 return internal_find(st, data, OBJ_BSEARCH_FIRST_VALUE_ON_MATCH); 227 return internal_find(st, data, OBJ_BSEARCH_FIRST_VALUE_ON_MATCH);
221} 228}
229LCRYPTO_ALIAS(sk_find)
222 230
223int 231int
224sk_find_ex(_STACK *st, void *data) 232sk_find_ex(_STACK *st, void *data)
225{ 233{
226 return internal_find(st, data, OBJ_BSEARCH_VALUE_ON_NOMATCH); 234 return internal_find(st, data, OBJ_BSEARCH_VALUE_ON_NOMATCH);
227} 235}
236LCRYPTO_ALIAS(sk_find_ex)
228 237
229int 238int
230sk_push(_STACK *st, void *data) 239sk_push(_STACK *st, void *data)
231{ 240{
232 return (sk_insert(st, data, st->num)); 241 return (sk_insert(st, data, st->num));
233} 242}
243LCRYPTO_ALIAS(sk_push)
234 244
235int 245int
236sk_unshift(_STACK *st, void *data) 246sk_unshift(_STACK *st, void *data)
237{ 247{
238 return (sk_insert(st, data, 0)); 248 return (sk_insert(st, data, 0));
239} 249}
250LCRYPTO_ALIAS(sk_unshift)
240 251
241void * 252void *
242sk_shift(_STACK *st) 253sk_shift(_STACK *st)
@@ -247,6 +258,7 @@ sk_shift(_STACK *st)
247 return (NULL); 258 return (NULL);
248 return (sk_delete(st, 0)); 259 return (sk_delete(st, 0));
249} 260}
261LCRYPTO_ALIAS(sk_shift)
250 262
251void * 263void *
252sk_pop(_STACK *st) 264sk_pop(_STACK *st)
@@ -257,6 +269,7 @@ sk_pop(_STACK *st)
257 return (NULL); 269 return (NULL);
258 return (sk_delete(st, st->num - 1)); 270 return (sk_delete(st, st->num - 1));
259} 271}
272LCRYPTO_ALIAS(sk_pop)
260 273
261void 274void
262sk_zero(_STACK *st) 275sk_zero(_STACK *st)
@@ -268,6 +281,7 @@ sk_zero(_STACK *st)
268 memset(st->data, 0, sizeof(st->data)*st->num); 281 memset(st->data, 0, sizeof(st->data)*st->num);
269 st->num = 0; 282 st->num = 0;
270} 283}
284LCRYPTO_ALIAS(sk_zero)
271 285
272void 286void
273sk_pop_free(_STACK *st, void (*func)(void *)) 287sk_pop_free(_STACK *st, void (*func)(void *))
@@ -281,6 +295,7 @@ sk_pop_free(_STACK *st, void (*func)(void *))
281 func(st->data[i]); 295 func(st->data[i]);
282 sk_free(st); 296 sk_free(st);
283} 297}
298LCRYPTO_ALIAS(sk_pop_free)
284 299
285void 300void
286sk_free(_STACK *st) 301sk_free(_STACK *st)
@@ -290,6 +305,7 @@ sk_free(_STACK *st)
290 free(st->data); 305 free(st->data);
291 free(st); 306 free(st);
292} 307}
308LCRYPTO_ALIAS(sk_free)
293 309
294int 310int
295sk_num(const _STACK *st) 311sk_num(const _STACK *st)
@@ -298,6 +314,7 @@ sk_num(const _STACK *st)
298 return -1; 314 return -1;
299 return st->num; 315 return st->num;
300} 316}
317LCRYPTO_ALIAS(sk_num)
301 318
302void * 319void *
303sk_value(const _STACK *st, int i) 320sk_value(const _STACK *st, int i)
@@ -306,6 +323,7 @@ sk_value(const _STACK *st, int i)
306 return NULL; 323 return NULL;
307 return st->data[i]; 324 return st->data[i];
308} 325}
326LCRYPTO_ALIAS(sk_value)
309 327
310void * 328void *
311sk_set(_STACK *st, int i, void *value) 329sk_set(_STACK *st, int i, void *value)
@@ -315,6 +333,7 @@ sk_set(_STACK *st, int i, void *value)
315 st->sorted = 0; 333 st->sorted = 0;
316 return (st->data[i] = value); 334 return (st->data[i] = value);
317} 335}
336LCRYPTO_ALIAS(sk_set)
318 337
319void 338void
320sk_sort(_STACK *st) 339sk_sort(_STACK *st)
@@ -332,6 +351,7 @@ sk_sort(_STACK *st)
332 st->sorted = 1; 351 st->sorted = 1;
333 } 352 }
334} 353}
354LCRYPTO_ALIAS(sk_sort)
335 355
336int 356int
337sk_is_sorted(const _STACK *st) 357sk_is_sorted(const _STACK *st)
@@ -340,3 +360,4 @@ sk_is_sorted(const _STACK *st)
340 return 1; 360 return 1;
341 return st->sorted; 361 return st->sorted;
342} 362}
363LCRYPTO_ALIAS(sk_is_sorted)