summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortb <>2023-07-28 10:21:01 +0000
committertb <>2023-07-28 10:21:01 +0000
commite68ca11e376f4237fb9f8c10487e2d7b7dbfe585 (patch)
treef5135e3be73a200e3de6c7653f8573224f325770
parent80044b19f0ece8df72ab24e3c1d89b8ca3d14bf7 (diff)
downloadopenbsd-e68ca11e376f4237fb9f8c10487e2d7b7dbfe585.tar.gz
openbsd-e68ca11e376f4237fb9f8c10487e2d7b7dbfe585.tar.bz2
openbsd-e68ca11e376f4237fb9f8c10487e2d7b7dbfe585.zip
Remove ERR_{get,set}_implementation()
Much like ex_data, applications can make the library use their own error stack implementation. Well, except as of right now they no longer can. ok jsing
-rw-r--r--src/lib/libcrypto/Symbols.list2
-rw-r--r--src/lib/libcrypto/Symbols.namespace2
-rw-r--r--src/lib/libcrypto/err/err.c31
-rw-r--r--src/lib/libcrypto/err/err.h11
-rw-r--r--src/lib/libcrypto/hidden/openssl/err.h4
-rw-r--r--src/lib/libcrypto/ossl_typ.h4
6 files changed, 6 insertions, 48 deletions
diff --git a/src/lib/libcrypto/Symbols.list b/src/lib/libcrypto/Symbols.list
index 8129d9f182..6a739fa193 100644
--- a/src/lib/libcrypto/Symbols.list
+++ b/src/lib/libcrypto/Symbols.list
@@ -1123,7 +1123,6 @@ ERR_get_err_state_table
1123ERR_get_error 1123ERR_get_error
1124ERR_get_error_line 1124ERR_get_error_line
1125ERR_get_error_line_data 1125ERR_get_error_line_data
1126ERR_get_implementation
1127ERR_get_next_error_library 1126ERR_get_next_error_library
1128ERR_get_state 1127ERR_get_state
1129ERR_get_string_table 1128ERR_get_string_table
@@ -1170,7 +1169,6 @@ ERR_release_err_state_table
1170ERR_remove_state 1169ERR_remove_state
1171ERR_remove_thread_state 1170ERR_remove_thread_state
1172ERR_set_error_data 1171ERR_set_error_data
1173ERR_set_implementation
1174ERR_set_mark 1172ERR_set_mark
1175ERR_unload_strings 1173ERR_unload_strings
1176ESS_CERT_ID_dup 1174ESS_CERT_ID_dup
diff --git a/src/lib/libcrypto/Symbols.namespace b/src/lib/libcrypto/Symbols.namespace
index dcf70a63e6..721c111ff4 100644
--- a/src/lib/libcrypto/Symbols.namespace
+++ b/src/lib/libcrypto/Symbols.namespace
@@ -1396,8 +1396,6 @@ _libre_ERR_release_err_state_table
1396_libre_ERR_get_next_error_library 1396_libre_ERR_get_next_error_library
1397_libre_ERR_set_mark 1397_libre_ERR_set_mark
1398_libre_ERR_pop_to_mark 1398_libre_ERR_pop_to_mark
1399_libre_ERR_get_implementation
1400_libre_ERR_set_implementation
1401_libre_RAND_set_rand_method 1399_libre_RAND_set_rand_method
1402_libre_RAND_get_rand_method 1400_libre_RAND_get_rand_method
1403_libre_RAND_SSLeay 1401_libre_RAND_SSLeay
diff --git a/src/lib/libcrypto/err/err.c b/src/lib/libcrypto/err/err.c
index 8fbeea715e..8beb29543a 100644
--- a/src/lib/libcrypto/err/err.c
+++ b/src/lib/libcrypto/err/err.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: err.c,v 1.54 2023/07/07 19:37:53 beck Exp $ */ 1/* $OpenBSD: err.c,v 1.55 2023/07/28 10:21:01 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 *
@@ -125,6 +125,8 @@
125DECLARE_LHASH_OF(ERR_STRING_DATA); 125DECLARE_LHASH_OF(ERR_STRING_DATA);
126DECLARE_LHASH_OF(ERR_STATE); 126DECLARE_LHASH_OF(ERR_STATE);
127 127
128typedef struct st_ERR_FNS ERR_FNS;
129
128static void err_load_strings(int lib, ERR_STRING_DATA *str); 130static void err_load_strings(int lib, ERR_STRING_DATA *str);
129 131
130static void ERR_STATE_free(ERR_STATE *s); 132static void ERR_STATE_free(ERR_STATE *s);
@@ -300,33 +302,6 @@ err_fns_check(void)
300 CRYPTO_w_unlock(CRYPTO_LOCK_ERR); 302 CRYPTO_w_unlock(CRYPTO_LOCK_ERR);
301} 303}
302 304
303/* API functions to get or set the underlying ERR functions. */
304
305const ERR_FNS *
306ERR_get_implementation(void)
307{
308 err_fns_check();
309 return err_fns;
310}
311LCRYPTO_ALIAS(ERR_get_implementation);
312
313int
314ERR_set_implementation(const ERR_FNS *fns)
315{
316 int ret = 0;
317
318 CRYPTO_w_lock(CRYPTO_LOCK_ERR);
319 /* It's too late if 'err_fns' is non-NULL. BTW: not much point setting
320 * an error is there?! */
321 if (!err_fns) {
322 err_fns = fns;
323 ret = 1;
324 }
325 CRYPTO_w_unlock(CRYPTO_LOCK_ERR);
326 return ret;
327}
328LCRYPTO_ALIAS(ERR_set_implementation);
329
330/* These are the callbacks provided to "lh_new()" when creating the LHASH tables 305/* These are the callbacks provided to "lh_new()" when creating the LHASH tables
331 * internal to the "err_defaults" implementation. */ 306 * internal to the "err_defaults" implementation. */
332 307
diff --git a/src/lib/libcrypto/err/err.h b/src/lib/libcrypto/err/err.h
index b61599d508..703817be33 100644
--- a/src/lib/libcrypto/err/err.h
+++ b/src/lib/libcrypto/err/err.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: err.h,v 1.29 2023/04/09 19:10:23 tb Exp $ */ 1/* $OpenBSD: err.h,v 1.30 2023/07/28 10:21:01 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 *
@@ -410,15 +410,6 @@ int ERR_get_next_error_library(void);
410int ERR_set_mark(void); 410int ERR_set_mark(void);
411int ERR_pop_to_mark(void); 411int ERR_pop_to_mark(void);
412 412
413/* Already defined in ossl_typ.h */
414/* typedef struct st_ERR_FNS ERR_FNS; */
415/* An application can use this function and provide the return value to loaded
416 * modules that should use the application's ERR state/functionality */
417const ERR_FNS *ERR_get_implementation(void);
418/* A loaded module should call this function prior to any ERR operations using
419 * the application's "ERR_FNS". */
420int ERR_set_implementation(const ERR_FNS *fns);
421
422#ifdef __cplusplus 413#ifdef __cplusplus
423} 414}
424#endif 415#endif
diff --git a/src/lib/libcrypto/hidden/openssl/err.h b/src/lib/libcrypto/hidden/openssl/err.h
index bc2a96644c..c53feb89f4 100644
--- a/src/lib/libcrypto/hidden/openssl/err.h
+++ b/src/lib/libcrypto/hidden/openssl/err.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: err.h,v 1.2 2023/07/07 19:37:54 beck Exp $ */ 1/* $OpenBSD: err.h,v 1.3 2023/07/28 10:21:01 tb Exp $ */
2/* 2/*
3 * Copyright (c) 2023 Bob Beck <beck@openbsd.org> 3 * Copyright (c) 2023 Bob Beck <beck@openbsd.org>
4 * 4 *
@@ -60,7 +60,5 @@ LCRYPTO_USED(ERR_release_err_state_table);
60LCRYPTO_USED(ERR_get_next_error_library); 60LCRYPTO_USED(ERR_get_next_error_library);
61LCRYPTO_USED(ERR_set_mark); 61LCRYPTO_USED(ERR_set_mark);
62LCRYPTO_USED(ERR_pop_to_mark); 62LCRYPTO_USED(ERR_pop_to_mark);
63LCRYPTO_USED(ERR_get_implementation);
64LCRYPTO_USED(ERR_set_implementation);
65 63
66#endif /* _LIBCRYPTO_ERR_H */ 64#endif /* _LIBCRYPTO_ERR_H */
diff --git a/src/lib/libcrypto/ossl_typ.h b/src/lib/libcrypto/ossl_typ.h
index b58888de3b..5da4243f80 100644
--- a/src/lib/libcrypto/ossl_typ.h
+++ b/src/lib/libcrypto/ossl_typ.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: ossl_typ.h,v 1.27 2023/07/28 09:22:26 tb Exp $ */ 1/* $OpenBSD: ossl_typ.h,v 1.28 2023/07/28 10:21:01 tb Exp $ */
2/* ==================================================================== 2/* ====================================================================
3 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 3 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved.
4 * 4 *
@@ -150,8 +150,6 @@ typedef struct store_method_st STORE_METHOD;
150typedef struct ui_st UI; 150typedef struct ui_st UI;
151typedef struct ui_method_st UI_METHOD; 151typedef struct ui_method_st UI_METHOD;
152 152
153typedef struct st_ERR_FNS ERR_FNS;
154
155typedef struct engine_st ENGINE; 153typedef struct engine_st ENGINE;
156typedef struct ssl_st SSL; 154typedef struct ssl_st SSL;
157typedef struct ssl_ctx_st SSL_CTX; 155typedef struct ssl_ctx_st SSL_CTX;