summaryrefslogtreecommitdiff
path: root/src/lib/libssl/ssl_seclevel.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libssl/ssl_seclevel.c')
-rw-r--r--src/lib/libssl/ssl_seclevel.c25
1 files changed, 24 insertions, 1 deletions
diff --git a/src/lib/libssl/ssl_seclevel.c b/src/lib/libssl/ssl_seclevel.c
index 954f27b336..35f8b8891b 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.13 2022/06/30 11:25:52 tb Exp $ */ 1/* $OpenBSD: ssl_seclevel.c,v 1.14 2022/06/30 16:05:07 tb Exp $ */
2/* 2/*
3 * Copyright (c) 2020 Theo Buehler <tb@openbsd.org> 3 * Copyright (c) 2020 Theo Buehler <tb@openbsd.org>
4 * 4 *
@@ -27,6 +27,7 @@
27#include <openssl/x509.h> 27#include <openssl/x509.h>
28#include <openssl/x509v3.h> 28#include <openssl/x509v3.h>
29 29
30#include "bytestring.h"
30#include "ssl_locl.h" 31#include "ssl_locl.h"
31 32
32static int 33static int
@@ -398,3 +399,25 @@ ssl_security_cert_chain(const SSL *ssl, STACK_OF(X509) *sk, X509 *x509,
398 399
399 return 1; 400 return 1;
400} 401}
402
403int
404ssl_security_supported_group(const SSL *ssl, uint16_t curve_id)
405{
406 CBB cbb;
407 int bits, nid;
408 uint8_t curve[2];
409
410 if ((bits = tls1_ec_curve_id2bits(curve_id)) == 0)
411 return 0;
412 if ((nid = tls1_ec_curve_id2nid(curve_id)) == NID_undef)
413 return 0;
414
415 if (!CBB_init_fixed(&cbb, curve, sizeof(curve)))
416 return 0;
417 if (!CBB_add_u16(&cbb, curve_id))
418 return 0;
419 if (!CBB_finish(&cbb, NULL, NULL))
420 return 0;
421
422 return ssl_security(ssl, SSL_SECOP_CURVE_SUPPORTED, bits, nid, curve);
423}