diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-11-11 03:23:08 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-11-11 03:23:08 +0000 |
| commit | 1946b3341f3a2cb7e55829bc8af56ead2a5a4e6a (patch) | |
| tree | 4b5c30f1e4bd4c93feea0304ca7aa8049afbd270 /src | |
| parent | 89f997ec0d93345fa3134d1c906bf16246a51fc1 (diff) | |
2010-11-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Added sha-224, sha-384, sha-512 hash function support.
* m4/openssl.m4
* src/MessageDigest.cc
* src/LibgcryptMessageDigestImpl.cc
* src/LibsslMessageDigestImpl.cc
Diffstat (limited to 'src')
| -rw-r--r-- | src/LibgcryptMessageDigestImpl.cc | 3 | ||||
| -rw-r--r-- | src/LibsslMessageDigestImpl.cc | 9 | ||||
| -rw-r--r-- | src/MessageDigest.cc | 8 |
3 files changed, 19 insertions, 1 deletions
diff --git a/src/LibgcryptMessageDigestImpl.cc b/src/LibgcryptMessageDigestImpl.cc index 1794eb34..84c3f8bc 100644 --- a/src/LibgcryptMessageDigestImpl.cc +++ b/src/LibgcryptMessageDigestImpl.cc @@ -62,7 +62,10 @@ typedef FindHashFunc<int> CFindHashFunc; namespace { CHashFuncEntry hashFuncs[] = { CHashFuncEntry("sha-1", GCRY_MD_SHA1), + CHashFuncEntry("sha-224", GCRY_MD_SHA224), CHashFuncEntry("sha-256", GCRY_MD_SHA256), + CHashFuncEntry("sha-384", GCRY_MD_SHA384), + CHashFuncEntry("sha-512", GCRY_MD_SHA512), CHashFuncEntry("md5", GCRY_MD_MD5) }; } // namespace diff --git a/src/LibsslMessageDigestImpl.cc b/src/LibsslMessageDigestImpl.cc index 8b4a6349..74c7afd7 100644 --- a/src/LibsslMessageDigestImpl.cc +++ b/src/LibsslMessageDigestImpl.cc @@ -64,9 +64,18 @@ typedef FindHashFunc<const EVP_MD*> CFindHashFunc; namespace { CHashFuncEntry hashFuncs[] = { CHashFuncEntry("sha-1", EVP_sha1()), +#ifdef HAVE_EVP_SHA224 + CHashFuncEntry("sha-224", EVP_sha224()), +#endif // HAVE_EVP_SHA224 #ifdef HAVE_EVP_SHA256 CHashFuncEntry("sha-256", EVP_sha256()), #endif // HAVE_EVP_SHA256 +#ifdef HAVE_EVP_SHA384 + CHashFuncEntry("sha-384", EVP_sha384()), +#endif // HAVE_EVP_SHA384 +#ifdef HAVE_EVP_SHA512 + CHashFuncEntry("sha-512", EVP_sha512()), +#endif // HAVE_EVP_SHA512 CHashFuncEntry("md5", EVP_md5()) }; } // namespace diff --git a/src/MessageDigest.cc b/src/MessageDigest.cc index f842bf89..4c2ea17e 100644 --- a/src/MessageDigest.cc +++ b/src/MessageDigest.cc @@ -51,7 +51,10 @@ struct HashTypeEntry { namespace { HashTypeEntry hashTypes[] = { HashTypeEntry("sha-1", 1), - HashTypeEntry("sha-256", 2), + HashTypeEntry("sha-224", 2), + HashTypeEntry("sha-256", 3), + HashTypeEntry("sha-384", 4), + HashTypeEntry("sha-512", 5), HashTypeEntry("md5", 0) }; } // namespace aria2 @@ -137,6 +140,9 @@ bool MessageDigest::isValidHash std::string MessageDigest::getCanonicalHashType(const std::string& hashType) { + // This is really backward compatibility for Metalink3. aria2 only + // supported sha-1, sha-256 and md5 at Metalink3 era. So we don't + // add alias for sha-224, sha-384 and sha-512. if("sha1" == hashType) { return "sha-1"; } else if("sha256" == hashType) { |
