J'essaie d'utiliser Java pour lire un certificat que j'ai reçu d'une partie externe. Le code génère l'erreur suivante :
java.lang.RuntimeException : java.security.cert.CertificateException : Unable to initialize, java.io.IOException : extra data given to DerValue constructor
Le code :
FileInputStream ksfis = new FileInputStream(this.getCertificateFile());
ksbufin = new BufferedInputStream(ksfis);
certificate = (X509Certificate)
CertificateFactory.getInstance("X.509").generateCertificate(ksbufin);
Pour m'assurer que le problème n'était pas dans le code, j'ai créé un certificat auto-signé et je l'ai utilisé avec le code, et cela a fonctionné correctement. J'ai installé les deux certificats dans la chaîne de clés du système et ils sont tous deux valides. J'utilise un Mac et Java 1.6.
Savez-vous pourquoi j'obtiens l'exception susmentionnée lorsque je charge le certificat externe de la partie ? Pensez-vous qu'il a été corrompu pendant le transfert ? Si c'est le cas, il ne devrait pas apparaître comme valide sur le système local, n'est-ce pas ?