Я написал собственный поставщик безопасности для AES/CBC/PKCS5Padding. Это прекрасно работает.
Какие настройки мне нужно добавить в Provider
, чтобы Java распознала его как действительный поставщик для вышеуказанного алгоритма? У меня уже есть
public class FooBarProvider extends Provider {
public FooBarProvider() {
super("FooBar", 1.0, "Provider for AES.");
put("Cipher.AES", "foo.bar.AESCipher");
}
}
где последним аргументом является фактический CipherSpi
, который выполняет работу. Где я могу зарегистрировать тот факт, что он поддерживает CBC и PKCS5Padding? В настоящее время запрос о соответствующем Cipher
не возвращает экземпляр моего класса:
Security.insertProviderAt(new FooBarProvider(), 1);
Cipher cip = Cipher.getInstance("AES/CBC/PKCS5Padding");
System.out.println(cip.getProvider()); //prints "SunJCE version 1.7"