summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorguenther <>2020-10-11 01:13:04 +0000
committerguenther <>2020-10-11 01:13:04 +0000
commit777484b19e29edc6126b0347b81a5d02728eeda2 (patch)
treea1700996b0869b46d3eedf854b33f08067fc7923 /src
parent7b1ccdaed9a452cebd4c04ea28232c7ddc20a11d (diff)
downloadopenbsd-777484b19e29edc6126b0347b81a5d02728eeda2.tar.gz
openbsd-777484b19e29edc6126b0347b81a5d02728eeda2.tar.bz2
openbsd-777484b19e29edc6126b0347b81a5d02728eeda2.zip
Constipate ssl3_ciphers and tls1[23]_sigalgs*, pushing them into
.data.rel.ro and .rodata respectively. ok tb@ jsing@
Diffstat (limited to 'src')
-rw-r--r--src/lib/libssl/s3_lib.c4
-rw-r--r--src/lib/libssl/ssl_locl.h4
-rw-r--r--src/lib/libssl/ssl_sigalgs.c16
-rw-r--r--src/lib/libssl/ssl_sigalgs.h14
-rw-r--r--src/lib/libssl/ssl_tlsext.c22
-rw-r--r--src/lib/libssl/ssl_tlsext.h4
6 files changed, 32 insertions, 32 deletions
diff --git a/src/lib/libssl/s3_lib.c b/src/lib/libssl/s3_lib.c
index 91bfb5f3b6..01afc72ebd 100644
--- a/src/lib/libssl/s3_lib.c
+++ b/src/lib/libssl/s3_lib.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: s3_lib.c,v 1.198 2020/09/17 15:42:14 jsing Exp $ */ 1/* $OpenBSD: s3_lib.c,v 1.199 2020/10/11 01:13:04 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 *
@@ -170,7 +170,7 @@
170#define FIXED_NONCE_LEN(x) (((x / 2) & 0xf) << 24) 170#define FIXED_NONCE_LEN(x) (((x / 2) & 0xf) << 24)
171 171
172/* list of available SSLv3 ciphers (sorted by id) */ 172/* list of available SSLv3 ciphers (sorted by id) */
173SSL_CIPHER ssl3_ciphers[] = { 173const SSL_CIPHER ssl3_ciphers[] = {
174 174
175 /* The RSA ciphers */ 175 /* The RSA ciphers */
176 /* Cipher 01 */ 176 /* Cipher 01 */
diff --git a/src/lib/libssl/ssl_locl.h b/src/lib/libssl/ssl_locl.h
index b207dc65e9..a5027a92e0 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.299 2020/10/07 08:43:34 jsing Exp $ */ 1/* $OpenBSD: ssl_locl.h,v 1.300 2020/10/11 01:13:04 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 *
@@ -1105,7 +1105,7 @@ struct ssl_aead_ctx_st {
1105 char variable_nonce_in_record; 1105 char variable_nonce_in_record;
1106}; 1106};
1107 1107
1108extern SSL_CIPHER ssl3_ciphers[]; 1108extern const SSL_CIPHER ssl3_ciphers[];
1109 1109
1110const char *ssl_version_string(int ver); 1110const char *ssl_version_string(int ver);
1111int ssl_enabled_version_range(SSL *s, uint16_t *min_ver, uint16_t *max_ver); 1111int ssl_enabled_version_range(SSL *s, uint16_t *min_ver, uint16_t *max_ver);
diff --git a/src/lib/libssl/ssl_sigalgs.c b/src/lib/libssl/ssl_sigalgs.c
index 6378ec8c07..1b5aad72f7 100644
--- a/src/lib/libssl/ssl_sigalgs.c
+++ b/src/lib/libssl/ssl_sigalgs.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_sigalgs.c,v 1.21 2020/05/09 16:52:15 beck Exp $ */ 1/* $OpenBSD: ssl_sigalgs.c,v 1.22 2020/10/11 01:13:04 guenther Exp $ */
2/* 2/*
3 * Copyright (c) 2018-2020 Bob Beck <beck@openbsd.org> 3 * Copyright (c) 2018-2020 Bob Beck <beck@openbsd.org>
4 * 4 *
@@ -144,7 +144,7 @@ const struct ssl_sigalg sigalgs[] = {
144}; 144};
145 145
146/* Sigalgs for tls 1.3, in preference order, */ 146/* Sigalgs for tls 1.3, in preference order, */
147uint16_t tls13_sigalgs[] = { 147const uint16_t tls13_sigalgs[] = {
148 SIGALG_RSA_PSS_RSAE_SHA512, 148 SIGALG_RSA_PSS_RSAE_SHA512,
149 SIGALG_RSA_PKCS1_SHA512, 149 SIGALG_RSA_PKCS1_SHA512,
150 SIGALG_ECDSA_SECP521R1_SHA512, 150 SIGALG_ECDSA_SECP521R1_SHA512,
@@ -155,10 +155,10 @@ uint16_t tls13_sigalgs[] = {
155 SIGALG_RSA_PKCS1_SHA256, 155 SIGALG_RSA_PKCS1_SHA256,
156 SIGALG_ECDSA_SECP256R1_SHA256, 156 SIGALG_ECDSA_SECP256R1_SHA256,
157}; 157};
158size_t tls13_sigalgs_len = (sizeof(tls13_sigalgs) / sizeof(tls13_sigalgs[0])); 158const size_t tls13_sigalgs_len = (sizeof(tls13_sigalgs) / sizeof(tls13_sigalgs[0]));
159 159
160/* Sigalgs for tls 1.2, in preference order, */ 160/* Sigalgs for tls 1.2, in preference order, */
161uint16_t tls12_sigalgs[] = { 161const uint16_t tls12_sigalgs[] = {
162 SIGALG_RSA_PSS_RSAE_SHA512, 162 SIGALG_RSA_PSS_RSAE_SHA512,
163 SIGALG_RSA_PKCS1_SHA512, 163 SIGALG_RSA_PKCS1_SHA512,
164 SIGALG_ECDSA_SECP521R1_SHA512, 164 SIGALG_ECDSA_SECP521R1_SHA512,
@@ -171,7 +171,7 @@ uint16_t tls12_sigalgs[] = {
171 SIGALG_RSA_PKCS1_SHA1, /* XXX */ 171 SIGALG_RSA_PKCS1_SHA1, /* XXX */
172 SIGALG_ECDSA_SHA1, /* XXX */ 172 SIGALG_ECDSA_SHA1, /* XXX */
173}; 173};
174size_t tls12_sigalgs_len = (sizeof(tls12_sigalgs) / sizeof(tls12_sigalgs[0])); 174const size_t tls12_sigalgs_len = (sizeof(tls12_sigalgs) / sizeof(tls12_sigalgs[0]));
175 175
176const struct ssl_sigalg * 176const struct ssl_sigalg *
177ssl_sigalg_lookup(uint16_t sigalg) 177ssl_sigalg_lookup(uint16_t sigalg)
@@ -187,7 +187,7 @@ ssl_sigalg_lookup(uint16_t sigalg)
187} 187}
188 188
189const struct ssl_sigalg * 189const struct ssl_sigalg *
190ssl_sigalg(uint16_t sigalg, uint16_t *values, size_t len) 190ssl_sigalg(uint16_t sigalg, const uint16_t *values, size_t len)
191{ 191{
192 int i; 192 int i;
193 193
@@ -200,7 +200,7 @@ ssl_sigalg(uint16_t sigalg, uint16_t *values, size_t len)
200} 200}
201 201
202int 202int
203ssl_sigalgs_build(CBB *cbb, uint16_t *values, size_t len) 203ssl_sigalgs_build(CBB *cbb, const uint16_t *values, size_t len)
204{ 204{
205 size_t i; 205 size_t i;
206 206
@@ -260,7 +260,7 @@ ssl_sigalg_pkey_ok(const struct ssl_sigalg *sigalg, EVP_PKEY *pkey,
260const struct ssl_sigalg * 260const struct ssl_sigalg *
261ssl_sigalg_select(SSL *s, EVP_PKEY *pkey) 261ssl_sigalg_select(SSL *s, EVP_PKEY *pkey)
262{ 262{
263 uint16_t *tls_sigalgs = tls12_sigalgs; 263 const uint16_t *tls_sigalgs = tls12_sigalgs;
264 size_t tls_sigalgs_len = tls12_sigalgs_len; 264 size_t tls_sigalgs_len = tls12_sigalgs_len;
265 int check_curve = 0; 265 int check_curve = 0;
266 CBS cbs; 266 CBS cbs;
diff --git a/src/lib/libssl/ssl_sigalgs.h b/src/lib/libssl/ssl_sigalgs.h
index 13a3597fb5..80674baed9 100644
--- a/src/lib/libssl/ssl_sigalgs.h
+++ b/src/lib/libssl/ssl_sigalgs.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_sigalgs.h,v 1.14 2019/03/25 17:33:26 jsing Exp $ */ 1/* $OpenBSD: ssl_sigalgs.h,v 1.15 2020/10/11 01:13:04 guenther Exp $ */
2/* 2/*
3 * Copyright (c) 2018-2019 Bob Beck <beck@openbsd.org> 3 * Copyright (c) 2018-2019 Bob Beck <beck@openbsd.org>
4 * 4 *
@@ -68,14 +68,14 @@ struct ssl_sigalg{
68 int flags; 68 int flags;
69}; 69};
70 70
71extern uint16_t tls12_sigalgs[]; 71extern const uint16_t tls12_sigalgs[];
72extern size_t tls12_sigalgs_len; 72extern const size_t tls12_sigalgs_len;
73extern uint16_t tls13_sigalgs[]; 73extern const uint16_t tls13_sigalgs[];
74extern size_t tls13_sigalgs_len; 74extern const size_t tls13_sigalgs_len;
75 75
76const struct ssl_sigalg *ssl_sigalg_lookup(uint16_t sigalg); 76const struct ssl_sigalg *ssl_sigalg_lookup(uint16_t sigalg);
77const struct ssl_sigalg *ssl_sigalg(uint16_t sigalg, uint16_t *values, size_t len); 77const struct ssl_sigalg *ssl_sigalg(uint16_t sigalg, const uint16_t *values, size_t len);
78int ssl_sigalgs_build(CBB *cbb, uint16_t *values, size_t len); 78int ssl_sigalgs_build(CBB *cbb, const uint16_t *values, size_t len);
79int ssl_sigalg_pkey_check(uint16_t sigalg, EVP_PKEY *pk); 79int ssl_sigalg_pkey_check(uint16_t sigalg, EVP_PKEY *pk);
80int ssl_sigalg_pkey_ok(const struct ssl_sigalg *sigalg, EVP_PKEY *pkey, 80int ssl_sigalg_pkey_ok(const struct ssl_sigalg *sigalg, EVP_PKEY *pkey,
81 int check_curve); 81 int check_curve);
diff --git a/src/lib/libssl/ssl_tlsext.c b/src/lib/libssl/ssl_tlsext.c
index a039d0b10a..2f6860b6f9 100644
--- a/src/lib/libssl/ssl_tlsext.c
+++ b/src/lib/libssl/ssl_tlsext.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_tlsext.c,v 1.82 2020/09/09 12:31:23 inoguchi Exp $ */ 1/* $OpenBSD: ssl_tlsext.c,v 1.83 2020/10/11 01:13:04 guenther Exp $ */
2/* 2/*
3 * Copyright (c) 2016, 2017, 2019 Joel Sing <jsing@openbsd.org> 3 * Copyright (c) 2016, 2017, 2019 Joel Sing <jsing@openbsd.org>
4 * Copyright (c) 2017 Doug Hogan <doug@openbsd.org> 4 * Copyright (c) 2017 Doug Hogan <doug@openbsd.org>
@@ -563,7 +563,7 @@ tlsext_sigalgs_client_needs(SSL *s, uint16_t msg_type)
563int 563int
564tlsext_sigalgs_client_build(SSL *s, uint16_t msg_type, CBB *cbb) 564tlsext_sigalgs_client_build(SSL *s, uint16_t msg_type, CBB *cbb)
565{ 565{
566 uint16_t *tls_sigalgs = tls12_sigalgs; 566 const uint16_t *tls_sigalgs = tls12_sigalgs;
567 size_t tls_sigalgs_len = tls12_sigalgs_len; 567 size_t tls_sigalgs_len = tls12_sigalgs_len;
568 CBB sigalgs; 568 CBB sigalgs;
569 569
@@ -609,7 +609,7 @@ tlsext_sigalgs_server_needs(SSL *s, uint16_t msg_type)
609int 609int
610tlsext_sigalgs_server_build(SSL *s, uint16_t msg_type, CBB *cbb) 610tlsext_sigalgs_server_build(SSL *s, uint16_t msg_type, CBB *cbb)
611{ 611{
612 uint16_t *tls_sigalgs = tls12_sigalgs; 612 const uint16_t *tls_sigalgs = tls12_sigalgs;
613 size_t tls_sigalgs_len = tls12_sigalgs_len; 613 size_t tls_sigalgs_len = tls12_sigalgs_len;
614 CBB sigalgs; 614 CBB sigalgs;
615 615
@@ -1815,7 +1815,7 @@ struct tls_extension {
1815 struct tls_extension_funcs server; 1815 struct tls_extension_funcs server;
1816}; 1816};
1817 1817
1818static struct tls_extension tls_extensions[] = { 1818static const struct tls_extension tls_extensions[] = {
1819 { 1819 {
1820 .type = TLSEXT_TYPE_supported_versions, 1820 .type = TLSEXT_TYPE_supported_versions,
1821 .messages = SSL_TLSEXT_MSG_CH | SSL_TLSEXT_MSG_SH | 1821 .messages = SSL_TLSEXT_MSG_CH | SSL_TLSEXT_MSG_SH |
@@ -1997,7 +1997,7 @@ static struct tls_extension tls_extensions[] = {
1997/* Ensure that extensions fit in a uint32_t bitmask. */ 1997/* Ensure that extensions fit in a uint32_t bitmask. */
1998CTASSERT(N_TLS_EXTENSIONS <= (sizeof(uint32_t) * 8)); 1998CTASSERT(N_TLS_EXTENSIONS <= (sizeof(uint32_t) * 8));
1999 1999
2000struct tls_extension * 2000const struct tls_extension *
2001tls_extension_find(uint16_t type, size_t *tls_extensions_idx) 2001tls_extension_find(uint16_t type, size_t *tls_extensions_idx)
2002{ 2002{
2003 size_t i; 2003 size_t i;
@@ -2022,8 +2022,8 @@ tlsext_extension_seen(SSL *s, uint16_t type)
2022 return ((S3I(s)->hs.extensions_seen & (1 << idx)) != 0); 2022 return ((S3I(s)->hs.extensions_seen & (1 << idx)) != 0);
2023} 2023}
2024 2024
2025static struct tls_extension_funcs * 2025static const struct tls_extension_funcs *
2026tlsext_funcs(struct tls_extension *tlsext, int is_server) 2026tlsext_funcs(const struct tls_extension *tlsext, int is_server)
2027{ 2027{
2028 if (is_server) 2028 if (is_server)
2029 return &tlsext->server; 2029 return &tlsext->server;
@@ -2034,8 +2034,8 @@ tlsext_funcs(struct tls_extension *tlsext, int is_server)
2034static int 2034static int
2035tlsext_build(SSL *s, int is_server, uint16_t msg_type, CBB *cbb) 2035tlsext_build(SSL *s, int is_server, uint16_t msg_type, CBB *cbb)
2036{ 2036{
2037 struct tls_extension_funcs *ext; 2037 const struct tls_extension_funcs *ext;
2038 struct tls_extension *tlsext; 2038 const struct tls_extension *tlsext;
2039 CBB extensions, extension_data; 2039 CBB extensions, extension_data;
2040 int extensions_present = 0; 2040 int extensions_present = 0;
2041 size_t i; 2041 size_t i;
@@ -2112,8 +2112,8 @@ tlsext_clienthello_hash_extension(SSL *s, uint16_t type, CBS *cbs)
2112static int 2112static int
2113tlsext_parse(SSL *s, int is_server, uint16_t msg_type, CBS *cbs, int *alert) 2113tlsext_parse(SSL *s, int is_server, uint16_t msg_type, CBS *cbs, int *alert)
2114{ 2114{
2115 struct tls_extension_funcs *ext; 2115 const struct tls_extension_funcs *ext;
2116 struct tls_extension *tlsext; 2116 const struct tls_extension *tlsext;
2117 CBS extensions, extension_data; 2117 CBS extensions, extension_data;
2118 uint16_t type; 2118 uint16_t type;
2119 size_t idx; 2119 size_t idx;
diff --git a/src/lib/libssl/ssl_tlsext.h b/src/lib/libssl/ssl_tlsext.h
index d98b387c5f..8e0742aa2c 100644
--- a/src/lib/libssl/ssl_tlsext.h
+++ b/src/lib/libssl/ssl_tlsext.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_tlsext.h,v 1.25 2020/07/03 04:51:59 tb Exp $ */ 1/* $OpenBSD: ssl_tlsext.h,v 1.26 2020/10/11 01:13:04 guenther Exp $ */
2/* 2/*
3 * Copyright (c) 2016, 2017 Joel Sing <jsing@openbsd.org> 3 * Copyright (c) 2016, 2017 Joel Sing <jsing@openbsd.org>
4 * Copyright (c) 2017 Doug Hogan <doug@openbsd.org> 4 * Copyright (c) 2017 Doug Hogan <doug@openbsd.org>
@@ -134,7 +134,7 @@ int tlsext_client_parse(SSL *s, uint16_t msg_type, CBS *cbs, int *alert);
134int tlsext_server_build(SSL *s, uint16_t msg_type, CBB *cbb); 134int tlsext_server_build(SSL *s, uint16_t msg_type, CBB *cbb);
135int tlsext_server_parse(SSL *s, uint16_t msg_type, CBS *cbs, int *alert); 135int tlsext_server_parse(SSL *s, uint16_t msg_type, CBS *cbs, int *alert);
136 136
137struct tls_extension *tls_extension_find(uint16_t, size_t *); 137const struct tls_extension *tls_extension_find(uint16_t, size_t *);
138int tlsext_extension_seen(SSL *s, uint16_t); 138int tlsext_extension_seen(SSL *s, uint16_t);
139__END_HIDDEN_DECLS 139__END_HIDDEN_DECLS
140 140