diff options
Diffstat (limited to 'lib/ext/signature.c')
-rw-r--r-- | lib/ext/signature.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/ext/signature.c b/lib/ext/signature.c index 29a208e367..e11f4649a6 100644 --- a/lib/ext/signature.c +++ b/lib/ext/signature.c @@ -258,7 +258,7 @@ _gnutls_signature_algorithm_send_params(gnutls_session_t session, */ gnutls_sign_algorithm_t _gnutls_session_get_sign_algo(gnutls_session_t session, - gnutls_pcert_st * cert) + gnutls_pcert_st * cert, unsigned our_cert) { unsigned i; int ret; @@ -283,7 +283,8 @@ _gnutls_session_get_sign_algo(gnutls_session_t session, /* none set, allow SHA-1 only */ { ret = gnutls_pk_to_sign(cert_algo, GNUTLS_DIG_SHA1); - if (_gnutls_session_sign_algo_enabled(session, ret) < 0) + + if (!our_cert && _gnutls_session_sign_algo_enabled(session, ret) < 0) goto fail; return ret; } @@ -296,7 +297,7 @@ _gnutls_session_get_sign_algo(gnutls_session_t session, priv->sign_algorithms[i]) < 0) continue; - if (_gnutls_session_sign_algo_enabled + if (!our_cert && _gnutls_session_sign_algo_enabled (session, priv->sign_algorithms[i]) < 0) continue; |