sk_OSSL_PROVIDER_sort(providers);
for (i = 0; i < sk_OSSL_PROVIDER_num(providers); i++) {
const OSSL_PROVIDER *prov = sk_OSSL_PROVIDER_value(providers, i);
+ const char *provname = OSSL_PROVIDER_get0_name(prov);
+
+ BIO_printf(bio_out, " %s\n", provname);
/* Query the "known" information parameters, the order matches below */
params[0] = OSSL_PARAM_construct_utf8_ptr(OSSL_PROV_PARAM_NAME,
params[4] = OSSL_PARAM_construct_end();
OSSL_PARAM_set_all_unmodified(params);
if (!OSSL_PROVIDER_get_params(prov, params)) {
- BIO_printf(bio_err, "ERROR: Unable to query provider parameters\n");
- return;
- }
-
- /* Print out the provider information, the params order matches above */
- BIO_printf(bio_out, " %s\n", OSSL_PROVIDER_get0_name(prov));
- if (OSSL_PARAM_modified(params))
- BIO_printf(bio_out, " name: %s\n", name);
- if (OSSL_PARAM_modified(params + 1))
- BIO_printf(bio_out, " version: %s\n", version);
- if (OSSL_PARAM_modified(params + 2))
- BIO_printf(bio_out, " status: %sactive\n", status ? "" : "in");
- if (verbose) {
- if (OSSL_PARAM_modified(params + 3))
- BIO_printf(bio_out, " build info: %s\n", buildinfo);
- print_param_types("gettable provider parameters",
- OSSL_PROVIDER_gettable_params(prov), 4);
+ BIO_printf(bio_err,
+ "WARNING: Unable to query provider parameters for %s\n",
+ provname);
+ } else {
+ /* Print out the provider information, the params order matches above */
+ if (OSSL_PARAM_modified(params))
+ BIO_printf(bio_out, " name: %s\n", name);
+ if (OSSL_PARAM_modified(params + 1))
+ BIO_printf(bio_out, " version: %s\n", version);
+ if (OSSL_PARAM_modified(params + 2))
+ BIO_printf(bio_out, " status: %sactive\n", status ? "" : "in");
+ if (verbose) {
+ if (OSSL_PARAM_modified(params + 3))
+ BIO_printf(bio_out, " build info: %s\n", buildinfo);
+ print_param_types("gettable provider parameters",
+ OSSL_PROVIDER_gettable_params(prov), 4);
+ }
}
}
sk_OSSL_PROVIDER_free(providers);