Problema accediendo al KeyStore de Firefox
Hola:
Necesito listar los certificados personales del KeyStore de Firefox, ya he hecho esto para IE.
Mi codigo :
public static void main(String[] args) throws KeyStoreException, CertificateException {
try {
//
System.load("c:/test/libnspr4.dll");
System.load("c:/test/libplc4.dll");
System.load("c:/test/libplds4.dll");
System.load("c:/test/softokn3.dll");
//
Provider nss = new sun.security.pkcs11.SunPKCS11("c:/test/test2.cfg");
Security.insertProviderAt(nss, 1);
KeyStore ks = KeyStore.getInstance("PKCS11", nss);
ks.load(null, "".toCharArray());
Enumeration aliases = ks.aliases();
String alias = null;
while (aliases.hasMoreElements()) {
alias = (String) aliases.nextElement();
System.out.println(alias);
}
Security.removeProvider(nss.getName());
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch (NoSuchAlgorithmException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
//////////////////////////////
El archivo test.cfg contiene:
name = NSS
slot = 2
library = C:/test/softokn3.dll
nssArgs = "configdir='c:/Documents and Settings/User/Datos de programa/Mozilla/Firefox/Profiles/aoyomgvn.default' certPrefix='' keyPrefix=''
secmod='secmod.db' flags=readOnly"
/////////////////////////////////////////////
El error al ejecutar:
run:
Exception in thread "main" java.security.ProviderException: Initialization failed
at sun.security.pkcs11.SunPKCS11.<init>(SunPKCS11.java:340)
at sun.security.pkcs11.SunPKCS11.<init>(SunPKCS11.java:86)
at firma.Main.main(Main.java:164)
Caused by: sun.security.pkcs11.wrapper.PKCS11Exception: CKR_DEVICE_ERROR
at sun.security.pkcs11.wrapper.PKCS11.C_Initialize(Native Method)
at sun.security.pkcs11.wrapper.PKCS11$SynchronizedPKCS11.C_Initialize(PKCS11.java:1488)
at sun.security.pkcs11.wrapper.PKCS11.getInstance(PKCS11.java:160)
at sun.security.pkcs11.SunPKCS11.<init>(SunPKCS11.java:297)
... 2 more
Java Result: 1
Agradeceria cualquier tipo de ayuda, o me gustaria saber si lo hay que hacer de otra manera.
Gracias
Necesito listar los certificados personales del KeyStore de Firefox, ya he hecho esto para IE.
Mi codigo :
public static void main(String[] args) throws KeyStoreException, CertificateException {
try {
//
System.load("c:/test/libnspr4.dll");
System.load("c:/test/libplc4.dll");
System.load("c:/test/libplds4.dll");
System.load("c:/test/softokn3.dll");
//
Provider nss = new sun.security.pkcs11.SunPKCS11("c:/test/test2.cfg");
Security.insertProviderAt(nss, 1);
KeyStore ks = KeyStore.getInstance("PKCS11", nss);
ks.load(null, "".toCharArray());
Enumeration aliases = ks.aliases();
String alias = null;
while (aliases.hasMoreElements()) {
alias = (String) aliases.nextElement();
System.out.println(alias);
}
Security.removeProvider(nss.getName());
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch (NoSuchAlgorithmException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
//////////////////////////////
El archivo test.cfg contiene:
name = NSS
slot = 2
library = C:/test/softokn3.dll
nssArgs = "configdir='c:/Documents and Settings/User/Datos de programa/Mozilla/Firefox/Profiles/aoyomgvn.default' certPrefix='' keyPrefix=''
secmod='secmod.db' flags=readOnly"
/////////////////////////////////////////////
El error al ejecutar:
run:
Exception in thread "main" java.security.ProviderException: Initialization failed
at sun.security.pkcs11.SunPKCS11.<init>(SunPKCS11.java:340)
at sun.security.pkcs11.SunPKCS11.<init>(SunPKCS11.java:86)
at firma.Main.main(Main.java:164)
Caused by: sun.security.pkcs11.wrapper.PKCS11Exception: CKR_DEVICE_ERROR
at sun.security.pkcs11.wrapper.PKCS11.C_Initialize(Native Method)
at sun.security.pkcs11.wrapper.PKCS11$SynchronizedPKCS11.C_Initialize(PKCS11.java:1488)
at sun.security.pkcs11.wrapper.PKCS11.getInstance(PKCS11.java:160)
at sun.security.pkcs11.SunPKCS11.<init>(SunPKCS11.java:297)
... 2 more
Java Result: 1
Agradeceria cualquier tipo de ayuda, o me gustaria saber si lo hay que hacer de otra manera.
Gracias