summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/stack/safestack.h
diff options
context:
space:
mode:
authortb <>2024-03-02 11:11:11 +0000
committertb <>2024-03-02 11:11:11 +0000
commit3228d4664f5cbc8a4b11e8d1cf7aa6636946f529 (patch)
tree865633fee7fa46f45fa7bee8495692a2bf76544f /src/lib/libcrypto/stack/safestack.h
parent2e45bf0bb5ba5d679b984ec185fbc3d2a6270f6f (diff)
downloadopenbsd-3228d4664f5cbc8a4b11e8d1cf7aa6636946f529.tar.gz
openbsd-3228d4664f5cbc8a4b11e8d1cf7aa6636946f529.tar.bz2
openbsd-3228d4664f5cbc8a4b11e8d1cf7aa6636946f529.zip
Make LHASH_OF() and STACK_OF() use opaque structs
This removes internals of these two special snowflakes and will allow further simplifications. Unfortunately, there are some pieces of software that actually use LHASH_OF() (looking at you, pound, Ruby, and openssl(1)), so we get to keep exposing this garbage, at least for now. Expose lh_error() as a symbol to replace a macro reaching into _LHASH. lh_down_load() is no longer available. _LHASH and _STACK are now opaque, LHASH_NODE becomes internal-only. from jsing
Diffstat (limited to 'src/lib/libcrypto/stack/safestack.h')
-rw-r--r--src/lib/libcrypto/stack/safestack.h23
1 files changed, 3 insertions, 20 deletions
diff --git a/src/lib/libcrypto/stack/safestack.h b/src/lib/libcrypto/stack/safestack.h
index b64b865dc8..61770ef36f 100644
--- a/src/lib/libcrypto/stack/safestack.h
+++ b/src/lib/libcrypto/stack/safestack.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: safestack.h,v 1.30 2024/03/02 11:04:52 tb Exp $ */ 1/* $OpenBSD: safestack.h,v 1.31 2024/03/02 11:11:11 tb Exp $ */
2/* ==================================================================== 2/* ====================================================================
3 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 3 * Copyright (c) 1999 The OpenSSL Project. All rights reserved.
4 * 4 *
@@ -84,16 +84,8 @@
84#define STACK_OF(type) struct stack_st_##type 84#define STACK_OF(type) struct stack_st_##type
85#define PREDECLARE_STACK_OF(type) STACK_OF(type); 85#define PREDECLARE_STACK_OF(type) STACK_OF(type);
86 86
87#define DECLARE_STACK_OF(type) \ 87#define DECLARE_STACK_OF(type) STACK_OF(type);
88STACK_OF(type) \ 88#define DECLARE_SPECIAL_STACK_OF(type, type2) STACK_OF(type);
89 { \
90 _STACK stack; \
91 };
92#define DECLARE_SPECIAL_STACK_OF(type, type2) \
93STACK_OF(type) \
94 { \
95 _STACK stack; \
96 };
97 89
98#define IMPLEMENT_STACK_OF(type) /* nada (obsolete in new safestack approach)*/ 90#define IMPLEMENT_STACK_OF(type) /* nada (obsolete in new safestack approach)*/
99 91
@@ -1815,7 +1807,6 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_STRING, char)
1815 LHM_lh_doall_arg(ADDED_OBJ,lh,fn,arg_type,arg) 1807 LHM_lh_doall_arg(ADDED_OBJ,lh,fn,arg_type,arg)
1816#define lh_ADDED_OBJ_error(lh) LHM_lh_error(ADDED_OBJ,lh) 1808#define lh_ADDED_OBJ_error(lh) LHM_lh_error(ADDED_OBJ,lh)
1817#define lh_ADDED_OBJ_num_items(lh) LHM_lh_num_items(ADDED_OBJ,lh) 1809#define lh_ADDED_OBJ_num_items(lh) LHM_lh_num_items(ADDED_OBJ,lh)
1818#define lh_ADDED_OBJ_down_load(lh) LHM_lh_down_load(ADDED_OBJ,lh)
1819#define lh_ADDED_OBJ_free(lh) LHM_lh_free(ADDED_OBJ,lh) 1810#define lh_ADDED_OBJ_free(lh) LHM_lh_free(ADDED_OBJ,lh)
1820 1811
1821#define lh_CONF_VALUE_new() LHM_lh_new(CONF_VALUE,conf_value) 1812#define lh_CONF_VALUE_new() LHM_lh_new(CONF_VALUE,conf_value)
@@ -1827,7 +1818,6 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_STRING, char)
1827 LHM_lh_doall_arg(CONF_VALUE,lh,fn,arg_type,arg) 1818 LHM_lh_doall_arg(CONF_VALUE,lh,fn,arg_type,arg)
1828#define lh_CONF_VALUE_error(lh) LHM_lh_error(CONF_VALUE,lh) 1819#define lh_CONF_VALUE_error(lh) LHM_lh_error(CONF_VALUE,lh)
1829#define lh_CONF_VALUE_num_items(lh) LHM_lh_num_items(CONF_VALUE,lh) 1820#define lh_CONF_VALUE_num_items(lh) LHM_lh_num_items(CONF_VALUE,lh)
1830#define lh_CONF_VALUE_down_load(lh) LHM_lh_down_load(CONF_VALUE,lh)
1831#define lh_CONF_VALUE_free(lh) LHM_lh_free(CONF_VALUE,lh) 1821#define lh_CONF_VALUE_free(lh) LHM_lh_free(CONF_VALUE,lh)
1832 1822
1833#define lh_ERR_STATE_new() LHM_lh_new(ERR_STATE,err_state) 1823#define lh_ERR_STATE_new() LHM_lh_new(ERR_STATE,err_state)
@@ -1839,7 +1829,6 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_STRING, char)
1839 LHM_lh_doall_arg(ERR_STATE,lh,fn,arg_type,arg) 1829 LHM_lh_doall_arg(ERR_STATE,lh,fn,arg_type,arg)
1840#define lh_ERR_STATE_error(lh) LHM_lh_error(ERR_STATE,lh) 1830#define lh_ERR_STATE_error(lh) LHM_lh_error(ERR_STATE,lh)
1841#define lh_ERR_STATE_num_items(lh) LHM_lh_num_items(ERR_STATE,lh) 1831#define lh_ERR_STATE_num_items(lh) LHM_lh_num_items(ERR_STATE,lh)
1842#define lh_ERR_STATE_down_load(lh) LHM_lh_down_load(ERR_STATE,lh)
1843#define lh_ERR_STATE_free(lh) LHM_lh_free(ERR_STATE,lh) 1832#define lh_ERR_STATE_free(lh) LHM_lh_free(ERR_STATE,lh)
1844 1833
1845#define lh_ERR_STRING_DATA_new() LHM_lh_new(ERR_STRING_DATA,err_string_data) 1834#define lh_ERR_STRING_DATA_new() LHM_lh_new(ERR_STRING_DATA,err_string_data)
@@ -1851,7 +1840,6 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_STRING, char)
1851 LHM_lh_doall_arg(ERR_STRING_DATA,lh,fn,arg_type,arg) 1840 LHM_lh_doall_arg(ERR_STRING_DATA,lh,fn,arg_type,arg)
1852#define lh_ERR_STRING_DATA_error(lh) LHM_lh_error(ERR_STRING_DATA,lh) 1841#define lh_ERR_STRING_DATA_error(lh) LHM_lh_error(ERR_STRING_DATA,lh)
1853#define lh_ERR_STRING_DATA_num_items(lh) LHM_lh_num_items(ERR_STRING_DATA,lh) 1842#define lh_ERR_STRING_DATA_num_items(lh) LHM_lh_num_items(ERR_STRING_DATA,lh)
1854#define lh_ERR_STRING_DATA_down_load(lh) LHM_lh_down_load(ERR_STRING_DATA,lh)
1855#define lh_ERR_STRING_DATA_free(lh) LHM_lh_free(ERR_STRING_DATA,lh) 1843#define lh_ERR_STRING_DATA_free(lh) LHM_lh_free(ERR_STRING_DATA,lh)
1856 1844
1857#define lh_EX_CLASS_ITEM_new() LHM_lh_new(EX_CLASS_ITEM,ex_class_item) 1845#define lh_EX_CLASS_ITEM_new() LHM_lh_new(EX_CLASS_ITEM,ex_class_item)
@@ -1863,7 +1851,6 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_STRING, char)
1863 LHM_lh_doall_arg(EX_CLASS_ITEM,lh,fn,arg_type,arg) 1851 LHM_lh_doall_arg(EX_CLASS_ITEM,lh,fn,arg_type,arg)
1864#define lh_EX_CLASS_ITEM_error(lh) LHM_lh_error(EX_CLASS_ITEM,lh) 1852#define lh_EX_CLASS_ITEM_error(lh) LHM_lh_error(EX_CLASS_ITEM,lh)
1865#define lh_EX_CLASS_ITEM_num_items(lh) LHM_lh_num_items(EX_CLASS_ITEM,lh) 1853#define lh_EX_CLASS_ITEM_num_items(lh) LHM_lh_num_items(EX_CLASS_ITEM,lh)
1866#define lh_EX_CLASS_ITEM_down_load(lh) LHM_lh_down_load(EX_CLASS_ITEM,lh)
1867#define lh_EX_CLASS_ITEM_free(lh) LHM_lh_free(EX_CLASS_ITEM,lh) 1854#define lh_EX_CLASS_ITEM_free(lh) LHM_lh_free(EX_CLASS_ITEM,lh)
1868 1855
1869#define lh_FUNCTION_new() LHM_lh_new(FUNCTION,function) 1856#define lh_FUNCTION_new() LHM_lh_new(FUNCTION,function)
@@ -1875,7 +1862,6 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_STRING, char)
1875 LHM_lh_doall_arg(FUNCTION,lh,fn,arg_type,arg) 1862 LHM_lh_doall_arg(FUNCTION,lh,fn,arg_type,arg)
1876#define lh_FUNCTION_error(lh) LHM_lh_error(FUNCTION,lh) 1863#define lh_FUNCTION_error(lh) LHM_lh_error(FUNCTION,lh)
1877#define lh_FUNCTION_num_items(lh) LHM_lh_num_items(FUNCTION,lh) 1864#define lh_FUNCTION_num_items(lh) LHM_lh_num_items(FUNCTION,lh)
1878#define lh_FUNCTION_down_load(lh) LHM_lh_down_load(FUNCTION,lh)
1879#define lh_FUNCTION_free(lh) LHM_lh_free(FUNCTION,lh) 1865#define lh_FUNCTION_free(lh) LHM_lh_free(FUNCTION,lh)
1880 1866
1881#define lh_OBJ_NAME_new() LHM_lh_new(OBJ_NAME,obj_name) 1867#define lh_OBJ_NAME_new() LHM_lh_new(OBJ_NAME,obj_name)
@@ -1887,7 +1873,6 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_STRING, char)
1887 LHM_lh_doall_arg(OBJ_NAME,lh,fn,arg_type,arg) 1873 LHM_lh_doall_arg(OBJ_NAME,lh,fn,arg_type,arg)
1888#define lh_OBJ_NAME_error(lh) LHM_lh_error(OBJ_NAME,lh) 1874#define lh_OBJ_NAME_error(lh) LHM_lh_error(OBJ_NAME,lh)
1889#define lh_OBJ_NAME_num_items(lh) LHM_lh_num_items(OBJ_NAME,lh) 1875#define lh_OBJ_NAME_num_items(lh) LHM_lh_num_items(OBJ_NAME,lh)
1890#define lh_OBJ_NAME_down_load(lh) LHM_lh_down_load(OBJ_NAME,lh)
1891#define lh_OBJ_NAME_free(lh) LHM_lh_free(OBJ_NAME,lh) 1876#define lh_OBJ_NAME_free(lh) LHM_lh_free(OBJ_NAME,lh)
1892 1877
1893#define lh_OPENSSL_STRING_new() LHM_lh_new(OPENSSL_STRING,openssl_string) 1878#define lh_OPENSSL_STRING_new() LHM_lh_new(OPENSSL_STRING,openssl_string)
@@ -1899,7 +1884,6 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_STRING, char)
1899 LHM_lh_doall_arg(OPENSSL_STRING,lh,fn,arg_type,arg) 1884 LHM_lh_doall_arg(OPENSSL_STRING,lh,fn,arg_type,arg)
1900#define lh_OPENSSL_STRING_error(lh) LHM_lh_error(OPENSSL_STRING,lh) 1885#define lh_OPENSSL_STRING_error(lh) LHM_lh_error(OPENSSL_STRING,lh)
1901#define lh_OPENSSL_STRING_num_items(lh) LHM_lh_num_items(OPENSSL_STRING,lh) 1886#define lh_OPENSSL_STRING_num_items(lh) LHM_lh_num_items(OPENSSL_STRING,lh)
1902#define lh_OPENSSL_STRING_down_load(lh) LHM_lh_down_load(OPENSSL_STRING,lh)
1903#define lh_OPENSSL_STRING_free(lh) LHM_lh_free(OPENSSL_STRING,lh) 1887#define lh_OPENSSL_STRING_free(lh) LHM_lh_free(OPENSSL_STRING,lh)
1904 1888
1905#define lh_SSL_SESSION_new() LHM_lh_new(SSL_SESSION,ssl_session) 1889#define lh_SSL_SESSION_new() LHM_lh_new(SSL_SESSION,ssl_session)
@@ -1911,7 +1895,6 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_STRING, char)
1911 LHM_lh_doall_arg(SSL_SESSION,lh,fn,arg_type,arg) 1895 LHM_lh_doall_arg(SSL_SESSION,lh,fn,arg_type,arg)
1912#define lh_SSL_SESSION_error(lh) LHM_lh_error(SSL_SESSION,lh) 1896#define lh_SSL_SESSION_error(lh) LHM_lh_error(SSL_SESSION,lh)
1913#define lh_SSL_SESSION_num_items(lh) LHM_lh_num_items(SSL_SESSION,lh) 1897#define lh_SSL_SESSION_num_items(lh) LHM_lh_num_items(SSL_SESSION,lh)
1914#define lh_SSL_SESSION_down_load(lh) LHM_lh_down_load(SSL_SESSION,lh)
1915#define lh_SSL_SESSION_free(lh) LHM_lh_free(SSL_SESSION,lh) 1898#define lh_SSL_SESSION_free(lh) LHM_lh_free(SSL_SESSION,lh)
1916 1899
1917#endif /* !defined HEADER_SAFESTACK_H */ 1900#endif /* !defined HEADER_SAFESTACK_H */