Чтение сертификата X.509 с помощью Java

Я пытаюсь использовать Java для чтения сертификата, полученного от внешней стороны. Код выдает следующую ошибку:

java.lang.RuntimeException: java.security.cert.CertificateException: Unable to initialize, java.io.IOException: extra data given to DerValue constructor

Код:

FileInputStream ksfis = new FileInputStream(this.getCertificateFile());
ksbufin = new BufferedInputStream(ksfis);
certificate = (X509Certificate)
  CertificateFactory.getInstance("X.509").generateCertificate(ksbufin);

Чтобы убедиться, что проблема не в коде, я создал самоподписанный -сертификат и использовал его с кодом, и он работал нормально. Я установил оба сертификата в системную цепочку ключей, и они оба действительны. Я использую Mac и Java 1.6.

Любая идея, почему я получаю указанное выше исключение при загрузке сертификата внешней стороны? Как вы думаете, он был поврежден во время передачи? Если да, то он не должен отображаться как допустимый в локальной системе, верно?

9
задан Pops 23 July 2012 в 22:32
поделиться