Я хочу сделать приложение Java, которое делает сигнатуры, но столкнулось с проблемой с файлами политики неограниченной силы, обсуждается во многих сообщениях, например. How to avoid installing "Unlimited Strength" JCE policy files when deploying an application?Не хотите использовать файлы политики неограниченной силы
Все работает нормально, когда я переключаю файлы политики, но я бы предпочел избежать этого, и, поскольку я не планирую использовать симметричное шифрование, я предполагал, что это будет возможно. Моя проблема в том, что я получаю исключение размера «Незаконный ключ» уже в методе загрузки KeyStore.
Моих вопросы:
1) Могу ли я сделать что-нибудь о внутреннем шифрования в хранилище, так что основное ограничение размера не требует от пользователей изменять файлы политики?
2) Я понял, что BullcyCastle Lightweight API может быть вариантом. Если да, как мне загрузить хранилище ключей с этим API?
Security.addProvider(new BouncyCastleProvider());
//Get private key
KeyStore keyStore = KeyStore.getInstance("PKCS12","BC");
String pwd = "password";
FileInputStream finJKS = new FileInputStream("C:\\TEMP\\host.p12");
keyStore.load(finJKS,pwd.toCharArray());
пробег: java.io.IOException: исключение дешифрования данных - java.security.InvalidKeyException: Illegal размер ключа
Запуск JRE в JDK 7u51 на Netbeans 7.4 на Windows.
С наилучшими пожеланиями
Большое спасибо за ценную информацию. Я протестировал свой файл p12 и фактически использовал алгоритм pbeWithSHA1And3-KeyTripleDES-CBC. В любом случае, когда я тестировал без BouncyCastle: KeyStore keyStore = KeyStore.getInstance ("PKCS12"); У меня тогда не возникало проблем с файлами политики. То же самое применяется, когда я преобразовал хранилище ключей в соответствии с вашим примером и использовал экземпляр «JCEKS». –
Ну, это ожидаемое поведение. Кажется, что есть странная проблема с BC и вашим p12-файлом, потому что это не имеет значения, если вы используете BC или нет (я просто попробовал его с одним из моих p12-файлов). – Omikron