49 lines
1.6 KiB
Diff
49 lines
1.6 KiB
Diff
|
|
From 17d589becc1a66934e55a4e2efffdd3876d56130 Mon Sep 17 00:00:00 2001
|
||
|
|
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
|
||
|
|
Date: Wed, 30 Oct 2024 10:09:30 +0000
|
||
|
|
Subject: [PATCH] crypto: perform runtime check for hash/hmac support in gcrypt
|
||
|
|
MIME-Version: 1.0
|
||
|
|
Content-Type: text/plain; charset=UTF-8
|
||
|
|
Content-Transfer-Encoding: 8bit
|
||
|
|
|
||
|
|
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>
|
||
|
|
Signed-off-by: cheliequan <cheliequan@inspur.com>
|
||
|
|
---
|
||
|
|
crypto/hash-gcrypt.c | 2 +-
|
||
|
|
crypto/hmac-gcrypt.c | 2 +-
|
||
|
|
2 files changed, 2 insertions(+), 2 deletions(-)
|
||
|
|
|
||
|
|
diff --git a/crypto/hash-gcrypt.c b/crypto/hash-gcrypt.c
|
||
|
|
index d3bdfe5633..2b6dbd97bb 100644
|
||
|
|
--- a/crypto/hash-gcrypt.c
|
||
|
|
+++ b/crypto/hash-gcrypt.c
|
||
|
|
@@ -42,7 +42,7 @@ gboolean qcrypto_hash_supports(QCryptoHashAlgorithm alg)
|
||
|
|
{
|
||
|
|
if (alg < G_N_ELEMENTS(qcrypto_hash_alg_map) &&
|
||
|
|
qcrypto_hash_alg_map[alg] != GCRY_MD_NONE) {
|
||
|
|
- return true;
|
||
|
|
+ return gcry_md_test_algo(qcrypto_hash_alg_map[alg]) == 0;
|
||
|
|
}
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
diff --git a/crypto/hmac-gcrypt.c b/crypto/hmac-gcrypt.c
|
||
|
|
index 888afb86ed..15926fccfa 100644
|
||
|
|
--- a/crypto/hmac-gcrypt.c
|
||
|
|
+++ b/crypto/hmac-gcrypt.c
|
||
|
|
@@ -40,7 +40,7 @@ bool qcrypto_hmac_supports(QCryptoHashAlgorithm alg)
|
||
|
|
{
|
||
|
|
if (alg < G_N_ELEMENTS(qcrypto_hmac_alg_map) &&
|
||
|
|
qcrypto_hmac_alg_map[alg] != GCRY_MAC_NONE) {
|
||
|
|
- return true;
|
||
|
|
+ return gcry_mac_test_algo(qcrypto_hmac_alg_map[alg]) == 0;
|
||
|
|
}
|
||
|
|
|
||
|
|
return false;
|
||
|
|
--
|
||
|
|
2.41.0.windows.1
|
||
|
|
|