]> wagner.pp.ru Git - openssl-gost/engine.git/commitdiff
Refactored acpkm_magma_key_meshing
authorMark Fedorov <marcfedorow@gmail.com>
Sat, 9 Jul 2022 16:00:26 +0000 (16:00 +0000)
committerDmitry Belyavskiy <beldmit@users.noreply.github.com>
Mon, 11 Jul 2022 11:48:35 +0000 (13:48 +0200)
gost89.c

index 240bc7ace23418bf6a31229b6455549d870eb62c..c103e72844cda6ccb4e74b8c892069543e1a0fd5 100644 (file)
--- a/gost89.c
+++ b/gost89.c
@@ -768,20 +768,11 @@ void cryptopro_key_meshing(gost_ctx * ctx, unsigned char *iv)
 void acpkm_magma_key_meshing(gost_ctx * ctx)
 {
     unsigned char newkey[32];
-    int i, j;
-
+    int i;
     for (i = 0; i < 4; i++) {
-        unsigned char buf[8], keybuf[8];
-        for (j = 0; j < 8; j++) {
-            buf[j] = ACPKM_D_const[8 * i + 7 - j];
-        }
-        gostcrypt(ctx, buf, keybuf);
-        memcpy(newkey + 8 * i, keybuf + 4, 4);
-        memcpy(newkey + 8 * i + 4, keybuf, 4);
-        OPENSSL_cleanse(keybuf, sizeof(keybuf));
-        OPENSSL_cleanse(buf, sizeof(buf));
+        magmacrypt(ctx, ACPKM_D_const + 8 * i, newkey + 8 * i);
     }
     /* set new key */
-    gost_key(ctx, newkey);
+    magma_key(ctx, newkey);
     OPENSSL_cleanse(newkey, sizeof(newkey));
 }