diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-05-14 14:11:56 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-05-14 14:11:56 +0000 |
| commit | b305edd7c5ccd2c0ca78ecb3e92f9840065b5c31 (patch) | |
| tree | c2af0bb7f71522652ea1cf71f915345e1889b691 /src/messageDigest.cc | |
| parent | 88475a6aa092f402ca8bad19378e7e030480c533 (diff) | |
2010-05-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Left only IANA hash function textual name in messageDigest.cc.
Assign only IANA hash function textual name to Checksum and
ChunkChecksum. Fixed the value of MessageDigestContext::MD5.
* src/Checksum.h
* src/MetalinkParserController.cc
* src/messageDigest.cc
* src/messageDigest.h
* test/IteratableChecksumValidatorTest.cc
* test/IteratableChunkChecksumValidatorTest.cc
* test/MessageDigestHelperTest.cc
* test/Metalink2RequestGroupTest.cc
* test/MetalinkProcessorTest.cc
Diffstat (limited to 'src/messageDigest.cc')
| -rw-r--r-- | src/messageDigest.cc | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/src/messageDigest.cc b/src/messageDigest.cc index ce860f89..02e7bfbf 100644 --- a/src/messageDigest.cc +++ b/src/messageDigest.cc @@ -42,7 +42,7 @@ const std::string MessageDigestContext::SHA1("sha-1"); const std::string MessageDigestContext::SHA256("sha-256"); -const std::string MessageDigestContext::MD5("md-5"); +const std::string MessageDigestContext::MD5("md5"); namespace { struct DigestAlgoEntry { @@ -68,13 +68,9 @@ static const DigestAlgoMap& getDigestAlgos() DigestAlgoMap::value_type("md5", DigestAlgoEntry(EVP_md5(), STRENGTH_MD5)), DigestAlgoMap::value_type ("sha-1", DigestAlgoEntry(EVP_sha1(), STRENGTH_SHA_1)), - DigestAlgoMap::value_type - ("sha1", DigestAlgoEntry(EVP_sha1(), STRENGTH_SHA_1)), # ifdef HAVE_EVP_SHA256 DigestAlgoMap::value_type ("sha-256", DigestAlgoEntry(EVP_sha256(), STRENGTH_SHA_256)), - DigestAlgoMap::value_type - ("sha256", DigestAlgoEntry(EVP_sha256(), STRENGTH_SHA_256)), # endif // HAVE_EVP_SHA256 #elif HAVE_LIBGCRYPT DigestAlgoMap::value_type @@ -82,17 +78,29 @@ static const DigestAlgoMap& getDigestAlgos() DigestAlgoMap::value_type ("sha-1", DigestAlgoEntry(GCRY_MD_SHA1, STRENGTH_SHA_1)), DigestAlgoMap::value_type - ("sha1", DigestAlgoEntry(GCRY_MD_SHA1, STRENGTH_SHA_1)), - DigestAlgoMap::value_type ("sha-256", DigestAlgoEntry(GCRY_MD_SHA256, STRENGTH_SHA_256)), - DigestAlgoMap::value_type - ("sha256", DigestAlgoEntry(GCRY_MD_SHA256, STRENGTH_SHA_256)), #endif // HAVE_LIBGCRYPT }; static const DigestAlgoMap algomap(vbegin(digests), vend(digests)); return algomap; } +std::string MessageDigestContext::getCanonicalAlgo +(const std::string& algostring) +{ + if(strcasecmp("sha-1", algostring.c_str()) == 0 || + strcasecmp("sha1", algostring.c_str()) == 0) { + return SHA1; + } else if(strcasecmp("sha-256", algostring.c_str()) == 0 || + strcasecmp("sha256", algostring.c_str()) == 0) { + return SHA256; + } else if(strcasecmp("md5", algostring.c_str()) == 0) { + return MD5; + } else { + return algostring; + } +} + std::string MessageDigestContext::digestFinal() { size_t length = digestLength(algo); @@ -151,4 +159,11 @@ bool MessageDigestContext::isStronger return (*lhsitr).second.strength > (*rhsitr).second.strength; } +bool MessageDigestContext::isValidHash +(const std::string& algostring, const std::string& hashstring) +{ + return util::isHexDigit(hashstring) && + supports(algostring) && digestLength(algostring)*2 == hashstring.size(); +} + } // namespace aria2 |
