Commit 7ed66e26 authored by Kurt Roeckx's avatar Kurt Roeckx
Browse files

Change EVP_MAC method from copy to dup



Reviewed-by: default avatarTomas Mraz <tmraz@fedoraproject.org>
GH: #7651
parent be5fc053
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -39,10 +39,16 @@ static void blake2b_mac_free(EVP_MAC_IMPL *macctx)
    }
}

static int blake2b_mac_copy(EVP_MAC_IMPL *dst, EVP_MAC_IMPL *src)
static EVP_MAC_IMPL *blake2b_mac_dup(const EVP_MAC_IMPL *src)
{
    EVP_MAC_IMPL *dst;

    dst = OPENSSL_zalloc(sizeof(*dst));
    if (dst == NULL)
        return NULL;

    *dst = *src;
    return 1;
    return dst;
}

static int blake2b_mac_init(EVP_MAC_IMPL *macctx)
@@ -177,7 +183,7 @@ static size_t blake2b_mac_size(EVP_MAC_IMPL *macctx)
const EVP_MAC blake2b_mac_meth = {
    EVP_MAC_BLAKE2B,
    blake2b_mac_new,
    blake2b_mac_copy,
    blake2b_mac_dup,
    blake2b_mac_free,
    blake2b_mac_size,
    blake2b_mac_init,
+9 −3
Original line number Diff line number Diff line
@@ -39,10 +39,16 @@ static void blake2s_mac_free(EVP_MAC_IMPL *macctx)
    }
}

static int blake2s_mac_copy(EVP_MAC_IMPL *dst, EVP_MAC_IMPL *src)
static EVP_MAC_IMPL *blake2s_mac_dup(const EVP_MAC_IMPL *src)
{
    EVP_MAC_IMPL *dst;

    dst = OPENSSL_malloc(sizeof(*dst));
    if (dst == NULL)
        return NULL;

    *dst = *src;
    return 1;
    return dst;
}

static int blake2s_mac_init(EVP_MAC_IMPL *macctx)
@@ -177,7 +183,7 @@ static size_t blake2s_mac_size(EVP_MAC_IMPL *macctx)
const EVP_MAC blake2s_mac_meth = {
    EVP_MAC_BLAKE2S,
    blake2s_mac_new,
    blake2s_mac_copy,
    blake2s_mac_dup,
    blake2s_mac_free,
    blake2s_mac_size,
    blake2s_mac_init,
+13 −5
Original line number Diff line number Diff line
@@ -46,14 +46,22 @@ static void cmac_free(EVP_MAC_IMPL *cctx)
    }
}

static int cmac_copy(EVP_MAC_IMPL *cdst, EVP_MAC_IMPL *csrc)
static EVP_MAC_IMPL *cmac_dup(const EVP_MAC_IMPL *csrc)
{
    if (!CMAC_CTX_copy(cdst->ctx, csrc->ctx))
        return 0;
    EVP_MAC_IMPL *cdst = cmac_new();

    if (cdst == NULL)
        return NULL;

    if (!CMAC_CTX_copy(cdst->ctx, csrc->ctx)) {
        cmac_free(cdst);
        return NULL;
    }

    cdst->tmpengine = csrc->tmpengine;
    cdst->tmpcipher = csrc->tmpcipher;
    return 1;

    return cdst;
}

static size_t cmac_size(EVP_MAC_IMPL *cctx)
@@ -153,7 +161,7 @@ static int cmac_ctrl_str(EVP_MAC_IMPL *cctx, const char *type,
const EVP_MAC cmac_meth = {
    EVP_MAC_CMAC,
    cmac_new,
    cmac_copy,
    cmac_dup,
    cmac_free,
    cmac_size,
    cmac_init,
+2 −2
Original line number Diff line number Diff line
@@ -50,9 +50,9 @@ void EVP_MAC_CTX_free(EVP_MAC_CTX *ctx)

EVP_MAC_CTX *EVP_MAC_CTX_dup(const EVP_MAC_CTX *src)
{
    EVP_MAC_CTX *dst = EVP_MAC_CTX_new(src->meth);
    EVP_MAC_CTX *dst;

    if (dst == NULL)
    if (src->data == NULL)
        return NULL;

    dst = OPENSSL_malloc(sizeof(*dst));
+15 −3
Original line number Diff line number Diff line
@@ -39,11 +39,23 @@ static EVP_MAC_IMPL *gmac_new(void)
    return gctx;
}

static int gmac_copy(EVP_MAC_IMPL *gdst, EVP_MAC_IMPL *gsrc)
static EVP_MAC_IMPL *gmac_dup(const EVP_MAC_IMPL *gsrc)
{
    EVP_MAC_IMPL *gdst;

    gdst = gmac_new();
    if (gdst == NULL)
        return NULL;

    if (!EVP_CIPHER_CTX_copy(gdst->ctx, gsrc->ctx)) {
        gmac_free(gdst);
        return NULL;
    }

    gdst->cipher = gsrc->cipher;
    gdst->engine = gsrc->engine;
    return EVP_CIPHER_CTX_copy(gdst->ctx, gsrc->ctx);

    return gdst;
}

static size_t gmac_size(EVP_MAC_IMPL *gctx)
@@ -172,7 +184,7 @@ static int gmac_ctrl_str(EVP_MAC_IMPL *gctx, const char *type,
const EVP_MAC gmac_meth = {
    EVP_MAC_GMAC,
    gmac_new,
    gmac_copy,
    gmac_dup,
    gmac_free,
    gmac_size,
    gmac_init,
Loading