gost_dec(ctx, CryptoProKeyMeshingKey, newkey, 4);
/* set new key */
gost_key(ctx, newkey);
gost_dec(ctx, CryptoProKeyMeshingKey, newkey, 4);
/* set new key */
gost_key(ctx, newkey);
/* Encrypt iv with new key */
if (iv != NULL ) {
unsigned char newiv[8];
gostcrypt(ctx, iv, newiv);
memcpy(iv, newiv, 8);
/* Encrypt iv with new key */
if (iv != NULL ) {
unsigned char newiv[8];
gostcrypt(ctx, iv, newiv);
memcpy(iv, newiv, 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);
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);