Lines Matching refs:impl
203 static void impl_free(IMPLEMENTATION *impl) in impl_free() argument
205 if (impl != NULL) { in impl_free()
206 ossl_method_free(&impl->method); in impl_free()
207 OPENSSL_free(impl); in impl_free()
323 IMPLEMENTATION *impl; in ossl_method_store_add() local
337 impl = OPENSSL_malloc(sizeof(*impl)); in ossl_method_store_add()
338 if (impl == NULL) in ossl_method_store_add()
340 impl->method.method = method; in ossl_method_store_add()
341 impl->method.up_ref = method_up_ref; in ossl_method_store_add()
342 impl->method.free = method_destruct; in ossl_method_store_add()
343 if (!ossl_method_up_ref(&impl->method)) { in ossl_method_store_add()
344 OPENSSL_free(impl); in ossl_method_store_add()
347 impl->provider = prov; in ossl_method_store_add()
351 OPENSSL_free(impl); in ossl_method_store_add()
373 if ((impl->properties = ossl_prop_defn_get(store->ctx, properties)) == NULL) { in ossl_method_store_add()
374 impl->properties = ossl_parse_property(store->ctx, properties); in ossl_method_store_add()
375 if (impl->properties == NULL) in ossl_method_store_add()
377 if (!ossl_prop_defn_set(store->ctx, properties, &impl->properties)) { in ossl_method_store_add()
378 ossl_property_free(impl->properties); in ossl_method_store_add()
379 impl->properties = NULL; in ossl_method_store_add()
403 if (tmpimpl->provider == impl->provider in ossl_method_store_add()
404 && tmpimpl->properties == impl->properties) in ossl_method_store_add()
409 && sk_IMPLEMENTATION_push(alg->impls, impl)) { in ossl_method_store_add()
421 impl_free(impl); in ossl_method_store_add()
427 impl_free(impl); in ossl_method_store_add()
455 IMPLEMENTATION *impl = sk_IMPLEMENTATION_value(alg->impls, i); in ossl_method_store_remove() local
457 if (impl->method.method == method) { in ossl_method_store_remove()
458 impl_free(impl); in ossl_method_store_remove()
499 IMPLEMENTATION *impl = sk_IMPLEMENTATION_value(alg->impls, i); in alg_cleanup_by_provider() local
501 if (impl->provider == data->prov) { in alg_cleanup_by_provider()
507 size = ossl_property_list_to_string(NULL, impl->properties, buf, in alg_cleanup_by_provider()
512 ossl_provider_name(impl->provider) == NULL ? "none" : in alg_cleanup_by_provider()
513 ossl_provider_name(impl->provider)); in alg_cleanup_by_provider()
518 impl_free(impl); in alg_cleanup_by_provider()
546 static void alg_do_one(ALGORITHM *alg, IMPLEMENTATION *impl, in alg_do_one() argument
550 fn(alg->nid, impl->method.method, fnarg); in alg_do_one()
623 IMPLEMENTATION *impl, *best_impl = NULL; in ossl_method_store_fetch() local
681 if ((impl = sk_IMPLEMENTATION_value(alg->impls, j)) != NULL in ossl_method_store_fetch()
682 && (prov == NULL || impl->provider == prov)) { in ossl_method_store_fetch()
683 best_impl = impl; in ossl_method_store_fetch()
698 if ((impl = sk_IMPLEMENTATION_value(alg->impls, j)) != NULL in ossl_method_store_fetch()
699 && (prov == NULL || impl->provider == prov)) { in ossl_method_store_fetch()
700 score = ossl_property_match_count(pq, impl->properties); in ossl_method_store_fetch()
702 best_impl = impl; in ossl_method_store_fetch()