diff --git a/src/crypto.cpp b/src/crypto.cpp index 1d578b5fcee2d432317f849aacc3e90e127cb22d..e71fe02e3c50db031c76861a049efa7e045e7dd1 100644 --- a/src/crypto.cpp +++ b/src/crypto.cpp @@ -1282,12 +1282,14 @@ Certificate::generate(const PrivateKey& key, const std::string& name, const Iden if (not ca.second->isCA()) { throw CryptoException("Signing certificate must be CA"); } - if (err = gnutls_x509_crt_privkey_sign(cert, ca.second->cert, ca.first->key, pk.getPreferredDigest(), 0)) { + err = gnutls_x509_crt_privkey_sign(cert, ca.second->cert, ca.first->key, pk.getPreferredDigest(), 0); + if (err) { throw CryptoException(std::string("Error when signing certificate ") + gnutls_strerror(err)); } ret.issuer = ca.second; } else { - if (err = gnutls_x509_crt_privkey_sign(cert, cert, key.key, pk.getPreferredDigest(), 0)) { + err = gnutls_x509_crt_privkey_sign(cert, cert, key.key, pk.getPreferredDigest(), 0); + if (err) { throw CryptoException(std::string("Error when signing certificate ") + gnutls_strerror(err)); } }