Commit 8c2776d8 authored by Longpeng(Mike)'s avatar Longpeng(Mike) Committed by Daniel P. Berrangé
Browse files

crypto: hmac: introduce qcrypto_hmac_ctx_new for nettle-backend



Extracts qcrypto_hmac_ctx_new() from qcrypto_hmac_new() for
nettle-backend impls.

Reviewed-by: default avatarGonglei <arei.gonglei@huawei.com>
Signed-off-by: default avatarLongpeng(Mike) <longpeng2@huawei.com>
Signed-off-by: default avatarDaniel P. Berrange <berrange@redhat.com>
parent 822d15de
Loading
Loading
Loading
Loading
+24 −10
Original line number Diff line number Diff line
@@ -97,11 +97,11 @@ bool qcrypto_hmac_supports(QCryptoHashAlgorithm alg)
    return false;
}

QCryptoHmac *qcrypto_hmac_new(QCryptoHashAlgorithm alg,
static QCryptoHmacNettle *
qcrypto_hmac_ctx_new(QCryptoHashAlgorithm alg,
                     const uint8_t *key, size_t nkey,
                     Error **errp)
{
    QCryptoHmac *hmac;
    QCryptoHmacNettle *ctx;

    if (!qcrypto_hmac_supports(alg)) {
@@ -110,16 +110,11 @@ QCryptoHmac *qcrypto_hmac_new(QCryptoHashAlgorithm alg,
        return NULL;
    }

    hmac = g_new0(QCryptoHmac, 1);
    hmac->alg = alg;

    ctx = g_new0(QCryptoHmacNettle, 1);

    qcrypto_hmac_alg_map[alg].setkey(&ctx->u, nkey, key);

    hmac->opaque = ctx;

    return hmac;
    return ctx;
}

void qcrypto_hmac_free(QCryptoHmac *hmac)
@@ -173,3 +168,22 @@ int qcrypto_hmac_bytesv(QCryptoHmac *hmac,

    return 0;
}

QCryptoHmac *qcrypto_hmac_new(QCryptoHashAlgorithm alg,
                              const uint8_t *key, size_t nkey,
                              Error **errp)
{
    QCryptoHmac *hmac;
    QCryptoHmacNettle *ctx;

    ctx = qcrypto_hmac_ctx_new(alg, key, nkey, errp);
    if (!ctx) {
        return NULL;
    }

    hmac = g_new0(QCryptoHmac, 1);
    hmac->alg = alg;
    hmac->opaque = ctx;

    return hmac;
}