diff --git a/ssl/ssl_lib.c b/ssl/ssl_lib.c index dd74a02d..3d9ea9bb 100644 --- a/ssl/ssl_lib.c +++ b/ssl/ssl_lib.c @@ -2585,9 +2585,16 @@ EVP_PKEY *ssl_get_sign_pkey(SSL *s, const SSL_CIPHER *cipher, idx = SSL_PKEY_RSA_SIGN; else if (c->pkeys[SSL_PKEY_RSA_ENC].privatekey != NULL) idx = SSL_PKEY_RSA_ENC; - } else if ((alg_a & SSL_aECDSA) && + } +# ifndef NO_GMSSL + else if ((alg_a & SSL_aSM2) && (c->pkeys[SSL_PKEY_ECC].privatekey != NULL)) idx = SSL_PKEY_ECC; +# endif + else if ((alg_a & SSL_aECDSA) && + (c->pkeys[SSL_PKEY_ECC].privatekey != NULL)) + idx = SSL_PKEY_ECC; + if (idx == -1) { SSLerr(SSL_F_SSL_GET_SIGN_PKEY, ERR_R_INTERNAL_ERROR); return (NULL);