From: Dmitry Belyavskiy Date: Fri, 15 Jun 2018 10:30:47 +0000 (+0300) Subject: Missing initialization X-Git-Tag: v3.0.0~412^2~8 X-Git-Url: http://wagner.pp.ru/gitweb/?a=commitdiff_plain;h=920ae61478fa9fc91068910254ca130637ce045a;p=openssl-gost%2Fengine.git Missing initialization --- 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) {