aboutsummaryrefslogtreecommitdiff
path: root/crypto/hash.c
diff options
context:
space:
mode:
authorLongpeng(Mike) <longpeng2@huawei.com>2017-07-14 14:04:07 -0400
committerDaniel P. Berrange <berrange@redhat.com>2017-07-19 10:11:05 +0100
commit9a0597734876682480851376a98202a84073b715 (patch)
treec79b9ef8d383d905f1f298ec9cc72c567e7a5d16 /crypto/hash.c
parent25c60df32b9aad71a86cbb3aeaed60bf7567918a (diff)
crypto: hash: add afalg-backend hash support
Adds afalg-backend hash support: introduces some private APIs firstly, and then intergrates them into qcrypto_hash_afalg_driver. Signed-off-by: Longpeng(Mike) <longpeng2@huawei.com> Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Diffstat (limited to 'crypto/hash.c')
-rw-r--r--crypto/hash.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/crypto/hash.c b/crypto/hash.c
index c43fd874fa..ac59c63d5f 100644
--- a/crypto/hash.c
+++ b/crypto/hash.c
@@ -46,6 +46,23 @@ int qcrypto_hash_bytesv(QCryptoHashAlgorithm alg,
size_t *resultlen,
Error **errp)
{
+#ifdef CONFIG_AF_ALG
+ int ret;
+
+ ret = qcrypto_hash_afalg_driver.hash_bytesv(alg, iov, niov,
+ result, resultlen,
+ errp);
+ if (ret == 0) {
+ return ret;
+ }
+
+ /*
+ * TODO:
+ * Maybe we should treat some afalg errors as fatal
+ */
+ error_free(*errp);
+#endif
+
return qcrypto_hash_lib_driver.hash_bytesv(alg, iov, niov,
result, resultlen,
errp);