@@ -326,7 +326,7 @@ local function list_legacy(typ, get_nid_cf)
326
326
return ret
327
327
end
328
328
329
- local function list_provided (typ )
329
+ local function list_provided (typ , hide_provider )
330
330
local typ_lower = string.lower (typ :sub (5 )) -- cut off EVP_
331
331
local typ_ptr = typ .. " *"
332
332
require (" resty.openssl.include.evp." .. typ_lower )
@@ -338,9 +338,13 @@ local function list_provided(typ)
338
338
function (elem , _ )
339
339
elem = ffi_cast (typ_ptr , elem )
340
340
local name = ffi_str (C [typ .. " _get0_name" ](elem ))
341
- -- alternate names are ignored, retrieve use TYPE_names_do_all
342
- local prov = ffi_str (C .OSSL_PROVIDER_get0_name (C [typ .. " _get0_provider" ](elem )))
343
- table.insert (ret , name .. " @ " .. prov )
341
+ if hide_provider then
342
+ table.insert (ret , name )
343
+ else
344
+ -- alternate names are ignored, retrieve use TYPE_names_do_all
345
+ local prov = ffi_str (C .OSSL_PROVIDER_get0_name (C [typ .. " _get0_provider" ](elem )))
346
+ table.insert (ret , name .. " @ " .. prov )
347
+ end
344
348
end )
345
349
346
350
C [typ .. " _do_all_provided" ](ctx_lib .get_libctx (), fn , nil )
@@ -350,50 +354,40 @@ local function list_provided(typ)
350
354
return ret
351
355
end
352
356
353
- function _M .list_cipher_algorithms ()
357
+ function _M .list_cipher_algorithms (hide_provider )
354
358
require " resty.openssl.include.evp.cipher"
355
- local ret = list_legacy (" EVP_CIPHER" ,
356
- OPENSSL_3X and C .EVP_CIPHER_get_nid or C .EVP_CIPHER_nid )
357
359
358
360
if OPENSSL_3X then
359
- local ret_provided = list_provided (" EVP_CIPHER" )
360
- for _ , r in ipairs (ret_provided ) do
361
- table.insert (ret , r )
362
- end
361
+ return list_provided (" EVP_CIPHER" , hide_provider )
362
+ else
363
+ return list_legacy (" EVP_CIPHER" , C .EVP_CIPHER_nid )
363
364
end
364
-
365
- return ret
366
365
end
367
366
368
- function _M .list_digest_algorithms ()
367
+ function _M .list_digest_algorithms (hide_provider )
369
368
require " resty.openssl.include.evp.md"
370
- local ret = list_legacy (" EVP_MD" ,
371
- OPENSSL_3X and C .EVP_MD_get_type or C .EVP_MD_type )
372
369
373
370
if OPENSSL_3X then
374
- local ret_provided = list_provided (" EVP_MD" )
375
- for _ , r in ipairs (ret_provided ) do
376
- table.insert (ret , r )
377
- end
371
+ return list_provided (" EVP_MD" , hide_provider )
372
+ else
373
+ return list_legacy (" EVP_MD" , C .EVP_MD_type )
378
374
end
379
-
380
- return ret
381
375
end
382
376
383
- function _M .list_mac_algorithms ()
377
+ function _M .list_mac_algorithms (hide_provider )
384
378
if not OPENSSL_3X then
385
379
return nil , " openssl.list_mac_algorithms is only supported from OpenSSL 3.0"
386
380
end
387
381
388
- return list_provided (" EVP_MAC" )
382
+ return list_provided (" EVP_MAC" , hide_provider )
389
383
end
390
384
391
- function _M .list_kdf_algorithms ()
385
+ function _M .list_kdf_algorithms (hide_provider )
392
386
if not OPENSSL_3X then
393
387
return nil , " openssl.list_kdf_algorithms is only supported from OpenSSL 3.0"
394
388
end
395
389
396
- return list_provided (" EVP_KDF" )
390
+ return list_provided (" EVP_KDF" , hide_provider )
397
391
end
398
392
399
393
local valid_ssl_protocols = {
0 commit comments