Я пытаюсь открыть файл p7b и прочитать из него сертификаты CA. Ниже мой код. На одном компьютере он работает нормально, но на другом компьютере вызов certFactory.generateCertificate вызывает исключение
Error Message:java.lang.IllegalArgumentException: sequence wrong size for a certificate
На обеих машинах у меня один и тот же файл p7b и одни и те же баночки bouncycastle. Компьютер, на котором работает, - это Windows Xp, а тот, на котором он не работает, - серверный компьютер с Windows 2007 Это 64-битная машина, но я использую только 32-битную jvm.
CertificateFactory certFactory = CertificateFactory.getInstance("X.509",
new BouncyCastleProvider());
java.security.cert.Certificate cert = null;
FileInputStream inStream = new FileInputStream("");
ArrayList<java.security.cert.Certificate> certificates = new ArrayList<java.security.cert.Certificate>();
CAService caService = null;
caService.getCertificateAuthority().setCaCerts(new ArrayList<String>());
while ((cert = certFactory.generateCertificate(inStream)) != null)
{
certificates.add(cert);
StringWriter swrtr = new StringWriter();
PEMWriter writer = new PEMWriter(swrtr);
writer.writeObject(cert);
writer.flush();
caService.getCertificateAuthority().getCaCerts().add(swrtr.toString());
}
Я даже написал отдельную программу, и я даже запускаю явное указание java.exe для использования, но на одном компьютере я столкнулся с тем же исключением.
c: \ jdk1.5.0_14 \ jre \ bin \ java.exe -classpath.; Bcprov-jdk15-143.jar MSCAConfigurator
Exception in thread "main" java.security.cert.CertificateException: java.lang.IllegalArgumentException: sequence wrong size for a certificate
at org.bouncycastle.jce.provider.JDKX509CertificateFactory.engineGenerateCertificate(Unknown Source)
at java.security.cert.CertificateFactory.generateCertificate(CertificateFactory.java:271)
at MSCAConfigurator.main(MSCAConfigurator.java:31)
Caused by: java.lang.IllegalArgumentException: sequence wrong size for a certificate
at org.bouncycastle.asn1.x509.X509CertificateStructure.<init>(Unknown Source)
at org.bouncycastle.asn1.x509.X509CertificateStructure.getInstance(Unknown Source)
at org.bouncycastle.jce.provider.JDKX509CertificateFactory.readPEMCertificate(Unknown Source)
У меня есть банки с неограниченной политикой силы.
C: \ jdk1.5.0_14 \ jre \ lib \ security> dir * .jar
Том на диске C не имеет метки.
Серийный номер тома: D214-CB94
Каталог C: \ jdk1.5.0_14 \ jre \ lib \ security
09/13/2004 16:12 2486 local_policy.jar
09/13/2004 16:12 2472 US_export_policy.jar
Что не так с этой машиной? Кто-нибудь, пожалуйста, помогите, прежде чем я застрелюсь.