diff options
Diffstat (limited to 'lib/x509/sign.c')
-rw-r--r-- | lib/x509/sign.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/x509/sign.c b/lib/x509/sign.c index 20387d8826..dd688ea9ab 100644 --- a/lib/x509/sign.c +++ b/lib/x509/sign.c @@ -168,7 +168,11 @@ _gnutls_x509_pkix_sign(ASN1_TYPE src, const char *src_name, return result; } - result = privkey_sign_data(issuer_key, &tbs, &signature, ¶ms); + if (_gnutls_pk_is_not_prehashed(issuer_key->pk_algorithm)) { + result = privkey_sign_raw_data(issuer_key, &tbs, &signature, ¶ms); + } else { + result = privkey_sign_and_hash_data(issuer_key, &tbs, &signature, ¶ms); + } gnutls_free(tbs.data); if (result < 0) { |