crypto: perform runtime check for hash/hmac support in gcrypt

gcrypto has the ability to dynamically disable hash/hmac algorithms
at runtime, so QEMU must perform a runtime check.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
Daniel P. Berrangé 2024-10-30 10:09:30 +00:00
parent bbd40a0e31
commit a7e4275232
2 changed files with 2 additions and 2 deletions

View File

@ -43,7 +43,7 @@ gboolean qcrypto_hash_supports(QCryptoHashAlgo alg)
{ {
if (alg < G_N_ELEMENTS(qcrypto_hash_alg_map) && if (alg < G_N_ELEMENTS(qcrypto_hash_alg_map) &&
qcrypto_hash_alg_map[alg] != GCRY_MD_NONE) { qcrypto_hash_alg_map[alg] != GCRY_MD_NONE) {
return true; return gcry_md_test_algo(qcrypto_hash_alg_map[alg]) == 0;
} }
return false; return false;
} }

View File

@ -40,7 +40,7 @@ bool qcrypto_hmac_supports(QCryptoHashAlgo alg)
{ {
if (alg < G_N_ELEMENTS(qcrypto_hmac_alg_map) && if (alg < G_N_ELEMENTS(qcrypto_hmac_alg_map) &&
qcrypto_hmac_alg_map[alg] != GCRY_MAC_NONE) { qcrypto_hmac_alg_map[alg] != GCRY_MAC_NONE) {
return true; return gcry_mac_test_algo(qcrypto_hmac_alg_map[alg]) == 0;
} }
return false; return false;