diff options
Diffstat (limited to 'src/HttpResponse.cc')
| -rw-r--r-- | src/HttpResponse.cc | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/HttpResponse.cc b/src/HttpResponse.cc index e1381ad1..0c879291 100644 --- a/src/HttpResponse.cc +++ b/src/HttpResponse.cc @@ -408,11 +408,12 @@ void HttpResponse::getDigest(std::vector<Checksum>& result) const break; } util::lowercase(hashType); - std::string hexDigest = util::toHex(Base64::decode(digest)); - if(!MessageDigest::isValidHash(hashType, hexDigest)) { + digest = Base64::decode(digest); + if(!MessageDigest::supports(hashType) || + MessageDigest::getDigestLength(hashType) != digest.size()) { continue; } - result.push_back(Checksum(hashType, hexDigest)); + result.push_back(Checksum(hashType, digest)); } } std::sort(result.begin(), result.end(), HashTypeStronger()); |
