From 920ae61478fa9fc91068910254ca130637ce045a Mon Sep 17 00:00:00 2001 From: Dmitry Belyavskiy Date: Fri, 15 Jun 2018 13:30:47 +0300 Subject: [PATCH] Missing initialization --- gost_omac.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/gost_omac.c b/gost_omac.c index ad96662..23872bc 100644 --- a/gost_omac.c +++ b/gost_omac.c @@ -133,7 +133,23 @@ int omac_imit_ctrl(EVP_MD_CTX *ctx, int type, int arg, void *ptr) case EVP_MD_CTRL_SET_KEY: { OMAC_CTX *c = EVP_MD_CTX_md_data(ctx); - const EVP_CIPHER *cipher = EVP_get_cipherbynid(c->cipher_nid); + const EVP_MD *md = EVP_MD_CTX_md(ctx); + const EVP_CIPHER *cipher = NULL; + + if (c->cipher_nid == NID_undef) + { + switch (EVP_MD_nid(md)) + { + case NID_magma_mac: + c->cipher_nid = NID_magma_cbc; + break; + + case NID_grasshopper_mac: + c->cipher_nid = NID_grasshopper_cbc; + break; + } + } + cipher = EVP_get_cipherbynid(c->cipher_nid); if (cipher == NULL) { -- 2.39.2