summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorguenther <>2016-11-04 18:28:58 +0000
committerguenther <>2016-11-04 18:28:58 +0000
commit8cc65628c4d521b267ce848806b81a4cf70a662f (patch)
treea976d8fd54ff6f0b241962b2bdfdd29e113892f7 /src/lib
parente8686503dae1f619d00440b2df8c7bdef857a901 (diff)
downloadopenbsd-8cc65628c4d521b267ce848806b81a4cf70a662f.tar.gz
openbsd-8cc65628c4d521b267ce848806b81a4cf70a662f.tar.bz2
openbsd-8cc65628c4d521b267ce848806b81a4cf70a662f.zip
Add an explict list of exported symbols with just the functions
declared in the public headers, and use __{BEGIN,END}_HIDDEN_DECLS in the internal headers to optimize internal functions ok jsing@
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/libssl/Makefile10
-rw-r--r--src/lib/libssl/Symbols.list266
-rw-r--r--src/lib/libssl/bytestring.h12
-rw-r--r--src/lib/libssl/pqueue.h6
-rw-r--r--src/lib/libssl/ssl_locl.h6
5 files changed, 289 insertions, 11 deletions
diff --git a/src/lib/libssl/Makefile b/src/lib/libssl/Makefile
index 6421aabe34..64b3b5060b 100644
--- a/src/lib/libssl/Makefile
+++ b/src/lib/libssl/Makefile
@@ -1,4 +1,4 @@
1# $OpenBSD: Makefile,v 1.23 2016/09/19 03:25:22 bcook Exp $ 1# $OpenBSD: Makefile,v 1.24 2016/11/04 18:28:58 guenther Exp $
2 2
3SUBDIR= man 3SUBDIR= man
4PC_FILES=openssl.pc libssl.pc 4PC_FILES=openssl.pc libssl.pc
@@ -17,6 +17,9 @@ CFLAGS+= -I${.CURDIR}
17 17
18LDADD+= -L${BSDOBJDIR}/lib/libcrypto -lcrypto 18LDADD+= -L${BSDOBJDIR}/lib/libcrypto -lcrypto
19 19
20VERSION_SCRIPT= Symbols.map
21SYMBOL_LIST= ${.CURDIR}/Symbols.list
22
20SRCS=\ 23SRCS=\
21 s3_srvr.c s3_clnt.c s3_lib.c s3_pkt.c s3_both.c \ 24 s3_srvr.c s3_clnt.c s3_lib.c s3_pkt.c s3_both.c \
22 s23_srvr.c s23_clnt.c s23_lib.c s23_pkt.c \ 25 s23_srvr.c s23_clnt.c s23_lib.c s23_pkt.c \
@@ -46,6 +49,11 @@ includes:
46 eval "$$j"; \ 49 eval "$$j"; \
47 done; 50 done;
48 51
52${VERSION_SCRIPT}: ${SYMBOL_LIST}
53 { printf '{\n\tglobal:\n'; \
54 sed '/^[._a-zA-Z]/s/$$/;/; s/^/ /' ${SYMBOL_LIST}; \
55 printf '\n\tlocal:\n\t\t*;\n};\n'; } >$@.tmp && mv $@.tmp $@
56
49.include <bsd.lib.mk> 57.include <bsd.lib.mk>
50 58
51all: ${PC_FILES} 59all: ${PC_FILES}
diff --git a/src/lib/libssl/Symbols.list b/src/lib/libssl/Symbols.list
new file mode 100644
index 0000000000..1938c21509
--- /dev/null
+++ b/src/lib/libssl/Symbols.list
@@ -0,0 +1,266 @@
1/* BIO glue */
2BIO_f_ssl
3BIO_new_buffer_ssl_connect
4BIO_new_ssl
5BIO_new_ssl_connect
6BIO_ssl_copy_session_id
7BIO_ssl_shutdown
8
9/* methods */
10DTLSv1_client_method
11DTLSv1_method
12DTLSv1_server_method
13SSLv23_client_method
14SSLv23_method
15SSLv23_server_method
16TLS_client_method
17TLS_method
18TLS_server_method
19TLSv1_1_client_method
20TLSv1_1_method
21TLSv1_1_server_method
22TLSv1_2_client_method
23TLSv1_2_method
24TLSv1_2_server_method
25TLSv1_client_method
26TLSv1_method
27TLSv1_server_method
28
29/* session import/export */
30PEM_read_SSL_SESSION
31PEM_read_bio_SSL_SESSION
32PEM_write_SSL_SESSION
33PEM_write_bio_SSL_SESSION
34d2i_SSL_SESSION
35i2d_SSL_SESSION
36
37/* setup */
38ERR_load_SSL_strings
39
40/* general API */
41SSL_CIPHER_description
42SSL_CIPHER_get_bits
43SSL_CIPHER_get_by_id
44SSL_CIPHER_get_by_value
45SSL_CIPHER_get_id
46SSL_CIPHER_get_name
47SSL_CIPHER_get_value
48SSL_CIPHER_get_version
49SSL_COMP_add_compression_method
50SSL_COMP_get_compression_methods
51SSL_COMP_get_name
52SSL_CTX_add_client_CA
53SSL_CTX_add_session
54SSL_CTX_callback_ctrl
55SSL_CTX_check_private_key
56SSL_CTX_ctrl
57SSL_CTX_flush_sessions
58SSL_CTX_free
59SSL_CTX_get_cert_store
60SSL_CTX_get_client_CA_list
61SSL_CTX_get_client_cert_cb
62SSL_CTX_get_ex_data
63SSL_CTX_get_ex_new_index
64SSL_CTX_get_info_callback
65SSL_CTX_get_quiet_shutdown
66SSL_CTX_get_timeout
67SSL_CTX_get_verify_callback
68SSL_CTX_get_verify_depth
69SSL_CTX_get_verify_mode
70SSL_CTX_load_verify_locations
71SSL_CTX_load_verify_mem
72SSL_CTX_new
73SSL_CTX_remove_session
74SSL_CTX_sess_get_get_cb
75SSL_CTX_sess_get_new_cb
76SSL_CTX_sess_get_remove_cb
77SSL_CTX_sess_set_get_cb
78SSL_CTX_sess_set_new_cb
79SSL_CTX_sess_set_remove_cb
80SSL_CTX_sessions
81SSL_CTX_set1_param
82SSL_CTX_set_alpn_protos
83SSL_CTX_set_alpn_select_cb
84SSL_CTX_set_cert_store
85SSL_CTX_set_cert_verify_callback
86SSL_CTX_set_cipher_list
87SSL_CTX_set_client_CA_list
88SSL_CTX_set_client_cert_cb
89SSL_CTX_set_client_cert_engine
90SSL_CTX_set_cookie_generate_cb
91SSL_CTX_set_cookie_verify_cb
92SSL_CTX_set_default_passwd_cb
93SSL_CTX_set_default_passwd_cb_userdata
94SSL_CTX_set_default_verify_paths
95SSL_CTX_set_ex_data
96SSL_CTX_set_generate_session_id
97SSL_CTX_set_info_callback
98SSL_CTX_set_msg_callback
99SSL_CTX_set_next_proto_select_cb
100SSL_CTX_set_next_protos_advertised_cb
101SSL_CTX_set_purpose
102SSL_CTX_set_quiet_shutdown
103SSL_CTX_set_session_id_context
104SSL_CTX_set_ssl_version
105SSL_CTX_set_timeout
106SSL_CTX_set_tlsext_use_srtp
107SSL_CTX_set_tmp_dh_callback
108SSL_CTX_set_tmp_ecdh_callback
109SSL_CTX_set_tmp_rsa_callback
110SSL_CTX_set_trust
111SSL_CTX_set_verify
112SSL_CTX_set_verify_depth
113SSL_CTX_use_PrivateKey
114SSL_CTX_use_PrivateKey_ASN1
115SSL_CTX_use_PrivateKey_file
116SSL_CTX_use_RSAPrivateKey
117SSL_CTX_use_RSAPrivateKey_ASN1
118SSL_CTX_use_RSAPrivateKey_file
119SSL_CTX_use_certificate
120SSL_CTX_use_certificate_ASN1
121SSL_CTX_use_certificate_chain_file
122SSL_CTX_use_certificate_chain_mem
123SSL_CTX_use_certificate_file
124SSL_SESSION_free
125SSL_SESSION_get0_peer
126SSL_SESSION_get_compress_id
127SSL_SESSION_get_ex_data
128SSL_SESSION_get_ex_new_index
129SSL_SESSION_get_id
130SSL_SESSION_get_time
131SSL_SESSION_get_timeout
132SSL_SESSION_new
133SSL_SESSION_print
134SSL_SESSION_print_fp
135SSL_SESSION_set1_id_context
136SSL_SESSION_set_ex_data
137SSL_SESSION_set_time
138SSL_SESSION_set_timeout
139SSL_accept
140SSL_add_client_CA
141SSL_add_dir_cert_subjects_to_stack
142SSL_add_file_cert_subjects_to_stack
143SSL_alert_desc_string
144SSL_alert_desc_string_long
145SSL_alert_type_string
146SSL_alert_type_string_long
147SSL_cache_hit
148SSL_callback_ctrl
149SSL_check_private_key
150SSL_clear
151SSL_connect
152SSL_copy_session_id
153SSL_ctrl
154SSL_do_handshake
155SSL_dup
156SSL_dup_CA_list
157SSL_export_keying_material
158SSL_free
159SSL_get0_alpn_selected
160SSL_get0_next_proto_negotiated
161SSL_get1_session
162SSL_get_SSL_CTX
163SSL_get_certificate
164SSL_get_cipher_list
165SSL_get_ciphers
166SSL_get_client_CA_list
167SSL_get_current_cipher
168SSL_get_current_compression
169SSL_get_current_expansion
170SSL_get_default_timeout
171SSL_get_error
172SSL_get_ex_data
173SSL_get_ex_data_X509_STORE_CTX_idx
174SSL_get_ex_new_index
175SSL_get_fd
176SSL_get_finished
177SSL_get_info_callback
178SSL_get_peer_cert_chain
179SSL_get_peer_certificate
180SSL_get_peer_finished
181SSL_get_privatekey
182SSL_get_quiet_shutdown
183SSL_get_rbio
184SSL_get_read_ahead
185SSL_get_rfd
186SSL_get_selected_srtp_profile
187SSL_get_servername
188SSL_get_servername_type
189SSL_get_session
190SSL_get_shared_ciphers
191SSL_get_shutdown
192SSL_get_srtp_profiles
193SSL_get_ssl_method
194SSL_get_verify_callback
195SSL_get_verify_depth
196SSL_get_verify_mode
197SSL_get_verify_result
198SSL_get_version
199SSL_get_wbio
200SSL_get_wfd
201SSL_has_matching_session_id
202SSL_library_init
203SSL_load_client_CA_file
204SSL_load_error_strings
205SSL_new
206SSL_peek
207SSL_pending
208SSL_read
209SSL_renegotiate
210SSL_renegotiate_abbreviated
211SSL_renegotiate_pending
212SSL_rstate_string
213SSL_rstate_string_long
214SSL_select_next_proto
215SSL_set1_param
216SSL_set_SSL_CTX
217SSL_set_accept_state
218SSL_set_alpn_protos
219SSL_set_bio
220SSL_set_cipher_list
221SSL_set_client_CA_list
222SSL_set_connect_state
223SSL_set_debug
224SSL_set_ex_data
225SSL_set_fd
226SSL_set_generate_session_id
227SSL_set_info_callback
228SSL_set_msg_callback
229SSL_set_purpose
230SSL_set_quiet_shutdown
231SSL_set_read_ahead
232SSL_set_rfd
233SSL_set_session
234SSL_set_session_id_context
235SSL_set_session_secret_cb
236SSL_set_session_ticket_ext
237SSL_set_session_ticket_ext_cb
238SSL_set_shutdown
239SSL_set_ssl_method
240SSL_set_state
241SSL_set_tlsext_use_srtp
242SSL_set_tmp_dh_callback
243SSL_set_tmp_ecdh_callback
244SSL_set_tmp_rsa_callback
245SSL_set_trust
246SSL_set_verify
247SSL_set_verify_depth
248SSL_set_verify_result
249SSL_set_wfd
250SSL_shutdown
251SSL_state
252SSL_state_string
253SSL_state_string_long
254SSL_use_PrivateKey
255SSL_use_PrivateKey_ASN1
256SSL_use_PrivateKey_file
257SSL_use_RSAPrivateKey
258SSL_use_RSAPrivateKey_ASN1
259SSL_use_RSAPrivateKey_file
260SSL_use_certificate
261SSL_use_certificate_ASN1
262SSL_use_certificate_file
263SSL_version
264SSL_version_str
265SSL_want
266SSL_write
diff --git a/src/lib/libssl/bytestring.h b/src/lib/libssl/bytestring.h
index 8ea84005b4..d8c8e6ada6 100644
--- a/src/lib/libssl/bytestring.h
+++ b/src/lib/libssl/bytestring.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: bytestring.h,v 1.14 2015/06/19 00:23:36 doug Exp $ */ 1/* $OpenBSD: bytestring.h,v 1.15 2016/11/04 18:28:58 guenther Exp $ */
2/* 2/*
3 * Copyright (c) 2014, Google Inc. 3 * Copyright (c) 2014, Google Inc.
4 * 4 *
@@ -17,15 +17,13 @@
17#ifndef OPENSSL_HEADER_BYTESTRING_H 17#ifndef OPENSSL_HEADER_BYTESTRING_H
18#define OPENSSL_HEADER_BYTESTRING_H 18#define OPENSSL_HEADER_BYTESTRING_H
19 19
20#if defined(__cplusplus)
21extern "C" {
22#endif
23
24#include <sys/types.h> 20#include <sys/types.h>
25#include <stdint.h> 21#include <stdint.h>
26 22
27#include <openssl/opensslconf.h> 23#include <openssl/opensslconf.h>
28 24
25__BEGIN_HIDDEN_DECLS
26
29/* 27/*
30 * Bytestrings are used for parsing and building TLS and ASN.1 messages. 28 * Bytestrings are used for parsing and building TLS and ASN.1 messages.
31 * 29 *
@@ -504,8 +502,6 @@ int cbs_get_any_asn1_element_internal(CBS *cbs, CBS *out, unsigned int *out_tag,
504int CBS_asn1_indefinite_to_definite(CBS *in, uint8_t **out, size_t *out_len); 502int CBS_asn1_indefinite_to_definite(CBS *in, uint8_t **out, size_t *out_len);
505#endif /* LIBRESSL_INTERNAL */ 503#endif /* LIBRESSL_INTERNAL */
506 504
507#if defined(__cplusplus) 505__END_HIDDEN_DECLS
508} /* extern C */
509#endif
510 506
511#endif /* OPENSSL_HEADER_BYTESTRING_H */ 507#endif /* OPENSSL_HEADER_BYTESTRING_H */
diff --git a/src/lib/libssl/pqueue.h b/src/lib/libssl/pqueue.h
index 0d7ddc04e2..cdda4a3961 100644
--- a/src/lib/libssl/pqueue.h
+++ b/src/lib/libssl/pqueue.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: pqueue.h,v 1.3 2014/06/12 15:49:31 deraadt Exp $ */ 1/* $OpenBSD: pqueue.h,v 1.4 2016/11/04 18:28:58 guenther Exp $ */
2 2
3/* 3/*
4 * DTLS implementation written by Nagendra Modadugu 4 * DTLS implementation written by Nagendra Modadugu
@@ -61,6 +61,8 @@
61#ifndef HEADER_PQUEUE_H 61#ifndef HEADER_PQUEUE_H
62#define HEADER_PQUEUE_H 62#define HEADER_PQUEUE_H
63 63
64__BEGIN_HIDDEN_DECLS
65
64typedef struct _pqueue *pqueue; 66typedef struct _pqueue *pqueue;
65 67
66typedef struct _pitem { 68typedef struct _pitem {
@@ -86,4 +88,6 @@ pitem *pqueue_next(piterator *iter);
86 88
87int pqueue_size(pqueue pq); 89int pqueue_size(pqueue pq);
88 90
91__END_HIDDEN_DECLS
92
89#endif /* ! HEADER_PQUEUE_H */ 93#endif /* ! HEADER_PQUEUE_H */
diff --git a/src/lib/libssl/ssl_locl.h b/src/lib/libssl/ssl_locl.h
index c3107745c9..5a146ce0b4 100644
--- a/src/lib/libssl/ssl_locl.h
+++ b/src/lib/libssl/ssl_locl.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_locl.h,v 1.132 2016/11/04 18:00:12 guenther Exp $ */ 1/* $OpenBSD: ssl_locl.h,v 1.133 2016/11/04 18:28:58 guenther 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 *
@@ -160,6 +160,8 @@
160#include <openssl/ssl.h> 160#include <openssl/ssl.h>
161#include <openssl/stack.h> 161#include <openssl/stack.h>
162 162
163__BEGIN_HIDDEN_DECLS
164
163#define c2l(c,l) (l = ((unsigned long)(*((c)++))) , \ 165#define c2l(c,l) (l = ((unsigned long)(*((c)++))) , \
164 l|=(((unsigned long)(*((c)++)))<< 8), \ 166 l|=(((unsigned long)(*((c)++)))<< 8), \
165 l|=(((unsigned long)(*((c)++)))<<16), \ 167 l|=(((unsigned long)(*((c)++)))<<16), \
@@ -834,4 +836,6 @@ int ssl3_cbc_digest_record(const EVP_MD_CTX *ctx, unsigned char *md_out,
834 size_t data_plus_mac_plus_padding_size, const unsigned char *mac_secret, 836 size_t data_plus_mac_plus_padding_size, const unsigned char *mac_secret,
835 unsigned mac_secret_length, char is_sslv3); 837 unsigned mac_secret_length, char is_sslv3);
836 838
839__END_HIDDEN_DECLS
840
837#endif 841#endif