Modify libssl to discover supported groups based on available providers
[oweals/openssl.git] / test / filterprov.c
index 9fe6690e50801a2b857c0dfff01cb762c8b41966..c2189e25a83cf3168678e1d37308fcad82321acb 100644 (file)
@@ -66,6 +66,14 @@ static int filter_get_params(void *provctx, OSSL_PARAM params[])
     return OSSL_PROVIDER_get_params(globs->deflt, params);
 }
 
+static int filter_get_capabilities(void *provctx, const char *capability,
+                                   OSSL_CALLBACK *cb, void *arg)
+{
+    struct filter_prov_globals_st *globs = get_globals();
+
+    return OSSL_PROVIDER_get_capabilities(globs->deflt, capability, cb, arg);
+}
+
 static const OSSL_ALGORITHM *filter_query(void *provctx,
                                           int operation_id,
                                           int *no_cache)
@@ -97,6 +105,7 @@ static const OSSL_DISPATCH filter_dispatch_table[] = {
     { OSSL_FUNC_PROVIDER_GETTABLE_PARAMS, (void (*)(void))filter_gettable_params },
     { OSSL_FUNC_PROVIDER_GET_PARAMS, (void (*)(void))filter_get_params },
     { OSSL_FUNC_PROVIDER_QUERY_OPERATION, (void (*)(void))filter_query },
+    { OSSL_FUNC_PROVIDER_GET_CAPABILITIES, (void (*)(void))filter_get_capabilities },
     { OSSL_FUNC_PROVIDER_TEARDOWN, (void (*)(void))filter_teardown },
     { 0, NULL }
 };