diff options
Diffstat (limited to 'chromium/third_party/libjingle/source/talk/base/messagedigest.cc')
-rw-r--r-- | chromium/third_party/libjingle/source/talk/base/messagedigest.cc | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/chromium/third_party/libjingle/source/talk/base/messagedigest.cc b/chromium/third_party/libjingle/source/talk/base/messagedigest.cc index d91d0674b5f..975991db7c0 100644 --- a/chromium/third_party/libjingle/source/talk/base/messagedigest.cc +++ b/chromium/third_party/libjingle/source/talk/base/messagedigest.cc @@ -70,6 +70,19 @@ MessageDigest* MessageDigestFactory::Create(const std::string& alg) { #endif } +bool IsFips180DigestAlgorithm(const std::string& alg) { + // These are the FIPS 180 algorithms. According to RFC 4572 Section 5, + // "Self-signed certificates (for which legacy certificates are not a + // consideration) MUST use one of the FIPS 180 algorithms (SHA-1, + // SHA-224, SHA-256, SHA-384, or SHA-512) as their signature algorithm, + // and thus also MUST use it to calculate certificate fingerprints." + return alg == DIGEST_SHA_1 || + alg == DIGEST_SHA_224 || + alg == DIGEST_SHA_256 || + alg == DIGEST_SHA_384 || + alg == DIGEST_SHA_512; +} + size_t ComputeDigest(MessageDigest* digest, const void* input, size_t in_len, void* output, size_t out_len) { digest->Update(input, in_len); |