summaryrefslogtreecommitdiff
path: root/lib/libssl/ssl_srvr.c
diff options
context:
space:
mode:
authorBob Beck <beck@cvs.openbsd.org>2018-11-11 02:22:35 +0000
committerBob Beck <beck@cvs.openbsd.org>2018-11-11 02:22:35 +0000
commitd105c2f0b545345617d7a569127930f65a222f8a (patch)
tree7220a22f791b27fa0f4415f0a217c23f255d0b7c /lib/libssl/ssl_srvr.c
parentb0d556b0f6721d21fee8ed3a6c20220db7b697e0 (diff)
Add support for RSA PSS algorithims being used in sigalgs.
lightly tested, but will need sanity checks and regress test changes before being added to any sigalgs list for real ok jsing@ tb@
Diffstat (limited to 'lib/libssl/ssl_srvr.c')
-rw-r--r--lib/libssl/ssl_srvr.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/lib/libssl/ssl_srvr.c b/lib/libssl/ssl_srvr.c
index f1b8a494688..03ae29a2780 100644
--- a/lib/libssl/ssl_srvr.c
+++ b/lib/libssl/ssl_srvr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssl_srvr.c,v 1.56 2018/11/11 02:03:23 beck Exp $ */
+/* $OpenBSD: ssl_srvr.c,v 1.57 2018/11/11 02:22:34 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -1549,6 +1549,13 @@ ssl3_send_server_key_exchange(SSL *s)
SSLerror(s, ERR_R_EVP_LIB);
goto err;
}
+ if ((sigalg->flags & SIGALG_FLAG_RSA_PSS) &&
+ (!EVP_PKEY_CTX_set_rsa_padding(pctx,
+ RSA_PKCS1_PSS_PADDING) ||
+ !EVP_PKEY_CTX_set_rsa_pss_saltlen(pctx, -1))) {
+ SSLerror(s, ERR_R_EVP_LIB);
+ goto err;
+ }
if (!EVP_DigestSignUpdate(&md_ctx, s->s3->client_random,
SSL3_RANDOM_SIZE)) {
SSLerror(s, ERR_R_EVP_LIB);
@@ -2203,6 +2210,13 @@ ssl3_get_cert_verify(SSL *s)
al = SSL_AD_INTERNAL_ERROR;
goto f_err;
}
+ if ((sigalg->flags & SIGALG_FLAG_RSA_PSS) &&
+ (!EVP_PKEY_CTX_set_rsa_padding
+ (pctx, RSA_PKCS1_PSS_PADDING) ||
+ !EVP_PKEY_CTX_set_rsa_pss_saltlen(pctx, -1))) {
+ al = SSL_AD_INTERNAL_ERROR;
+ goto err;
+ }
if (!EVP_DigestVerifyUpdate(&mctx, hdata, hdatalen)) {
SSLerror(s, ERR_R_EVP_LIB);
al = SSL_AD_INTERNAL_ERROR;