Lendo um certificado X.509 com Java

Estou tentando usar o Java para ler um certificado que recebi de uma parte externa. O código está jogando o seguinte erro:

java.lang.RuntimeException: java.security.cert.CertificateException: não é possível inicializar, java.io.IOException: dados extras fornecidos ao construtor DerValue

O código:

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

Para ter certeza de que o problema não estava no código, criei um certificado auto-assinado e o usei com o código, e funcionou bem. Instalei ambos os certificados no chaveiro do sistema e ambos são válidos. Eu estou usando um Mac e um Java 1.6.

Alguma idéia porque eu recebo a exceção acima quando eu carregar o certificado de festa externo? Você acha que ficou corrompido durante a transferência? Em caso afirmativo, ele não deve aparecer como válido no sistema local, certo?

questionAnswers(1)

yourAnswerToTheQuestion