Lines Matching refs:impl

186 static void impl_free(IMPLEMENTATION *impl)  in impl_free()  argument
188 if (impl != NULL) { in impl_free()
189 ossl_method_free(&impl->method); in impl_free()
190 OPENSSL_free(impl); in impl_free()
262 IMPLEMENTATION *impl; in ossl_method_store_add() local
275 impl = OPENSSL_malloc(sizeof(*impl)); in ossl_method_store_add()
276 if (impl == NULL) in ossl_method_store_add()
278 impl->method.method = method; in ossl_method_store_add()
279 impl->method.up_ref = method_up_ref; in ossl_method_store_add()
280 impl->method.free = method_destruct; in ossl_method_store_add()
281 if (!ossl_method_up_ref(&impl->method)) { in ossl_method_store_add()
282 OPENSSL_free(impl); in ossl_method_store_add()
285 impl->provider = prov; in ossl_method_store_add()
289 OPENSSL_free(impl); in ossl_method_store_add()
293 if ((impl->properties = ossl_prop_defn_get(store->ctx, properties)) == NULL) { in ossl_method_store_add()
294 impl->properties = ossl_parse_property(store->ctx, properties); in ossl_method_store_add()
295 if (impl->properties == NULL) in ossl_method_store_add()
297 ossl_prop_defn_set(store->ctx, properties, impl->properties); in ossl_method_store_add()
315 if (tmpimpl->provider == impl->provider in ossl_method_store_add()
316 && tmpimpl->properties == impl->properties) in ossl_method_store_add()
320 && sk_IMPLEMENTATION_push(alg->impls, impl)) in ossl_method_store_add()
324 impl_free(impl); in ossl_method_store_add()
330 impl_free(impl); in ossl_method_store_add()
358 IMPLEMENTATION *impl = sk_IMPLEMENTATION_value(alg->impls, i); in ossl_method_store_remove() local
360 if (impl->method.method == method) { in ossl_method_store_remove()
361 impl_free(impl); in ossl_method_store_remove()
371 static void alg_do_one(ALGORITHM *alg, IMPLEMENTATION *impl, in alg_do_one() argument
375 fn(alg->nid, impl->method.method, fnarg); in alg_do_one()
389 IMPLEMENTATION *impl = sk_IMPLEMENTATION_value(alg->impls, i); in alg_do_each() local
391 alg_do_one(alg, impl, data->fn, data->fnarg); in alg_do_each()
413 IMPLEMENTATION *impl, *best_impl = NULL; in ossl_method_store_fetch() local
453 if ((impl = sk_IMPLEMENTATION_value(alg->impls, j)) != NULL in ossl_method_store_fetch()
454 && (prov == NULL || impl->provider == prov)) { in ossl_method_store_fetch()
455 best_impl = impl; in ossl_method_store_fetch()
464 if ((impl = sk_IMPLEMENTATION_value(alg->impls, j)) != NULL in ossl_method_store_fetch()
465 && (prov == NULL || impl->provider == prov)) { in ossl_method_store_fetch()
466 score = ossl_property_match_count(pq, impl->properties); in ossl_method_store_fetch()
468 best_impl = impl; in ossl_method_store_fetch()