Lines Matching refs:md
416 int EVP_DigestFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *size)
419 ret = EVP_DigestFinal_ex(ctx, md, size);
425 int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *isize)
446 ret = ctx->digest->dfinal(ctx->algctx, md, &size, mdsize);
462 ret = ctx->digest->final(ctx, md);
473 int EVP_DigestFinalXOF(EVP_MD_CTX *ctx, unsigned char *md, size_t size)
496 ret = ctx->digest->dfinal(ctx->algctx, md, &size, size);
504 ret = ctx->digest->final(ctx, md);
647 unsigned char *md, unsigned int *size, const EVP_MD *type,
658 && EVP_DigestFinal_ex(ctx, md, size);
666 unsigned char *md, size_t *mdlen)
673 ret = EVP_Digest(data, datalen, md, &temp, digest, NULL);
715 const OSSL_PARAM *EVP_MD_settable_ctx_params(const EVP_MD *md)
719 if (md != NULL && md->settable_ctx_params != NULL) {
720 provctx = ossl_provider_ctx(EVP_MD_get0_provider(md));
721 return md->settable_ctx_params(NULL, provctx);
771 const OSSL_PARAM *EVP_MD_gettable_ctx_params(const EVP_MD *md)
775 if (md != NULL && md->gettable_ctx_params != NULL) {
776 provctx = ossl_provider_ctx(EVP_MD_get0_provider(md));
777 return md->gettable_ctx_params(NULL, provctx);
863 EVP_MD *md = OPENSSL_zalloc(sizeof(*md));
865 if (md != NULL) {
866 md->lock = CRYPTO_THREAD_lock_new();
867 if (md->lock == NULL) {
868 OPENSSL_free(md);
871 md->refcnt = 1;
873 return md;
907 static int evp_md_cache_constants(EVP_MD *md)
920 ok = evp_do_md_getparams(md, params) > 0;
924 md->block_size = (int)blksz;
925 md->md_size = (int)mdsize;
927 md->flags |= EVP_MD_FLAG_XOF;
929 md->flags |= EVP_MD_FLAG_DIGALGID_ABSENT;
939 EVP_MD *md = NULL;
943 if ((md = evp_md_new()) == NULL) {
949 md->type = NID_undef;
950 if (!evp_names_do_all(prov, name_id, set_legacy_nid, &md->type)
951 || md->type == -1) {
953 EVP_MD_free(md);
958 md->name_id = name_id;
959 if ((md->type_name = ossl_algorithm_get1_first_name(algodef)) == NULL) {
960 EVP_MD_free(md);
963 md->description = algodef->algorithm_description;
968 if (md->newctx == NULL) {
969 md->newctx = OSSL_FUNC_digest_newctx(fns);
974 if (md->dinit == NULL) {
975 md->dinit = OSSL_FUNC_digest_init(fns);
980 if (md->dupdate == NULL) {
981 md->dupdate = OSSL_FUNC_digest_update(fns);
986 if (md->dfinal == NULL) {
987 md->dfinal = OSSL_FUNC_digest_final(fns);
992 if (md->digest == NULL)
993 md->digest = OSSL_FUNC_digest_digest(fns);
997 if (md->freectx == NULL) {
998 md->freectx = OSSL_FUNC_digest_freectx(fns);
1003 if (md->dupctx == NULL)
1004 md->dupctx = OSSL_FUNC_digest_dupctx(fns);
1007 if (md->get_params == NULL)
1008 md->get_params = OSSL_FUNC_digest_get_params(fns);
1011 if (md->set_ctx_params == NULL)
1012 md->set_ctx_params = OSSL_FUNC_digest_set_ctx_params(fns);
1015 if (md->get_ctx_params == NULL)
1016 md->get_ctx_params = OSSL_FUNC_digest_get_ctx_params(fns);
1019 if (md->gettable_params == NULL)
1020 md->gettable_params = OSSL_FUNC_digest_gettable_params(fns);
1023 if (md->settable_ctx_params == NULL)
1024 md->settable_ctx_params =
1028 if (md->gettable_ctx_params == NULL)
1029 md->gettable_ctx_params =
1035 || (fncnt == 0 && md->digest == NULL)) {
1042 EVP_MD_free(md);
1046 md->prov = prov;
1050 if (!evp_md_cache_constants(md)) {
1051 EVP_MD_free(md);
1053 md = NULL;
1056 return md;
1059 static int evp_md_up_ref(void *md)
1061 return EVP_MD_up_ref(md);
1064 static void evp_md_free(void *md)
1066 EVP_MD_free(md);
1072 EVP_MD *md =
1076 return md;
1079 int EVP_MD_up_ref(EVP_MD *md)
1083 if (md->origin == EVP_ORIG_DYNAMIC)
1084 CRYPTO_UP_REF(&md->refcnt, &ref, md->lock);
1088 void EVP_MD_free(EVP_MD *md)
1092 if (md == NULL || md->origin != EVP_ORIG_DYNAMIC)
1095 CRYPTO_DOWN_REF(&md->refcnt, &i, md->lock);
1098 evp_md_free_int(md);