Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 13 additions & 5 deletions src/crypto/Digest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -122,10 +122,10 @@ int Digest::toMethod(string_view uri)
if(uri == URI_SHA384 || uri == URI_RSA_SHA384 || uri == URI_RSA_PSS_SHA384 || uri == URI_ECDSA_SHA384) return NID_sha384;
if(uri == URI_SHA512 || uri == URI_RSA_SHA512 || uri == URI_RSA_PSS_SHA512 || uri == URI_ECDSA_SHA512) return NID_sha512;
#ifndef LIBRESSL_VERSION_NUMBER
if(uri == URI_SHA3_224 || uri == URI_RSA_PSS_SHA3_224) return NID_sha3_224;
if(uri == URI_SHA3_256 || uri == URI_RSA_PSS_SHA3_256) return NID_sha3_256;
if(uri == URI_SHA3_384 || uri == URI_RSA_PSS_SHA3_384) return NID_sha3_384;
if(uri == URI_SHA3_512 || uri == URI_RSA_PSS_SHA3_512) return NID_sha3_512;
if(uri == URI_SHA3_224 || uri == URI_RSA_PSS_SHA3_224 || uri == URI_ECDSA_SHA3_224) return NID_sha3_224;
if(uri == URI_SHA3_256 || uri == URI_RSA_PSS_SHA3_256 || uri == URI_ECDSA_SHA3_256) return NID_sha3_256;
if(uri == URI_SHA3_384 || uri == URI_RSA_PSS_SHA3_384 || uri == URI_ECDSA_SHA3_384) return NID_sha3_384;
if(uri == URI_SHA3_512 || uri == URI_RSA_PSS_SHA3_512 || uri == URI_ECDSA_SHA3_512) return NID_sha3_512;
#endif
THROW("Digest method URI '%.*s' is not supported.", int(uri.size()), uri.data());
}
Expand Down Expand Up @@ -171,11 +171,19 @@ string Digest::toEcUri(const string &uri)
if(uri == URI_SHA256) return URI_ECDSA_SHA256;
if(uri == URI_SHA384) return URI_ECDSA_SHA384;
if(uri == URI_SHA512) return URI_ECDSA_SHA512;
if(uri == URI_SHA3_224) return URI_ECDSA_SHA3_224;
if(uri == URI_SHA3_256) return URI_ECDSA_SHA3_256;
if(uri == URI_SHA3_384) return URI_ECDSA_SHA3_384;
if(uri == URI_SHA3_512) return URI_ECDSA_SHA3_512;
if(uri == URI_ECDSA_SHA1 ||
uri == URI_ECDSA_SHA224 ||
uri == URI_ECDSA_SHA256 ||
uri == URI_ECDSA_SHA384 ||
uri == URI_ECDSA_SHA512)
uri == URI_ECDSA_SHA512 ||
uri == URI_ECDSA_SHA3_224 ||
uri == URI_ECDSA_SHA3_256 ||
uri == URI_ECDSA_SHA3_384 ||
uri == URI_ECDSA_SHA3_512)
return uri;
return {};
}
Expand Down
5 changes: 5 additions & 0 deletions src/crypto/Digest.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,11 @@
#define URI_ECDSA_SHA256 "http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha256"
#define URI_ECDSA_SHA384 "http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha384"
#define URI_ECDSA_SHA512 "http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha512"
// https://www.rfc-editor.org/rfc/rfc9231.html#name-ecdsa-sha-ecdsa-ripemd160-e
#define URI_ECDSA_SHA3_224 "http://www.w3.org/2021/04/xmldsig-more#ecdsa-sha3-224"
#define URI_ECDSA_SHA3_256 "http://www.w3.org/2021/04/xmldsig-more#ecdsa-sha3-256"
#define URI_ECDSA_SHA3_384 "http://www.w3.org/2021/04/xmldsig-more#ecdsa-sha3-384"
#define URI_ECDSA_SHA3_512 "http://www.w3.org/2021/04/xmldsig-more#ecdsa-sha3-512"

#if defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x3080200fL
using EVP_MD_CTX = struct env_md_ctx_st;
Expand Down