Bonjour, j'utilise NSS pour inserer des certificats dans le magasin de Firefox

Voici l'initiailisation de NSS et de mon keystore:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
File pkcs11Cfg = File.createTempFile("sunpkcs11", ".cfg");
FileOutputStream os = new FileOutputStream(pkcs11Cfg);
os.write("name = NSScrypto\n".getBytes());
os.write("nssLibraryDirectory = C:/Program Files/Mozilla Firefox/\n".getBytes
os.write(("nssSecmodDirectory = " + dbPath.replace('\\', '/') + "\n").getBytes());
os.write("nssDbMode = readWrite\n".getBytes());
os.write("nssModule = keystore\n".getBytes());
os.write("attributes = compatibility".getBytes());
os.close();
 
Security.addProvider(new SunPKCS11(pkcs11Cfg.getAbsolutePath()));
 
//load();
keystore = KeyStore.getInstance("PKCS11");
et voici ma methode pour inserer des certificats:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
public void addCertificate(String storeName, X509Certificate certificate) 
throws Exception
{
  keystore.load(null, "".toCharArray());
  Enumeration e = keystore.aliases();
  while (e.hasMoreElements())
  {
    if (new String(keystore.getCertificate((String)e.nextElement()).getEncoded()).equals(certificate.getEncoded()))
      return;
  }
 
  keystore.setCertificateEntry(certificate.getSubjectDN().getName(), certificate);
  keystore.store(null, "".toCharArray());
}
LE problème c'est que le code d'insertion de certificat fonctionne mais echoue pour certain certificat avec l'exception suivante:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
GRAVE: Error while install certificate GIP-CPS-FR: java.lang.NullPointerException
	at sun.security.pkcs11.P11KeyStore.getID(P11KeyStore.java:2226)
	at sun.security.pkcs11.P11KeyStore.getTokenObject(P11KeyStore.java:2324)
	at sun.security.pkcs11.P11KeyStore.destroyCert(P11KeyStore.java:2027)
	at sun.security.pkcs11.P11KeyStore.deleteEntry(P11KeyStore.java:540)
	at sun.security.pkcs11.P11KeyStore.engineSetEntry(P11KeyStore.java:1035)
	at sun.security.pkcs11.P11KeyStore.engineSetCertificateEntry(P11KeyStore.java:507)
	at java.security.KeyStore.setCertificateEntry(Unknown Source)
	at b.b.b.MozillaKeystore.addCertificate(b.java:104)
	at b.b.b.a.eventNewCertificate(a.java:435)
	at b.b.b.b.b.a(b.java:132)
	at b.b.b.g.run(g.java:261)
	at java.lang.Thread.run(Unknown Source)
Une raison de cet echec pour certain certificat?