diff options
author | guenther <> | 2016-11-04 18:28:58 +0000 |
---|---|---|
committer | guenther <> | 2016-11-04 18:28:58 +0000 |
commit | 8cc65628c4d521b267ce848806b81a4cf70a662f (patch) | |
tree | a976d8fd54ff6f0b241962b2bdfdd29e113892f7 /src/lib | |
parent | e8686503dae1f619d00440b2df8c7bdef857a901 (diff) | |
download | openbsd-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/Makefile | 10 | ||||
-rw-r--r-- | src/lib/libssl/Symbols.list | 266 | ||||
-rw-r--r-- | src/lib/libssl/bytestring.h | 12 | ||||
-rw-r--r-- | src/lib/libssl/pqueue.h | 6 | ||||
-rw-r--r-- | src/lib/libssl/ssl_locl.h | 6 |
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 | ||
3 | SUBDIR= man | 3 | SUBDIR= man |
4 | PC_FILES=openssl.pc libssl.pc | 4 | PC_FILES=openssl.pc libssl.pc |
@@ -17,6 +17,9 @@ CFLAGS+= -I${.CURDIR} | |||
17 | 17 | ||
18 | LDADD+= -L${BSDOBJDIR}/lib/libcrypto -lcrypto | 18 | LDADD+= -L${BSDOBJDIR}/lib/libcrypto -lcrypto |
19 | 19 | ||
20 | VERSION_SCRIPT= Symbols.map | ||
21 | SYMBOL_LIST= ${.CURDIR}/Symbols.list | ||
22 | |||
20 | SRCS=\ | 23 | SRCS=\ |
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 | ||
51 | all: ${PC_FILES} | 59 | all: ${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 */ | ||
2 | BIO_f_ssl | ||
3 | BIO_new_buffer_ssl_connect | ||
4 | BIO_new_ssl | ||
5 | BIO_new_ssl_connect | ||
6 | BIO_ssl_copy_session_id | ||
7 | BIO_ssl_shutdown | ||
8 | |||
9 | /* methods */ | ||
10 | DTLSv1_client_method | ||
11 | DTLSv1_method | ||
12 | DTLSv1_server_method | ||
13 | SSLv23_client_method | ||
14 | SSLv23_method | ||
15 | SSLv23_server_method | ||
16 | TLS_client_method | ||
17 | TLS_method | ||
18 | TLS_server_method | ||
19 | TLSv1_1_client_method | ||
20 | TLSv1_1_method | ||
21 | TLSv1_1_server_method | ||
22 | TLSv1_2_client_method | ||
23 | TLSv1_2_method | ||
24 | TLSv1_2_server_method | ||
25 | TLSv1_client_method | ||
26 | TLSv1_method | ||
27 | TLSv1_server_method | ||
28 | |||
29 | /* session import/export */ | ||
30 | PEM_read_SSL_SESSION | ||
31 | PEM_read_bio_SSL_SESSION | ||
32 | PEM_write_SSL_SESSION | ||
33 | PEM_write_bio_SSL_SESSION | ||
34 | d2i_SSL_SESSION | ||
35 | i2d_SSL_SESSION | ||
36 | |||
37 | /* setup */ | ||
38 | ERR_load_SSL_strings | ||
39 | |||
40 | /* general API */ | ||
41 | SSL_CIPHER_description | ||
42 | SSL_CIPHER_get_bits | ||
43 | SSL_CIPHER_get_by_id | ||
44 | SSL_CIPHER_get_by_value | ||
45 | SSL_CIPHER_get_id | ||
46 | SSL_CIPHER_get_name | ||
47 | SSL_CIPHER_get_value | ||
48 | SSL_CIPHER_get_version | ||
49 | SSL_COMP_add_compression_method | ||
50 | SSL_COMP_get_compression_methods | ||
51 | SSL_COMP_get_name | ||
52 | SSL_CTX_add_client_CA | ||
53 | SSL_CTX_add_session | ||
54 | SSL_CTX_callback_ctrl | ||
55 | SSL_CTX_check_private_key | ||
56 | SSL_CTX_ctrl | ||
57 | SSL_CTX_flush_sessions | ||
58 | SSL_CTX_free | ||
59 | SSL_CTX_get_cert_store | ||
60 | SSL_CTX_get_client_CA_list | ||
61 | SSL_CTX_get_client_cert_cb | ||
62 | SSL_CTX_get_ex_data | ||
63 | SSL_CTX_get_ex_new_index | ||
64 | SSL_CTX_get_info_callback | ||
65 | SSL_CTX_get_quiet_shutdown | ||
66 | SSL_CTX_get_timeout | ||
67 | SSL_CTX_get_verify_callback | ||
68 | SSL_CTX_get_verify_depth | ||
69 | SSL_CTX_get_verify_mode | ||
70 | SSL_CTX_load_verify_locations | ||
71 | SSL_CTX_load_verify_mem | ||
72 | SSL_CTX_new | ||
73 | SSL_CTX_remove_session | ||
74 | SSL_CTX_sess_get_get_cb | ||
75 | SSL_CTX_sess_get_new_cb | ||
76 | SSL_CTX_sess_get_remove_cb | ||
77 | SSL_CTX_sess_set_get_cb | ||
78 | SSL_CTX_sess_set_new_cb | ||
79 | SSL_CTX_sess_set_remove_cb | ||
80 | SSL_CTX_sessions | ||
81 | SSL_CTX_set1_param | ||
82 | SSL_CTX_set_alpn_protos | ||
83 | SSL_CTX_set_alpn_select_cb | ||
84 | SSL_CTX_set_cert_store | ||
85 | SSL_CTX_set_cert_verify_callback | ||
86 | SSL_CTX_set_cipher_list | ||
87 | SSL_CTX_set_client_CA_list | ||
88 | SSL_CTX_set_client_cert_cb | ||
89 | SSL_CTX_set_client_cert_engine | ||
90 | SSL_CTX_set_cookie_generate_cb | ||
91 | SSL_CTX_set_cookie_verify_cb | ||
92 | SSL_CTX_set_default_passwd_cb | ||
93 | SSL_CTX_set_default_passwd_cb_userdata | ||
94 | SSL_CTX_set_default_verify_paths | ||
95 | SSL_CTX_set_ex_data | ||
96 | SSL_CTX_set_generate_session_id | ||
97 | SSL_CTX_set_info_callback | ||
98 | SSL_CTX_set_msg_callback | ||
99 | SSL_CTX_set_next_proto_select_cb | ||
100 | SSL_CTX_set_next_protos_advertised_cb | ||
101 | SSL_CTX_set_purpose | ||
102 | SSL_CTX_set_quiet_shutdown | ||
103 | SSL_CTX_set_session_id_context | ||
104 | SSL_CTX_set_ssl_version | ||
105 | SSL_CTX_set_timeout | ||
106 | SSL_CTX_set_tlsext_use_srtp | ||
107 | SSL_CTX_set_tmp_dh_callback | ||
108 | SSL_CTX_set_tmp_ecdh_callback | ||
109 | SSL_CTX_set_tmp_rsa_callback | ||
110 | SSL_CTX_set_trust | ||
111 | SSL_CTX_set_verify | ||
112 | SSL_CTX_set_verify_depth | ||
113 | SSL_CTX_use_PrivateKey | ||
114 | SSL_CTX_use_PrivateKey_ASN1 | ||
115 | SSL_CTX_use_PrivateKey_file | ||
116 | SSL_CTX_use_RSAPrivateKey | ||
117 | SSL_CTX_use_RSAPrivateKey_ASN1 | ||
118 | SSL_CTX_use_RSAPrivateKey_file | ||
119 | SSL_CTX_use_certificate | ||
120 | SSL_CTX_use_certificate_ASN1 | ||
121 | SSL_CTX_use_certificate_chain_file | ||
122 | SSL_CTX_use_certificate_chain_mem | ||
123 | SSL_CTX_use_certificate_file | ||
124 | SSL_SESSION_free | ||
125 | SSL_SESSION_get0_peer | ||
126 | SSL_SESSION_get_compress_id | ||
127 | SSL_SESSION_get_ex_data | ||
128 | SSL_SESSION_get_ex_new_index | ||
129 | SSL_SESSION_get_id | ||
130 | SSL_SESSION_get_time | ||
131 | SSL_SESSION_get_timeout | ||
132 | SSL_SESSION_new | ||
133 | SSL_SESSION_print | ||
134 | SSL_SESSION_print_fp | ||
135 | SSL_SESSION_set1_id_context | ||
136 | SSL_SESSION_set_ex_data | ||
137 | SSL_SESSION_set_time | ||
138 | SSL_SESSION_set_timeout | ||
139 | SSL_accept | ||
140 | SSL_add_client_CA | ||
141 | SSL_add_dir_cert_subjects_to_stack | ||
142 | SSL_add_file_cert_subjects_to_stack | ||
143 | SSL_alert_desc_string | ||
144 | SSL_alert_desc_string_long | ||
145 | SSL_alert_type_string | ||
146 | SSL_alert_type_string_long | ||
147 | SSL_cache_hit | ||
148 | SSL_callback_ctrl | ||
149 | SSL_check_private_key | ||
150 | SSL_clear | ||
151 | SSL_connect | ||
152 | SSL_copy_session_id | ||
153 | SSL_ctrl | ||
154 | SSL_do_handshake | ||
155 | SSL_dup | ||
156 | SSL_dup_CA_list | ||
157 | SSL_export_keying_material | ||
158 | SSL_free | ||
159 | SSL_get0_alpn_selected | ||
160 | SSL_get0_next_proto_negotiated | ||
161 | SSL_get1_session | ||
162 | SSL_get_SSL_CTX | ||
163 | SSL_get_certificate | ||
164 | SSL_get_cipher_list | ||
165 | SSL_get_ciphers | ||
166 | SSL_get_client_CA_list | ||
167 | SSL_get_current_cipher | ||
168 | SSL_get_current_compression | ||
169 | SSL_get_current_expansion | ||
170 | SSL_get_default_timeout | ||
171 | SSL_get_error | ||
172 | SSL_get_ex_data | ||
173 | SSL_get_ex_data_X509_STORE_CTX_idx | ||
174 | SSL_get_ex_new_index | ||
175 | SSL_get_fd | ||
176 | SSL_get_finished | ||
177 | SSL_get_info_callback | ||
178 | SSL_get_peer_cert_chain | ||
179 | SSL_get_peer_certificate | ||
180 | SSL_get_peer_finished | ||
181 | SSL_get_privatekey | ||
182 | SSL_get_quiet_shutdown | ||
183 | SSL_get_rbio | ||
184 | SSL_get_read_ahead | ||
185 | SSL_get_rfd | ||
186 | SSL_get_selected_srtp_profile | ||
187 | SSL_get_servername | ||
188 | SSL_get_servername_type | ||
189 | SSL_get_session | ||
190 | SSL_get_shared_ciphers | ||
191 | SSL_get_shutdown | ||
192 | SSL_get_srtp_profiles | ||
193 | SSL_get_ssl_method | ||
194 | SSL_get_verify_callback | ||
195 | SSL_get_verify_depth | ||
196 | SSL_get_verify_mode | ||
197 | SSL_get_verify_result | ||
198 | SSL_get_version | ||
199 | SSL_get_wbio | ||
200 | SSL_get_wfd | ||
201 | SSL_has_matching_session_id | ||
202 | SSL_library_init | ||
203 | SSL_load_client_CA_file | ||
204 | SSL_load_error_strings | ||
205 | SSL_new | ||
206 | SSL_peek | ||
207 | SSL_pending | ||
208 | SSL_read | ||
209 | SSL_renegotiate | ||
210 | SSL_renegotiate_abbreviated | ||
211 | SSL_renegotiate_pending | ||
212 | SSL_rstate_string | ||
213 | SSL_rstate_string_long | ||
214 | SSL_select_next_proto | ||
215 | SSL_set1_param | ||
216 | SSL_set_SSL_CTX | ||
217 | SSL_set_accept_state | ||
218 | SSL_set_alpn_protos | ||
219 | SSL_set_bio | ||
220 | SSL_set_cipher_list | ||
221 | SSL_set_client_CA_list | ||
222 | SSL_set_connect_state | ||
223 | SSL_set_debug | ||
224 | SSL_set_ex_data | ||
225 | SSL_set_fd | ||
226 | SSL_set_generate_session_id | ||
227 | SSL_set_info_callback | ||
228 | SSL_set_msg_callback | ||
229 | SSL_set_purpose | ||
230 | SSL_set_quiet_shutdown | ||
231 | SSL_set_read_ahead | ||
232 | SSL_set_rfd | ||
233 | SSL_set_session | ||
234 | SSL_set_session_id_context | ||
235 | SSL_set_session_secret_cb | ||
236 | SSL_set_session_ticket_ext | ||
237 | SSL_set_session_ticket_ext_cb | ||
238 | SSL_set_shutdown | ||
239 | SSL_set_ssl_method | ||
240 | SSL_set_state | ||
241 | SSL_set_tlsext_use_srtp | ||
242 | SSL_set_tmp_dh_callback | ||
243 | SSL_set_tmp_ecdh_callback | ||
244 | SSL_set_tmp_rsa_callback | ||
245 | SSL_set_trust | ||
246 | SSL_set_verify | ||
247 | SSL_set_verify_depth | ||
248 | SSL_set_verify_result | ||
249 | SSL_set_wfd | ||
250 | SSL_shutdown | ||
251 | SSL_state | ||
252 | SSL_state_string | ||
253 | SSL_state_string_long | ||
254 | SSL_use_PrivateKey | ||
255 | SSL_use_PrivateKey_ASN1 | ||
256 | SSL_use_PrivateKey_file | ||
257 | SSL_use_RSAPrivateKey | ||
258 | SSL_use_RSAPrivateKey_ASN1 | ||
259 | SSL_use_RSAPrivateKey_file | ||
260 | SSL_use_certificate | ||
261 | SSL_use_certificate_ASN1 | ||
262 | SSL_use_certificate_file | ||
263 | SSL_version | ||
264 | SSL_version_str | ||
265 | SSL_want | ||
266 | SSL_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) | ||
21 | extern "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, | |||
504 | int CBS_asn1_indefinite_to_definite(CBS *in, uint8_t **out, size_t *out_len); | 502 | int 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 | |||
64 | typedef struct _pqueue *pqueue; | 66 | typedef struct _pqueue *pqueue; |
65 | 67 | ||
66 | typedef struct _pitem { | 68 | typedef struct _pitem { |
@@ -86,4 +88,6 @@ pitem *pqueue_next(piterator *iter); | |||
86 | 88 | ||
87 | int pqueue_size(pqueue pq); | 89 | int 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 |