Unverified Commit 8b8ba6b0 authored by Tatsuhiro Tsujikawa's avatar Tatsuhiro Tsujikawa Committed by GitHub

Merge pull request #1542 from nghttp2/nghttpx-check-sigalg

nghttpx: Choose ECDSA cert if compatible signature algorithm available
parents fb5b5aef 81fb0153
...@@ -196,6 +196,31 @@ int servername_callback(SSL *ssl, int *al, void *arg) { ...@@ -196,6 +196,31 @@ int servername_callback(SSL *ssl, int *al, void *arg) {
#if !defined(OPENSSL_IS_BORINGSSL) && !LIBRESSL_IN_USE && \ #if !defined(OPENSSL_IS_BORINGSSL) && !LIBRESSL_IN_USE && \
OPENSSL_VERSION_NUMBER >= 0x10002000L OPENSSL_VERSION_NUMBER >= 0x10002000L
auto num_sigalgs =
SSL_get_sigalgs(ssl, 0, nullptr, nullptr, nullptr, nullptr, nullptr);
for (idx = 0; idx < num_sigalgs; ++idx) {
int signhash;
SSL_get_sigalgs(ssl, idx, nullptr, nullptr, &signhash, nullptr, nullptr);
switch (signhash) {
case NID_ecdsa_with_SHA256:
case NID_ecdsa_with_SHA384:
case NID_ecdsa_with_SHA512:
break;
default:
continue;
}
break;
}
if (idx == num_sigalgs) {
SSL_set_SSL_CTX(ssl, ssl_ctx_list[0]);
return SSL_TLSEXT_ERR_OK;
}
auto num_shared_curves = SSL_get_shared_curve(ssl, -1); auto num_shared_curves = SSL_get_shared_curve(ssl, -1);
for (auto i = 0; i < num_shared_curves; ++i) { for (auto i = 0; i < num_shared_curves; ++i) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment