A partir de la versión 0.12.0 del paquete OpenSC ya no se permitía hacer callbacks del módulo al API lo cual no permitía compilar el módulo opensc-dni per se con la actual versión de opensc. Una solución pasaba por “meter” el código fuente del módulo dentro del código fuente de opensc. A parte de fallar por todos los lados había otro problema: es ilegal, la DGP publicó el código del módulo con la licencia GPL que no se puede mezclar con la licencia LGPL de OpenSC.

Para solventar estos problemas nació la iniciativa OpenDNI, proyecto de liberación de fuentes desarrollados ad-hoc para el DNIe sobre esquema PKCS#11.

A continuación os explico como instalar el módulo OpenDNI sobre GNU/Linux y Firefox.

Instalación en openSUSE

(probado en: openSUSE 11.4 32 bits y openSUSE 12.1 64 bits)

Deberemos tener instalados la siguiente lista de paquetes:

  • gcc gcc-c++ kernel-devel (kernel-pae-devel en nuestro caso)
  • pkg-config
  • autoconf
  • automake
  • docbook-xsl-stylesheets
  • pcsc-lite, pcsc-lite-devel
  • pcsc-ccid
  • libreadline6, readline-devel
  • openssl, libopenssl0_9_8, libopenssl-devel
  • pinentry, pinentry-gtk2, pinentry-qt4 ( Solo necesarios en run-time )
  • libtool, libltdl7
  • openct, openct-devel, pcsc-openct, libopenct1 (Opcionales)
  • libpth20, libpth-devel

Abrimos una terminal y ejecutamos los siguientes comandos(recuerda que la palabra bash$ de cada comando no debes escribirla en tu terminal):

Creamos un directorio de trabajo:

bash$ mkdir workspace
bash$ cd workspace

Descargamos el código fuente del repositorio del CNATIC:

bash$ svn checkout https://svn.forge.morfeo-project.org/opendnie/opensc-opendnie/trunk

Generamos el entorno de compilación:

bash$ cd trunk
bash$ ./bootstrap

Compilamos e instalamos:

bash$ ./configure
bash$ make
bash$ sudo make install

Si se ha instalado correctamente podremos ejecutar el siguiente comando:

dnie-tool --all

Nos aparecerá nuestro nombre, apellidos y DNI además de otro tipo de información.

Configuración del módulo pkcs#11 en Firefox

(probado desde Firefox 3.6 a Firefox 12.0)

Vamos a Preferencias -> Avanzado -> Dispositivos de seguridad. Ahora le damos al botón “Cargar”, le damos un nombre al módulo, por ejemplo “DNIe” y buscamos la ruta del módulo: /usr/lib/libopensc.so para distribuciones de 32 bits y /usr/lib64/libopensc.so para aquellas de 64 bits.

Instalamos el certificado Certificado Raíz de la FNMT clase2 CA

Bajamos el certificado de http://www.cert.fnmt.es/content/pages_std/certificados/FNMTClase2CA.cer

Vamos a Preferencias -> Ver certificados -> Autoridades y pulsamos el botón “Importar”. Seleccionamos el archivo de certificado que nos habíamos bajado.

Todo listo

Ahora todo debería funcionar bien. Podemos verificarlo desde la página de la DGP: http://www.dnielectronico.es/como_utilizar_el_dnie/verificar.html

Otras distribuciones

El proceso de instalación para otras distribuciones será muy similar, incluso calcado para los puntos de instalación del módulo pkcs#11 en Firefox y la instalación de los certificados.

Para saber cómo hacer este proceso en otras distros mirar la página del CNATIC.