diff --git a/src/vmime/security/cert/X509Certificate.hpp b/src/vmime/security/cert/X509Certificate.hpp index 5434b45e..c25373ee 100644 --- a/src/vmime/security/cert/X509Certificate.hpp +++ b/src/vmime/security/cert/X509Certificate.hpp @@ -61,8 +61,9 @@ class VMIME_EXPORT X509Certificate : public certificate { /** Supported digest algorithms (used for fingerprint). */ enum DigestAlgorithm { - DIGEST_MD5, /**< MD5 digest */ - DIGEST_SHA1 /**< SHA1 digest */ + DIGEST_MD5, + DIGEST_SHA1, + DIGEST_SHA256 }; diff --git a/src/vmime/security/cert/gnutls/X509Certificate_GnuTLS.cpp b/src/vmime/security/cert/gnutls/X509Certificate_GnuTLS.cpp index 3dfa1c6f..2ac0ed88 100644 --- a/src/vmime/security/cert/gnutls/X509Certificate_GnuTLS.cpp +++ b/src/vmime/security/cert/gnutls/X509Certificate_GnuTLS.cpp @@ -311,10 +311,15 @@ const byteArray X509Certificate_GnuTLS::getFingerprint(const DigestAlgorithm alg galgo = GNUTLS_DIG_MD5; break; + case DIGEST_SHA256: + + galgo = GNUTLS_DIG_SHA256; + break; + default: case DIGEST_SHA1: - galgo = GNUTLS_DIG_SHA; + galgo = GNUTLS_DIG_SHA1; break; } diff --git a/src/vmime/security/cert/openssl/X509Certificate_OpenSSL.cpp b/src/vmime/security/cert/openssl/X509Certificate_OpenSSL.cpp index 268a42c2..5df8703c 100644 --- a/src/vmime/security/cert/openssl/X509Certificate_OpenSSL.cpp +++ b/src/vmime/security/cert/openssl/X509Certificate_OpenSSL.cpp @@ -556,6 +556,11 @@ const byteArray X509Certificate_OpenSSL::getFingerprint(const DigestAlgorithm al digest = EVP_md5(); break; + case DIGEST_SHA256: + + digest = EVP_sha256(); + break; + default: case DIGEST_SHA1: