Lines Matching defs:out
517 int EVP_MD_CTX_copy(EVP_MD_CTX *out, const EVP_MD_CTX *in)
519 EVP_MD_CTX_reset(out);
520 return EVP_MD_CTX_copy_ex(out, in);
523 int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in)
535 EVP_MD_CTX_reset(out);
536 if (out->fetched_digest != NULL)
537 EVP_MD_free(out->fetched_digest);
538 *out = *in;
551 evp_md_ctx_reset_ex(out, 1);
552 digest_change = (out->fetched_digest != in->fetched_digest);
553 if (digest_change && out->fetched_digest != NULL)
554 EVP_MD_free(out->fetched_digest);
555 *out = *in;
556 /* NULL out pointers in case of error */
557 out->pctx = NULL;
558 out->algctx = NULL;
564 out->algctx = in->digest->dupctx(in->algctx);
565 if (out->algctx == NULL) {
573 EVP_MD_CTX_clear_flags(out, EVP_MD_CTX_FLAG_KEEP_PKEY_CTX);
576 out->pctx = EVP_PKEY_CTX_dup(in->pctx);
577 if (out->pctx == NULL) {
579 EVP_MD_CTX_reset(out);
597 if (out->digest == in->digest) {
598 tmp_buf = out->md_data;
599 EVP_MD_CTX_set_flags(out, EVP_MD_CTX_FLAG_REUSE);
602 EVP_MD_CTX_reset(out);
603 memcpy(out, in, sizeof(*out));
606 EVP_MD_CTX_clear_flags(out, EVP_MD_CTX_FLAG_KEEP_PKEY_CTX);
612 out->md_data = NULL;
613 out->pctx = NULL;
615 if (in->md_data && out->digest->ctx_size) {
617 out->md_data = tmp_buf;
619 out->md_data = OPENSSL_malloc(out->digest->ctx_size);
620 if (out->md_data == NULL) {
625 memcpy(out->md_data, in->md_data, out->digest->ctx_size);
628 out->update = in->update;
632 out->pctx = EVP_PKEY_CTX_dup(in->pctx);
633 if (!out->pctx) {
634 EVP_MD_CTX_reset(out);
640 if (out->digest->copy)
641 return out->digest->copy(out, in);