Lines Matching refs:impl
210 static void impl_free(IMPLEMENTATION *impl)
212 if (impl != NULL) {
213 ossl_method_free(&impl->method);
214 OPENSSL_free(impl);
305 IMPLEMENTATION *impl;
318 impl = OPENSSL_malloc(sizeof(*impl));
319 if (impl == NULL)
321 impl->method.method = method;
322 impl->method.up_ref = method_up_ref;
323 impl->method.free = method_destruct;
324 if (!ossl_method_up_ref(&impl->method)) {
325 OPENSSL_free(impl);
328 impl->provider = prov;
332 OPENSSL_free(impl);
336 if ((impl->properties = ossl_prop_defn_get(store->ctx, properties)) == NULL) {
337 impl->properties = ossl_parse_property(store->ctx, properties);
338 if (impl->properties == NULL)
340 if (!ossl_prop_defn_set(store->ctx, properties, &impl->properties)) {
341 ossl_property_free(impl->properties);
342 impl->properties = NULL;
362 if (tmpimpl->provider == impl->provider
363 && tmpimpl->properties == impl->properties)
367 && sk_IMPLEMENTATION_push(alg->impls, impl))
371 impl_free(impl);
377 impl_free(impl);
405 IMPLEMENTATION *impl = sk_IMPLEMENTATION_value(alg->impls, i);
407 if (impl->method.method == method) {
408 impl_free(impl);
434 IMPLEMENTATION *impl = sk_IMPLEMENTATION_value(alg->impls, i);
436 if (impl->provider == data->prov) {
437 impl_free(impl);
467 static void alg_do_one(ALGORITHM *alg, IMPLEMENTATION *impl,
471 fn(alg->nid, impl->method.method, fnarg);
521 IMPLEMENTATION *impl, *best_impl = NULL;
562 if ((impl = sk_IMPLEMENTATION_value(alg->impls, j)) != NULL
563 && (prov == NULL || impl->provider == prov)) {
564 best_impl = impl;
573 if ((impl = sk_IMPLEMENTATION_value(alg->impls, j)) != NULL
574 && (prov == NULL || impl->provider == prov)) {
575 score = ossl_property_match_count(pq, impl->properties);
577 best_impl = impl;