Lines Matching refs:impl

202 static void impl_free(IMPLEMENTATION *impl)  in impl_free()  argument
204 if (impl != NULL) { in impl_free()
205 ossl_method_free(&impl->method); in impl_free()
206 OPENSSL_free(impl); in impl_free()
297 IMPLEMENTATION *impl; in ossl_method_store_add() local
310 impl = OPENSSL_malloc(sizeof(*impl)); in ossl_method_store_add()
311 if (impl == NULL) in ossl_method_store_add()
313 impl->method.method = method; in ossl_method_store_add()
314 impl->method.up_ref = method_up_ref; in ossl_method_store_add()
315 impl->method.free = method_destruct; in ossl_method_store_add()
316 if (!ossl_method_up_ref(&impl->method)) { in ossl_method_store_add()
317 OPENSSL_free(impl); in ossl_method_store_add()
320 impl->provider = prov; in ossl_method_store_add()
324 OPENSSL_free(impl); in ossl_method_store_add()
328 if ((impl->properties = ossl_prop_defn_get(store->ctx, properties)) == NULL) { in ossl_method_store_add()
329 impl->properties = ossl_parse_property(store->ctx, properties); in ossl_method_store_add()
330 if (impl->properties == NULL) in ossl_method_store_add()
332 if (!ossl_prop_defn_set(store->ctx, properties, &impl->properties)) { in ossl_method_store_add()
333 ossl_property_free(impl->properties); in ossl_method_store_add()
334 impl->properties = NULL; in ossl_method_store_add()
354 if (tmpimpl->provider == impl->provider in ossl_method_store_add()
355 && tmpimpl->properties == impl->properties) in ossl_method_store_add()
359 && sk_IMPLEMENTATION_push(alg->impls, impl)) in ossl_method_store_add()
363 impl_free(impl); in ossl_method_store_add()
369 impl_free(impl); in ossl_method_store_add()
397 IMPLEMENTATION *impl = sk_IMPLEMENTATION_value(alg->impls, i); in ossl_method_store_remove() local
399 if (impl->method.method == method) { in ossl_method_store_remove()
400 impl_free(impl); in ossl_method_store_remove()
426 IMPLEMENTATION *impl = sk_IMPLEMENTATION_value(alg->impls, i); in alg_cleanup_by_provider() local
428 if (impl->provider == data->prov) { in alg_cleanup_by_provider()
429 impl_free(impl); in alg_cleanup_by_provider()
459 static void alg_do_one(ALGORITHM *alg, IMPLEMENTATION *impl, in alg_do_one() argument
463 fn(alg->nid, impl->method.method, fnarg); in alg_do_one()
513 IMPLEMENTATION *impl, *best_impl = NULL; in ossl_method_store_fetch() local
554 if ((impl = sk_IMPLEMENTATION_value(alg->impls, j)) != NULL in ossl_method_store_fetch()
555 && (prov == NULL || impl->provider == prov)) { in ossl_method_store_fetch()
556 best_impl = impl; in ossl_method_store_fetch()
565 if ((impl = sk_IMPLEMENTATION_value(alg->impls, j)) != NULL in ossl_method_store_fetch()
566 && (prov == NULL || impl->provider == prov)) { in ossl_method_store_fetch()
567 score = ossl_property_match_count(pq, impl->properties); in ossl_method_store_fetch()
569 best_impl = impl; in ossl_method_store_fetch()