diff options
Diffstat (limited to 'src/lib/libssl/ssl_seclevel.c')
-rw-r--r-- | src/lib/libssl/ssl_seclevel.c | 45 |
1 files changed, 43 insertions, 2 deletions
diff --git a/src/lib/libssl/ssl_seclevel.c b/src/lib/libssl/ssl_seclevel.c index 2e0b74141f..bc06177b38 100644 --- a/src/lib/libssl/ssl_seclevel.c +++ b/src/lib/libssl/ssl_seclevel.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssl_seclevel.c,v 1.15 2022/07/02 16:00:12 tb Exp $ */ | 1 | /* $OpenBSD: ssl_seclevel.c,v 1.16 2022/07/02 16:31:04 tb Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2020 Theo Buehler <tb@openbsd.org> | 3 | * Copyright (c) 2020 Theo Buehler <tb@openbsd.org> |
4 | * | 4 | * |
@@ -226,7 +226,7 @@ ssl_ctx_security(const SSL_CTX *ctx, int op, int bits, int nid, void *other) | |||
226 | ctx->internal->cert->security_ex_data); | 226 | ctx->internal->cert->security_ex_data); |
227 | } | 227 | } |
228 | 228 | ||
229 | int | 229 | static int |
230 | ssl_security(const SSL *ssl, int op, int bits, int nid, void *other) | 230 | ssl_security(const SSL *ssl, int op, int bits, int nid, void *other) |
231 | { | 231 | { |
232 | return ssl->cert->security_cb(ssl, NULL, op, bits, nid, other, | 232 | return ssl->cert->security_cb(ssl, NULL, op, bits, nid, other, |
@@ -234,11 +234,52 @@ ssl_security(const SSL *ssl, int op, int bits, int nid, void *other) | |||
234 | } | 234 | } |
235 | 235 | ||
236 | int | 236 | int |
237 | ssl_security_sigalg_check(const SSL *ssl, const EVP_PKEY *pkey) | ||
238 | { | ||
239 | #if defined(LIBRESSL_HAS_SECURITY_LEVEL) | ||
240 | return ssl_security(ssl, SSL_SECOP_SIGALG_CHECK, | ||
241 | EVP_PKEY_security_bits(pkey), 0, NULL); | ||
242 | #else | ||
243 | return 1; | ||
244 | #endif | ||
245 | } | ||
246 | |||
247 | int | ||
248 | ssl_security_tickets(const SSL *ssl) | ||
249 | { | ||
250 | return ssl_security(ssl, SSL_SECOP_TICKET, 0, 0, NULL); | ||
251 | } | ||
252 | |||
253 | int | ||
237 | ssl_security_version(const SSL *ssl, int version) | 254 | ssl_security_version(const SSL *ssl, int version) |
238 | { | 255 | { |
239 | return ssl_security(ssl, SSL_SECOP_VERSION, 0, version, NULL); | 256 | return ssl_security(ssl, SSL_SECOP_VERSION, 0, version, NULL); |
240 | } | 257 | } |
241 | 258 | ||
259 | static int | ||
260 | ssl_security_cipher(const SSL *ssl, SSL_CIPHER *cipher, int secop) | ||
261 | { | ||
262 | return ssl_security(ssl, secop, cipher->strength_bits, 0, cipher); | ||
263 | } | ||
264 | |||
265 | int | ||
266 | ssl_security_cipher_check(const SSL *ssl, SSL_CIPHER *cipher) | ||
267 | { | ||
268 | return ssl_security_cipher(ssl, cipher, SSL_SECOP_CIPHER_CHECK); | ||
269 | } | ||
270 | |||
271 | int | ||
272 | ssl_security_shared_cipher(const SSL *ssl, SSL_CIPHER *cipher) | ||
273 | { | ||
274 | return ssl_security_cipher(ssl, cipher, SSL_SECOP_CIPHER_SHARED); | ||
275 | } | ||
276 | |||
277 | int | ||
278 | ssl_security_supported_cipher(const SSL *ssl, SSL_CIPHER *cipher) | ||
279 | { | ||
280 | return ssl_security_cipher(ssl, cipher, SSL_SECOP_CIPHER_SUPPORTED); | ||
281 | } | ||
282 | |||
242 | int | 283 | int |
243 | ssl_ctx_security_dh(const SSL_CTX *ctx, DH *dh) | 284 | ssl_ctx_security_dh(const SSL_CTX *ctx, DH *dh) |
244 | { | 285 | { |