Я пытаюсь добавить BouncyCastle в качестве поставщика безопасности в Windows XP Pro, поэтому я могу использовать его для добавления некоторых сертификатов в приложение для Android в соответствии с инструкциями здесь. К сожалению, я не могу заставить его добавить поставщика.
Я:
- Загрузили провайдера в
C:\Program Files\Java\jre6\lib\ext\
. - Добавлен
C:\Program Files\Java\jre6\lib\ext\bcprov-jdk16-146.jar
в%CLASSPATH%
. - Добавлен
security.provider.7=org.bouncycastle.jce.provider.BouncyCastleProvider
в java.security(7 - следующий int в порядке).
Когда я запускаю:
keytool -import -v -trustcacerts -alias 0 -file mycert.crt -keystore mystore.bks -storetype BKS -providerName org.bouncycastle.jce.provider.BouncyCastleProvider -storepass mypassword
Появляется следующее сообщение об ошибке:
keytool error: java.lang.ClassNotFoundException: org.bouncycastle.jce.provider.BouncyCastleProvider
Я также попытался добавить его динамически:
import java.security.Provider;
import java.security.Security;
import java.util.Enumeration;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
public class BouncyCastleMain {
public static void main(String[] args) throws Exception {
Security.addProvider(new BouncyCastleProvider()); // add it
try { // list them out
Provider p[] = Security.getProviders();
for (int i = 0; i < p.length; i++) {
System.out.println(p[i]);
for (Enumeration<?> e = p[i].keys(); e.hasMoreElements();)
System.out.println("\t" + e.nextElement());
}
} catch (Exception e) {
System.out.println(e);
}
}
}
Сначала я получил ошибку доступа при компиляции класса java, но изменил его на предупреждение по предложению здесь. Теперь, когда я запускаю код, он показывает BouncyCastle в списке поставщиков, но он не встает после завершения программы.
Я уверен, что это должно быть выполнимо, но я ошеломлен тем, как заставить этого парня установить достаточно долго, чтобы запустить keytool, используя его. Можно ли запустить keytool с помощью java API или может быть какой-то шаг, который я пропустил, что заставит провайдера придерживаться?
Спасибо!