Vector<uint8_t> CryptoDigest::computeHash() { Vector<uint8_t> result; switch (m_context->algorithm) { case CryptoAlgorithmIdentifier::SHA_1: result.resize(CC_SHA1_DIGEST_LENGTH); CC_SHA1_Final(result.data(), toSHA1Context(m_context.get())); break; case CryptoAlgorithmIdentifier::SHA_224: result.resize(CC_SHA224_DIGEST_LENGTH); CC_SHA224_Final(result.data(), toSHA224Context(m_context.get())); break; case CryptoAlgorithmIdentifier::SHA_256: result.resize(CC_SHA256_DIGEST_LENGTH); CC_SHA256_Final(result.data(), toSHA256Context(m_context.get())); break; case CryptoAlgorithmIdentifier::SHA_384: result.resize(CC_SHA384_DIGEST_LENGTH); CC_SHA384_Final(result.data(), toSHA384Context(m_context.get())); break; case CryptoAlgorithmIdentifier::SHA_512: result.resize(CC_SHA512_DIGEST_LENGTH); CC_SHA512_Final(result.data(), toSHA512Context(m_context.get())); break; default: ASSERT_NOT_REACHED(); } return result; }
CryptoDigest::~CryptoDigest() { switch (m_context->algorithm) { case CryptoDigest::Algorithm::SHA_1: delete toSHA1Context(m_context.get()); return; case CryptoDigest::Algorithm::SHA_224: delete toSHA224Context(m_context.get()); return; case CryptoDigest::Algorithm::SHA_256: delete toSHA256Context(m_context.get()); return; case CryptoDigest::Algorithm::SHA_384: delete toSHA384Context(m_context.get()); return; case CryptoDigest::Algorithm::SHA_512: delete toSHA512Context(m_context.get()); return; } }
void CryptoDigest::addBytes(const void* input, size_t length) { switch (m_context->algorithm) { case CryptoDigest::Algorithm::SHA_1: CC_SHA1_Update(toSHA1Context(m_context.get()), input, length); return; case CryptoDigest::Algorithm::SHA_224: CC_SHA224_Update(toSHA224Context(m_context.get()), input, length); return; case CryptoDigest::Algorithm::SHA_256: CC_SHA256_Update(toSHA256Context(m_context.get()), input, length); return; case CryptoDigest::Algorithm::SHA_384: CC_SHA384_Update(toSHA384Context(m_context.get()), input, length); return; case CryptoDigest::Algorithm::SHA_512: CC_SHA512_Update(toSHA512Context(m_context.get()), input, length); return; } }
CryptoDigest::~CryptoDigest() { switch (m_context->algorithm) { case CryptoAlgorithmIdentifier::SHA_1: delete toSHA1Context(m_context.get()); return; case CryptoAlgorithmIdentifier::SHA_224: delete toSHA224Context(m_context.get()); return; case CryptoAlgorithmIdentifier::SHA_256: delete toSHA256Context(m_context.get()); return; case CryptoAlgorithmIdentifier::SHA_384: delete toSHA384Context(m_context.get()); return; case CryptoAlgorithmIdentifier::SHA_512: delete toSHA512Context(m_context.get()); return; default: ASSERT_NOT_REACHED(); } }
void CryptoDigest::addBytes(const void* input, size_t length) { switch (m_context->algorithm) { case CryptoAlgorithmIdentifier::SHA_1: CC_SHA1_Update(toSHA1Context(m_context.get()), input, length); return; case CryptoAlgorithmIdentifier::SHA_224: CC_SHA224_Update(toSHA224Context(m_context.get()), input, length); return; case CryptoAlgorithmIdentifier::SHA_256: CC_SHA256_Update(toSHA256Context(m_context.get()), input, length); return; case CryptoAlgorithmIdentifier::SHA_384: CC_SHA384_Update(toSHA384Context(m_context.get()), input, length); return; case CryptoAlgorithmIdentifier::SHA_512: CC_SHA512_Update(toSHA512Context(m_context.get()), input, length); return; default: ASSERT_NOT_REACHED(); } }