Bonjour, j'utilise NSS pour inserer des certificats dans le magasin de Firefox
Voici l'initiailisation de NSS et de mon keystore:
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 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");
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
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()); }
Une raison de cet echec pour certain certificat?
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)
Partager