summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorjsing <>2019-11-02 13:37:59 +0000
committerjsing <>2019-11-02 13:37:59 +0000
commit3c2988a5030b1e619c1c04fa6111186dc8223e48 (patch)
tree26dff2e2873d1fd641e2d14891cef32db1d1f78c /src/lib
parenta25bde481efe993b20eb0b871199c1fd4a3a4935 (diff)
downloadopenbsd-3c2988a5030b1e619c1c04fa6111186dc8223e48.tar.gz
openbsd-3c2988a5030b1e619c1c04fa6111186dc8223e48.tar.bz2
openbsd-3c2988a5030b1e619c1c04fa6111186dc8223e48.zip
Provide tls_conn_cipher_strength().
This returns the strength in bits of the symmetric cipher used for the connection. Diff from gilles@ ok tb@
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/libtls/Symbols.list1
-rw-r--r--src/lib/libtls/tls.h3
-rw-r--r--src/lib/libtls/tls_conninfo.c11
-rw-r--r--src/lib/libtls/tls_internal.h3
4 files changed, 15 insertions, 3 deletions
diff --git a/src/lib/libtls/Symbols.list b/src/lib/libtls/Symbols.list
index 4064be1b08..e3fcb67fb3 100644
--- a/src/lib/libtls/Symbols.list
+++ b/src/lib/libtls/Symbols.list
@@ -51,6 +51,7 @@ tls_config_verify_client_optional
51tls_configure 51tls_configure
52tls_conn_alpn_selected 52tls_conn_alpn_selected
53tls_conn_cipher 53tls_conn_cipher
54tls_conn_cipher_strength
54tls_conn_servername 55tls_conn_servername
55tls_conn_session_resumed 56tls_conn_session_resumed
56tls_conn_version 57tls_conn_version
diff --git a/src/lib/libtls/tls.h b/src/lib/libtls/tls.h
index 560809ee19..fee60c7cc8 100644
--- a/src/lib/libtls/tls.h
+++ b/src/lib/libtls/tls.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: tls.h,v 1.55 2018/11/29 14:24:23 tedu Exp $ */ 1/* $OpenBSD: tls.h,v 1.56 2019/11/02 13:37:59 jsing Exp $ */
2/* 2/*
3 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org> 3 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org>
4 * 4 *
@@ -190,6 +190,7 @@ const uint8_t *tls_peer_cert_chain_pem(struct tls *_ctx, size_t *_len);
190 190
191const char *tls_conn_alpn_selected(struct tls *_ctx); 191const char *tls_conn_alpn_selected(struct tls *_ctx);
192const char *tls_conn_cipher(struct tls *_ctx); 192const char *tls_conn_cipher(struct tls *_ctx);
193int tls_conn_cipher_strength(struct tls *_ctx);
193const char *tls_conn_servername(struct tls *_ctx); 194const char *tls_conn_servername(struct tls *_ctx);
194int tls_conn_session_resumed(struct tls *_ctx); 195int tls_conn_session_resumed(struct tls *_ctx);
195const char *tls_conn_version(struct tls *_ctx); 196const char *tls_conn_version(struct tls *_ctx);
diff --git a/src/lib/libtls/tls_conninfo.c b/src/lib/libtls/tls_conninfo.c
index 8e479ed84c..d44dc842b6 100644
--- a/src/lib/libtls/tls_conninfo.c
+++ b/src/lib/libtls/tls_conninfo.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: tls_conninfo.c,v 1.20 2018/02/10 04:48:44 jsing Exp $ */ 1/* $OpenBSD: tls_conninfo.c,v 1.21 2019/11/02 13:37:59 jsing Exp $ */
2/* 2/*
3 * Copyright (c) 2015 Joel Sing <jsing@openbsd.org> 3 * Copyright (c) 2015 Joel Sing <jsing@openbsd.org>
4 * Copyright (c) 2015 Bob Beck <beck@openbsd.org> 4 * Copyright (c) 2015 Bob Beck <beck@openbsd.org>
@@ -246,6 +246,7 @@ tls_conninfo_populate(struct tls *ctx)
246 goto err; 246 goto err;
247 if ((ctx->conninfo->cipher = strdup(tmp)) == NULL) 247 if ((ctx->conninfo->cipher = strdup(tmp)) == NULL)
248 goto err; 248 goto err;
249 ctx->conninfo->cipher_strength = SSL_get_cipher_bits(ctx->ssl_conn, NULL);
249 250
250 if (ctx->servername != NULL) { 251 if (ctx->servername != NULL) {
251 if ((ctx->conninfo->servername = 252 if ((ctx->conninfo->servername =
@@ -312,6 +313,14 @@ tls_conn_cipher(struct tls *ctx)
312 return (ctx->conninfo->cipher); 313 return (ctx->conninfo->cipher);
313} 314}
314 315
316int
317tls_conn_cipher_strength(struct tls *ctx)
318{
319 if (ctx->conninfo == NULL)
320 return (0);
321 return (ctx->conninfo->cipher_strength);
322}
323
315const char * 324const char *
316tls_conn_servername(struct tls *ctx) 325tls_conn_servername(struct tls *ctx)
317{ 326{
diff --git a/src/lib/libtls/tls_internal.h b/src/lib/libtls/tls_internal.h
index 3842439d58..efccc9fdbe 100644
--- a/src/lib/libtls/tls_internal.h
+++ b/src/lib/libtls/tls_internal.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: tls_internal.h,v 1.74 2019/04/01 15:58:02 jsing Exp $ */ 1/* $OpenBSD: tls_internal.h,v 1.75 2019/11/02 13:37:59 jsing Exp $ */
2/* 2/*
3 * Copyright (c) 2014 Jeremie Courreges-Anglas <jca@openbsd.org> 3 * Copyright (c) 2014 Jeremie Courreges-Anglas <jca@openbsd.org>
4 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org> 4 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org>
@@ -112,6 +112,7 @@ struct tls_config {
112struct tls_conninfo { 112struct tls_conninfo {
113 char *alpn; 113 char *alpn;
114 char *cipher; 114 char *cipher;
115 int cipher_strength;
115 char *servername; 116 char *servername;
116 int session_resumed; 117 int session_resumed;
117 char *version; 118 char *version;