{
struct yaca_ctx_s ctx;
- const EVP_MD *md;
EVP_MD_CTX *mdctx;
};
if (c == NULL)
return YACA_ERROR_INVALID_ARGUMENT;
- return EVP_MD_size(c->md);
+ return EVP_MD_CTX_size(c->mdctx);
}
static void destroy_digest_context(yaca_ctx_h ctx)
{
int ret;
struct yaca_digest_ctx_s *nc = NULL;
+ const EVP_MD *md;
if (ctx == NULL)
return YACA_ERROR_INVALID_ARGUMENT;
nc->ctx.ctx_destroy = destroy_digest_context;
nc->ctx.get_output_length = get_digest_output_length;
- ret = digest_get_algorithm(algo, &nc->md);
+ ret = digest_get_algorithm(algo, &md);
if (ret < 0)
goto free;
goto free;
}
- ret = EVP_DigestInit(nc->mdctx, nc->md);
+ ret = EVP_DigestInit(nc->mdctx, md);
if (ret != 1) {
ret = YACA_ERROR_OPENSSL_FAILURE;
goto ctx;