mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-31 05:51:53 -06:00
crypto: cipher: add afalg-backend cipher support
Adds afalg-backend cipher support: introduces some private APIs firstly, and then intergrates them into qcrypto_cipher_afalg_driver. Signed-off-by: Longpeng(Mike) <longpeng2@huawei.com> Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
This commit is contained in:
parent
f0d92b56d8
commit
25c60df32b
5 changed files with 271 additions and 4 deletions
|
@ -163,18 +163,33 @@ QCryptoCipher *qcrypto_cipher_new(QCryptoCipherAlgorithm alg,
|
|||
Error **errp)
|
||||
{
|
||||
QCryptoCipher *cipher;
|
||||
void *ctx;
|
||||
void *ctx = NULL;
|
||||
Error *err2 = NULL;
|
||||
QCryptoCipherDriver *drv = NULL;
|
||||
|
||||
#ifdef CONFIG_AF_ALG
|
||||
ctx = qcrypto_afalg_cipher_ctx_new(alg, mode, key, nkey, &err2);
|
||||
if (ctx) {
|
||||
drv = &qcrypto_cipher_afalg_driver;
|
||||
}
|
||||
#endif
|
||||
|
||||
ctx = qcrypto_cipher_ctx_new(alg, mode, key, nkey, errp);
|
||||
if (!ctx) {
|
||||
return NULL;
|
||||
ctx = qcrypto_cipher_ctx_new(alg, mode, key, nkey, errp);
|
||||
if (!ctx) {
|
||||
error_free(err2);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
drv = &qcrypto_cipher_lib_driver;
|
||||
error_free(err2);
|
||||
}
|
||||
|
||||
cipher = g_new0(QCryptoCipher, 1);
|
||||
cipher->alg = alg;
|
||||
cipher->mode = mode;
|
||||
cipher->opaque = ctx;
|
||||
cipher->driver = (void *)&qcrypto_cipher_lib_driver;
|
||||
cipher->driver = (void *)drv;
|
||||
|
||||
return cipher;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue