Acceda al almacén de confianza de certificados de Firefox desde Java.

Casi estoy perdiendo la esperanza en este caso. Estoy intentando acceder al almacén de confianza de Firefox desde Java 7 utilizando las bibliotecas NSS que vienen con la instalación de Firefox, a través de PKCS # 11.

Aquí está el código:

<code>import java.security.KeyStore;
import java.security.Security;
import java.util.Enumeration;
import sun.security.pkcs11.SunPKCS11;

public class Test {

    public static void main(String[] args) throws Exception {
        String configName = "pkcs11.cfg";
        SunPKCS11 p = new SunPKCS11(configName);
        Security.addProvider(p);
        KeyStore ks = KeyStore.getInstance("PKCS11", p);
        ks.load(null,  "apassword".toCharArray());
        System.out.println("Size: " + ks.size());
        Enumeration<String> aliases = ks.aliases();
        while (aliases.hasMoreElements()) {
            System.out.println(aliases.nextElement());
        }
    }
}
</code>

Aquí están los contenidos para la configuración PKCS # 11:

<code>name = NSS
nssLibraryDirectory = /usr/lib/firefox/
nssSecmodDirectory = "/home/bogdan/.mozilla/firefox/x5d8wol9.default/"
nssModule =trustanchors
showInfo = true
</code>

Cuando ejecuto la aplicación también configuro la propiedad.-Djava.library.path=/usr/lib/firefox/

Cuando ejecuto la aplicación obtengo lo siguiente:

<code>NSS modules: [NSS Internal PKCS #11 Module (CRYPTO, /usr/lib/firefox/libsoftokn3.so, slot 0), NSS Internal PKCS #11 Module (KEYSTORE, /usr/lib/firefox/libsoftokn3.so, slot 1)]
Exception in thread "main" java.security.ProviderException: NSS module not available: trustanchors
    at sun.security.pkcs11.SunPKCS11.<init>(SunPKCS11.java:271)
    at sun.security.pkcs11.SunPKCS11.<init>(SunPKCS11.java:103)
    at Test.main(Test.java:11)
</code>

Puede ver que el módulo "trustanchors" no está cargado en el paso de inicialización, pero no tengo idea de por qué. La documentación aquí:http://docs.oracle.com/javase/6/docs/technotes/guides/security/p11guide.html#NSS dice que

El módulo trustanchors permite el acceso a los certificados de anclaje de confianza NSS a través del Almacén de claves PKCS11, si secmod.db se ha configurado para incluir la biblioteca de anclaje de confianza.

Pero no tengo idea de lo que eso significa. Vale la pena señalar que tengo el mismo comportamiento tanto con Windows XP de 32 bits como con Ubuntu 11.10 de 64 bits. Parece que pkcs11.cfg es correcto, ya que si cambio alguna de las rutas, la aplicación fallará con otros errores.

¿Alguna idea brillante?

Respuestas a la pregunta(1)

Su respuesta a la pregunta