2016-11-07 1 views
0

Я добавил BouncyCastle в качестве поставщика:Есть ли способ получить список всех возможных «алгоритмов/режимов/дополнений» для Cipher.getInstance?

java.security.Security.addProvider(
    org.bouncycastle.jce.provider.BouncyCastleProvider()) 

Теперь я хочу, чтобы проверить список шифров, которые доступны для getInstance - например:

Cipher.getInstance("AES/CBC/PKCS5Padding", "BC") 

Есть ли способ, чтобы увидеть список всех доступных типов криптоалгоритмов?

+0

Прочитайте документацию, но может быть очень трудно найти эту информацию, особенно по умолчанию. Если нет документации, не используйте эту библиотеку. – zaph

ответ

1

Вы можете проходить через доступные Security.providers и фильтровать Сервисы по типу. Например:

for (Provider provider: Security.getProviders()) { 
    System.out.println(provider.getName()); 
    for (Provider.Service s: provider.getServices()){ 
     if (s.getType().equals("Cipher")) 
      System.out.println("\t"+s.getType()+" "+ s.getAlgorithm()); 
    } 
}