static int pkey_gost_mac_copy(EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src) { struct te_mac_pmeth_data *dst_data,*src_data; if (!pkey_gost_mac_init(dst)) return 0; src_data = EVP_PKEY_CTX_get_data(src); dst_data = EVP_PKEY_CTX_get_data(dst); *dst_data = *src_data; return 1; }
static int pkey_gost_mac_signctx_init(EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx) { struct gost_mac_pmeth_data *data = EVP_PKEY_CTX_get_data(ctx); if (data == NULL) { pkey_gost_mac_init(ctx); } data = EVP_PKEY_CTX_get_data(ctx); if (!data) { GOSTerr(GOST_F_PKEY_GOST_MAC_SIGNCTX_INIT, GOST_R_MAC_KEY_NOT_SET); return 0; } return 1; }