diff options
author | danibw <danibw@yandex-team.com> | 2023-11-29 18:32:06 +0300 |
---|---|---|
committer | danibw <danibw@yandex-team.com> | 2023-11-29 19:34:00 +0300 |
commit | 71a7f96673789844090ddb61182238c6ed4d8013 (patch) | |
tree | 16a954cef67f97167bc471903b1034be43f77337 /library/cpp/openssl/crypto/sha.cpp | |
parent | 2f8c2d284cb97bd7537b4c717f0d24cf289afe20 (diff) | |
download | ydb-71a7f96673789844090ddb61182238c6ed4d8013.tar.gz |
Add SHA224 to library/cpp/openssl/crypto
Add SHA224 to library/cpp/openssl/crypto
Diffstat (limited to 'library/cpp/openssl/crypto/sha.cpp')
-rw-r--r-- | library/cpp/openssl/crypto/sha.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/library/cpp/openssl/crypto/sha.cpp b/library/cpp/openssl/crypto/sha.cpp index c142b6635e..ffd999a238 100644 --- a/library/cpp/openssl/crypto/sha.cpp +++ b/library/cpp/openssl/crypto/sha.cpp @@ -59,4 +59,31 @@ namespace NOpenSsl { return digest; } } + namespace NSha224 { + static_assert(DIGEST_LENGTH == SHA224_DIGEST_LENGTH); + + TDigest Calc(const void* data, size_t dataSize) { + TDigest digest; + Y_ENSURE(SHA224(static_cast<const ui8*>(data), dataSize, digest.data()) != nullptr); + return digest; + } + + TCalcer::TCalcer() + : Context{new SHA256state_st} { + Y_ENSURE(SHA224_Init(Context.Get()) == 1); + } + + TCalcer::~TCalcer() { + } + + void TCalcer::Update(const void* data, size_t dataSize) { + Y_ENSURE(SHA224_Update(Context.Get(), data, dataSize) == 1); + } + + TDigest TCalcer::Final() { + TDigest digest; + Y_ENSURE(SHA224_Final(digest.data(), Context.Get()) == 1); + return digest; + } + } } |