Está en la página 1de 25

DESCRIPCIÓN APP

“DNIE FIRMA”
V 1.0
1 ÍNDICE DEL DOCUMENTO.

1 ÍNDICE DEL DOCUMENTO. ....................................................................................... 2


2 INTRODUCCIÓN. ........................................................................................................... 3
3 OBJETIVO DEL DOCUMENTO .................................................................................. 4
4 ÁMBITO DEL EJEMPLO Y USOS FUTUROS .......................................................... 5
5 REQUISITOS ANDROID ............................................................................................... 6
6 COMPONENTE DNIEDROID ...................................................................................... 7
6.1 Arquitectura lógica ...................................................................................................... 7
6.2 Arquitectura física ....................................................................................................... 8
7 EJEMPLO DE USO: DNIE FIRMA .............................................................................. 9
7.1 Descripción de la aplicación ........................................................................................ 9
7.2 Proceso de Firma con el DNIe ................................................................................... 10
7.2.1 Menú Principal ................................................................................................... 10
7.2.2 Selección de documento a firmar ....................................................................... 11
7.2.3 Selección de CAN .............................................................................................. 12
7.2.4 Autenticación del DNIe mediante PIN.............................................................. 14
8 ESQUEMA DE FUNCIONAMIENTO: DNIE FIRMA ............................................. 17
8.1 Configuración del correo ........................................................................................... 17
8.2 Firma de documentos................................................................................................. 18
8.3 Firma de documentos (Error de ejecución) ............................................................... 19
8.4 Documentos enviados ................................................................................................ 20
9 REFERENCIAS ............................................................................................................. 21
10 TABLA DE FIGURAS................................................................................................... 22
ANEXO A. CÓDIGO FUENTE RELATIVO AL DNIE 3.0 .............................................. 23
A.1 Ejemplo de extracción de certificados........................................................................... 23
A.2 Ejemplo de realización de firma de datos con DNIe ..................................................... 23
A.3 Ejemplo de realización y verificación de firmas ........................................................... 24
A.4 Ejemplo de extracción de certificados en modo rápido ................................................ 25
A.5 Ejemplo de conexión a un servidor seguro ................................................................... 25

Descripción App “DNIe Firma” sobre DNIe v3.0 Página 2 de 25


2 INTRODUCCIÓN.

El Documento Nacional de Identidad es un documento con una antigüedad de más de 50


años, y está presente en la mayoría de las relaciones comerciales y administrativas, y su
número figura en un altísimo porcentaje de las bases de datos de entidades y organismos
públicos y privados.

El Documento Nacional de Identidad es el único documento de uso generalizado en todos


los ámbitos a nivel nacional y referente obligado para la expedición de otros documentos
(pasaporte, permiso de conducir, seguridad social, NIF, etc.).
De esta forma se puede afirmar que el Documento Nacional de Identidad goza de una plena
aceptación en la sociedad española.

El DNI electrónico, además de la capacidad de identificación física de su titular, posee la


capacidad de identificación en medios telemáticos y de firmar electrónicamente como si de
una firma manuscrita se tratase. De esta forma garantiza que la personalidad del firmante no
es suplantada.

En la actualidad, ya se han expedido más de 45 millones de documentos nacionales de


identidad DNI electrónicos, y todos los ciudadanos españoles están obligados a tenerlo.

Figura 1: Anverso DNIe 3.0 Dual Interface

El actual DNI electrónico es un dispositivo con “Dual Interface”:

El interfaz con contactos permite mantener la compatibilidad hacia atrás, es decir el uso del
DNIe mediante un lector de tarjetas inteligentes, conectado a un puerto del ordenador,
mientras que el interfaz sin contactos (contactless) es el que permite incluir las mismas
funcionalidades, pero para dispositivos con tecnología NFC.

Además, el DNIe tiene una estructura de datos equivalente al pasaporte. Así que puede
realizar funciones de Documento de Viaje, y se permite su uso en los Pasos Rápidos de
Frontera (ABC systems) de forma totalmente equivalente a el pasaporte electrónico actual.

Descripción App “DNIe Firma” sobre DNIe v3.0 Página 3 de 25


3 OBJETIVO DEL DOCUMENTO

En la actualidad se ha generalizado por completo el uso de los dispositivos móviles para el


acceso a internet. Esto permite a cualquier usuario estar siempre conectado y tener
disponibles multitud de servicios telemáticos. En función del nivel de seguridad que
requieran dichos servicios, éstos pueden necesitar de la autenticación del usuario, lo que
hace que el Documento Nacional de Identidad (DNIe 3.0) pueda convertirse en una pieza
clave.

La incorporación de la tecnología NFC a los dispositivos móviles de última generación


elimina las barreras del lector, drivers, etc. facilitando la conexión online y la autenticación
del ciudadano. Por su parte, el DNIe 3.0 tiene un chip dual-interface que permite su
utilización tanto con contactos como en modo contactless.

Figura 2: Reverso DNIe 3.0 Dual Interface

El objetivo de este documento es detallar la arquitectura y el funcionamiento de una


aplicación Android con soporte al DNIe v3.0 mediante NFC e indicar los requisitos
funcionales para el desarrollo de aplicaciones similares.

Se detalla la descripción funcional de la aplicación de ejemplo “DNIe Firma”, que permite


realizar firmas de documentos PDF mediante el DNI electrónico. En estos apartados se
describirá el proceso completo de solicitud de acceso al documento, autenticación y firma.

Para información relativa a los certificados X509 incluidos en el DNIe 3.0, véase [1] RFC
2459. Internet X.509 Public Key Infrastructure. Certificate and CRL Profile. En cuanto a
la conexión por radiofrecuencia entre dispositivos, ver [2] ISO 14443 - Tarjetas de
Identificación. Tarjetas sin contacto. Tarjetas de proximidad.

Descripción App “DNIe Firma” sobre DNIe v3.0 Página 4 de 25


4 ÁMBITO DEL EJEMPLO Y USOS FUTUROS

La aplicación de ejemplo “DNIe Firma” implementa un escenario de firma de documentos


PDF en un ámbito escolar. Pero los usos que se le pueden dar al DNI electrónico para
operaciones de firma son ilimitados.

Podríamos implementar multitud de servicios de firma que requieran la verificación de


identidad por parte del ciudadano:

- Firma de notificaciones escolares,


- Autorizaciones de recogida de paquetes en Correos,
- Presentación de contratos por vía telemática,
- Generación de autorizaciones para recogida de medicamentos,
- Firma de solicitudes de alta/baja de servicios,
- Presentación de documentos para las Comunidades Autónomas,
- Solicitudes de acceso a Planes de Actuación de las Diputaciones,
- Acceso a servicios web al ciudadano de los Ayuntamientos,
- Etc.

Partiendo de este ejemplo de código abierto, cualquier desarrollador podría fácilmente


implementar una nueva aplicación de firma de documentos PDF.

Los cambios a realizar para nuevos desarrollos serían mínimos, ya que prácticamente
bastaría con modificar la interfaz de la aplicación y reutilizar la parte que interese de firma de
documentos PDF.

También está incluido al final del documento un Anexo con código fuente de ejemplo para la
realización de las operaciones básicas con el DNI electrónico:

- Carga de Certificados,
- Firma de datos,
- Verificación de firma.

Descripción App “DNIe Firma” sobre DNIe v3.0 Página 5 de 25


5 REQUISITOS ANDROID

Los requisitos de funcionamiento para el entorno son los siguientes:

- Dispositivo Android con tecnología NFC,

- DNIe v3.0 del ciudadano,

- Aplicación “DNIe Firma”.

La autenticación del usuario para el acceso a servicios del Ayuntamiento se realiza mediante
el uso del DNI electrónico v3.0. Este DNIe funciona mediante NFC, (Near Field
Communication, ver [3] NFC Forum Type Tags - White Paper v1.0. NXP
Semiconductors) lo que permite a cualquier dispositivo que disponga de esta tecnología,
actuar como lector de tarjetas.

Las comunicaciones entre el dispositivo y el DNIe se realizarán siempre cifradas según la


norma [4] CWA 14890-1: Application Interface for smart cards used as Secure
Signature Creation Devices.

En este documento nos centraremos en la versión inalámbrica del DNIe, en la que la


interacción desde el punto de vista físico se realiza por medio de NFC.

Para facilitar el uso del DNI electrónico en plataformas Android se ha adaptado la librería
DNIeDroid, que se incluye como librería externa dentro del proyecto de ejemplo. Este
middleware existía previamente para el uso en Java de las versiones de DNIe con
contactos. Ahora se ha adaptado para su correcto funcionamiento en Android y el interfaz
sin contactos vía NFC.

En el siguiente apartado se incluye una breve descripción del componente. Para más
información puede consultarse el “Manual de Usuario para Apps DNIe 3.0”.

Descripción App “DNIe Firma” sobre DNIe v3.0 Página 6 de 25


6 COMPONENTE DNIEDROID
6.1 Arquitectura lógica

En esta parte del documento describiremos la arquitectura lógica de una aplicación Android
y su utilización del middleware DNIeDroid. Como ejemplo tomaremos la app de ejemplo
DNIe Firma, desarrollada para la firma de documentos PDF mediante DNI electrónico.

A continuación se muestra un diagrama en el que se detalla la arquitectura lógica de la


aplicación. Aunque está enfocado a esta app de ejemplo, el diseño y la arquitectura serían
idénticos en cualquier otra aplicación que hiciese uso del DNIeDroid.

Figura 3: Arquitectura lógica App sobre DNIeDroid

En esta figura podemos ver las partes que integran la aplicación. Dado que nuestro ejemplo
se trata de una aplicación Android, el punto de contacto con el usuario son las Activities. El
componente DNIeHelper está disponible para todas ellas, y gestiona la interacción con el
DNIe y los cuadros de diálogo que se muestran al usuario durante esta interacción.

Por otro lado, aquellas Activities que requieran el uso del DNIe para la firma y la
autenticación en servidores de terceros, se pone a su disposición el componente
DroidHTTPClient, que gestiona esta problemática y que también se apoya en el
componente de interacción con el DNIe.

Descripción App “DNIe Firma” sobre DNIe v3.0 Página 7 de 25


6.2 Arquitectura física

En cuanto a la arquitectura física, se mostrarán los componentes físicos necesarios para la


interacción de la aplicación con el DNIe. Esa interacción permitirá la conexión del DNIe con
sitios web externos para la consulta de datos del ciudadano, realización de firmas
electrónicas, etc.

La aplicación utilizada como ejemplo, DNIe Firma, debe estar instalada en un dispositivo
Android con tecnología NFC (Smartphone o Tablet). De esta manera la conexión entre el
smartphone o tablet con el DNIe se realizará mediante proximidad.

También sería posible desarrollar la aplicación para trabajar con DNIe y un lector de tarjetas
USB conectado a él mediante un adaptador USB-OTG. En este documento nos centraremos
sólo en la versión para DNIe v3.0 y tecnología NFC.

Figura 4: Arquitectura física del sistema

Para el acceso a los servicios al ciudadano será necesaria la conexión segura mediante
protocolo https con los servidores del proveedor de servicios correspondiente. Esa conexión
requerirá la autenticación con el DNIe del ciudadano mediante el uso de la tecnología NFC.

Descripción App “DNIe Firma” sobre DNIe v3.0 Página 8 de 25


7 EJEMPLO DE USO: DNIe FIRMA
7.1 Descripción de la aplicación

El ejemplo que detallaremos en este documento, “DNIe Firma”, consiste en una aplicación
de firma de documentos PDF mediante DNI electrónico 3.0.

Se ha realizado en el contexto de un hipotético servicio de firma de notificaciones escolares.


La idea es que el colegio enviase a los padres un correo con la notificación que deberían
firmar los padres y éstos puedan tramitarla desde la aplicación.

En el dispositivo móvil se descarga automáticamente la notificación y desde la propia app


podrían visualizarla y, en su caso, firmarla digitalmente con DNI electrónico. Una vez
firmada, la notificación se enviaría automáticamente de vuelta al centro escolar.

El interés de este documento se centra en la implementación de las operaciones relativas al


DNIe 3.0. Es por esto que la operativa de recepción de PDFs, gestión del alta/baja del
servicio, la interfaz de usuario, etc. no son relevantes y no se detallan.

Descripción App “DNIe Firma” sobre DNIe v3.0 Página 9 de 25


7.2 Proceso de Firma con el DNIe
7.2.1 Menú Principal

La pantalla principal de la aplicación muestra las opciones básicas de funcionamiento. Aquí


podemos ver todos los servicios accesibles para el ciudadano, ya sean de información
general o de acceso protegido mediante DNIe.

Figura 5: Pantalla principal App DNIe Firma

Las opciones disponibles son:

 Buzón de entrada de documentos a firmar,


 Documentos ya enviados,
 Configuración de la cuenta.

Descripción App “DNIe Firma” sobre DNIe v3.0 Página 10 de 25


7.2.2 Selección de documento a firmar

Desde la opción de “Buzón de entrada” accedemos a los documentos pendientes de firma.

Tal y como se describió anteriormente, en este ejemplo partimos de la idea de que el centro
escolar enviaría las notificaciones a los usuarios dados de alta en su sistema. De este modo,
los documentos serían descargados automáticamente por la propia aplicación, que revisa el
correo electrónico configurado por el usuario.

Figura 6: Selección de documento a firmar

En de cada uno de los documentos disponibles podemos pulsar el botón de “Abrir PDF”
para abrir la vista previa del original.

Cuando hayamos comprobado que la notificación es correcta y queramos firmarla,


pulsaremos el botón “Autorizar” para continuar con la ejecución.

Descripción App “DNIe Firma” sobre DNIe v3.0 Página 11 de 25


7.2.3 Selección de CAN

Una vez seleccionado el documento que queremos firmar, la aplicación nos solicita el CAN
(Card Access Number) del documento con el que queremos hacerlo.

Este identificador es un número de 6 dígitos que aparece en el anverso del documento físico
del DNIe y se utiliza para establecer canal cifrado PACE entre el documento y el dispositivo.

Figura 7: Card Access Number en el DNIe 3.0

El canal PACE es obligatorio para poder establecer una conexión inalámbrica cifrada con
el documento pero en ningún caso sustituye al código PIN ni da permisos de uso de las
claves de firma y/o autenticación del ciudadano.

Es una medida adicional de seguridad que pretende evitar que alguien pueda realizar
lecturas de datos públicos sin conocimiento del ciudadano.

Figura 8: Inserción de un nuevo CAN

Descripción App “DNIe Firma” sobre DNIe v3.0 Página 12 de 25


Con el fin de no tener que introducirlo cada vez que vayamos a operar con un DNIe, la
aplicación nos muestra un listado de los números CAN ya utilizados. En cualquier momento
podemos eliminarlo o incluir nuevos documentos.

Figura 9: Selección de un CAN ya introducido

Si intentásemos leer un DNIe con un CAN incorrecto, fallaría la construcción del canal
PACE, por lo que no sería posible la comunicación entre documento y dispositivo.

Para más información sobre el establecimiento del canal PACE (Password Authenticated
Connection Establishment) ver [5] Technical Guideline TR-03110-2.Advanced Security
Mechanisms for Machine Readable Travel Documents –P2.

Descripción App “DNIe Firma” sobre DNIe v3.0 Página 13 de 25


7.2.4 Autenticación del DNIe mediante PIN
Una vez indicado el CAN (Card Access Number) del documento que vamos a utilizar, la
aplicación nos solicitará que aproximemos el DNIe al dispositivo para comenzar con las
comunicaciones.

Por motivos hardware y de seguridad la distancia máxima soportada por NFC es,
dependiendo del dispositivo, de alrededor de un centímetro. Esta conexión es muy sensible
a la distancia y al movimiento, por lo que para el correcto funcionamiento se requiere la
mayor cercanía y estabilidad posibles.

Figura 10: Lectura del DNIe por proximidad

Al acercar el documento al dispositivo, éste lo detectará y se establecerá la comunicación


cifrada entre ambos mediante el canal PACE, permitiendo el intercambio de comandos y
respuestas.

Una vez realizadas las operaciones básicas de lectura de certificados se solicitará el PIN
(Personal Identification Number) del usuario. La presentación del PIN autentica al usuario
contra el DNIe y le concede permisos de acceso a las claves.

Descripción App “DNIe Firma” sobre DNIe v3.0 Página 14 de 25


A partir de ese momento todas las comunicaciones entre DNIe y el dispositivo irán cifradas
según [4] CWA 14890-1: Application Interface for smart cards used as Secure
Signature Creation Devices.

El ciudadano podrá entonces realizar operaciones que requieran el uso de las claves, ya sea
para realizar una firma de documentos, establecer una conexión segura con el servidor del
prestador de servicios, etc.

Figura 11: Inserción del PIN de usuario

Descripción App “DNIe Firma” sobre DNIe v3.0 Página 15 de 25


La aplicación nos mostrará una pantalla final con el resultado de la operación. Si todo fue
bien aparecerá un nuevo documento PDF con la firma digital del ciudadano. En caso
contrario nos devolverá un mensaje de error y una descripción breve de las causas.

Figura 12: Pantallas de resultado de la firma

Si la operación se ha completado satisfactoriamente podemos pulsar en el PDF y se abrirá


la vista previa del documento. Será el mismo que se descargó originalmente pero contendrá
también la firma que se ha generado.

Figura 13: Visualización del PDF firmado

Descripción App “DNIe Firma” sobre DNIe v3.0 Página 16 de 25


8 ESQUEMA DE FUNCIONAMIENTO: DNIE FIRMA
8.1 Configuración del correo

Figura 14: Configuración de cuenta

Descripción App “DNIe Firma” sobre DNIe v3.0 Página 17 de 25


8.2 Firma de documentos

Figura 15: Solicitud de firma de documento

Descripción App “DNIe Firma” sobre DNIe v3.0 Página 18 de 25


8.3 Firma de documentos (Error de ejecución)

Figura 16: Error durante el proceso de firma

Descripción App “DNIe Firma” sobre DNIe v3.0 Página 19 de 25


8.4 Documentos enviados

Figura 17: Visualización de documentos enviados

Descripción App “DNIe Firma” sobre DNIe v3.0 Página 20 de 25


9 REFERENCIAS

[1] RFC 2459. Internet X.509 Public Key Infrastructure. Certificate and CRL Profile
[2] ISO 14443 - Tarjetas de Identificación. Tarjetas sin contacto. Tarjetas de proximidad
[3] NFC Forum Type Tags - White Paper v1.0. NXP Semiconductors
[4] CWA 14890-1: Application Interface for smart cards used as Secure Signature Creation
Devices
[5] Technical Guideline TR-03110-2.Advanced Security Mechanisms for Machine Readable
Travel Documents –Part 2
[6] ISO/IEC 7816-4. Identification cards – Integrates circuit cards. Part 4: Organization, security
and commands for interchange.
[7] ISO/IEC18092 Information technology — Telecommunications and information exchange
between systems — Near Field Communication — Interface and Protocol
(NFCIP-1)
[8] Android.NFC. http://developer.android.com/reference/android/nfc/package-summary.html
[9] UIT-T X.509 (11/2008) – Open systems interconnection: Public-key and attribute certificate
frameworks

Descripción App “DNIe Firma” sobre DNIe v3.0 Página 21 de 25


10TABLA DE FIGURAS

Figura 1: Anverso DNIe 3.0 Dual Interface..................................................................... 3


Figura 2: Reverso DNIe 3.0 Dual Interface ..................................................................... 4
Figura 3: Arquitectura lógica App sobre DNIeDroid ...................................................... 7
Figura 4: Arquitectura física del sistema ......................................................................... 8
Figura 5: Pantalla principal App DNIe Firma .............................................................. 10
Figura 6: Selección de documento a firmar ................................................................... 11
Figura 7: Card Access Number en el DNIe 3.0 ............................................................. 12
Figura 8: Inserción de un nuevo CAN............................................................................ 12
Figura 9: Selección de un CAN ya introducido ............................................................. 13
Figura 10: Lectura del DNIe por proximidad ................................................................ 14
Figura 11: Inserción del PIN de usuario ....................................................................... 15
Figura 12: Pantallas de resultado de la firma ............................................................... 16
Figura 13: Visualización del PDF firmado.................................................................... 16
Figura 14: Configuración de cuenta .............................................................................. 17
Figura 15: Solicitud de firma de documento .................................................................. 18
Figura 16: Error durante el proceso de firma ............................................................... 19
Figura 17: Visualización de documentos enviados ........................................................ 20

Descripción App “DNIe Firma” sobre DNIe v3.0 Página 22 de 25


ANEXO A. CÓDIGO FUENTE RELATIVO AL DNIe 3.0
A.1 Ejemplo de extracción de certificados
// Se instancia el proveedor y se añade
final DnieProvider p = new DnieProvider();
p.setProviderTag(tagFromIntent); // Tag discovered by the activity
p.setProviderCan(canNumber); // DNIe’s Can number
Security.insertProviderAt(p, 1);

// Creamos el cuadro de diálogo que gestionará la solicitud del PIN


MyPasswordDialog myFragment = new MyPasswordDialog(NFCOperationsEnc.this,
true);
DNIeDialogManager.setDialogUIHandler(myFragment);

// Cargamos certificados y keyReferences


final KeyStore ksUserDNIe = KeyStore.getInstance("MRTD");
ksUserDNIe.load(null, null);

Certificate signCert = ksUserDNIe.getCertificate("CertFirmaDigital");


Certificate authCert = ksUserDNIe.getCertificate("CertAutenticacion");

A.2 Ejemplo de realización de firma de datos con


DNIe
// Se instancia el proveedor y se añade
final DnieProvider p = new DnieProvider();
p.setProviderTag(tagFromIntent); // Tag discovered by the activity
p.setProviderCan(canNumber); // DNIe’s Can number
Security.insertProviderAt(p, 1);

// Creamos el cuadro de diálogo que gestionará la solicitud del PIN


MyPasswordDialog myFragment = new MyPasswordDialog(NFCOperationsEnc.this,
true);
DNIeDialogManager.setDialogUIHandler(myFragment);

// Cargamos certificados y keyReferences


final KeyStore ksUserDNIe = KeyStore.getInstance("MRTD");
ksUserDNIe.load(null, null);

final String alias = "CertFirmaDigital”; //$NON-NLS-1$

// Se obtiene el motor de firma y se inicializa


final Signature signature = Signature.getInstance("SHA1withRSA"); //$NON-NLS-
1$
signature.initSign((PrivateKey) ksUserDNIe.getKey(alias, null));

// Vamos a firmar el texto 'hola'


signature.update("hola".getBytes()); //$NON-NLS-1$

// Completamos el proceso y obtenemos la firma PKCS#1


final byte[] signatureBytes = signature.sign();

Descripción App “DNIe Firma” sobre DNIe v3.0 Página 23 de 25


A.3 Ejemplo de realización y verificación de firmas

// Se instancia el proveedor y se añade


final DnieProvider p = new DnieProvider();
p.setProviderTag(tagFromIntent); // Tag discovered by the activity
p.setProviderCan(canNumber); // DNIe’s Can number
Security.insertProviderAt(p, 1);

// Creamos el cuadro de diálogo que gestionará la solicitud del PIN


MyPasswordDialog myFragment = new MyPasswordDialog(NFCOperationsEnc.this,
true);
DNIeDialogManager.setDialogUIHandler(myFragment);

// Cargamos certificados y keyReferences


final KeyStore ksUserDNIe = KeyStore.getInstance("MRTD");
ksUserDNIe.load(null, null);

final String alias = "CertFirmaDigital”; //$NON-NLS-1$

// Se obtiene el motor de firma y se inicializa


final Signature signature = Signature.getInstance("SHA1withRSA"); //$NON-NLS-
1$
signature.initSign((PrivateKey) ksUserDNIe.getKey(alias, null));

// Vamos a firmar el texto 'hola'


signature.update("hola".getBytes()); //$NON-NLS-1$

// Completamos el proceso y obtenemos la firma PKCS#1


final byte[] signatureBytes = signature.sign();

// Comprobacion de la validez de la firma obtenida


signature.initVerify(ks.getCertificate(alias).getPublicKey());
signature.update("hola".getBytes()); //$NON-NLS-1$
signature.verify(signatureBytes);

Descripción App “DNIe Firma” sobre DNIe v3.0 Página 24 de 25


A.4 Ejemplo de extracción de certificados en modo
rápido

// Se activa el modo rápido


System.setProperty("es.gob.jmulticard.fastmode", "true");

// Se instancia el proveedor y se añade


final DnieProvider p = new DnieProvider();
p.setProviderTag(tagFromIntent); // Tag discovered by the activity
p.setProviderCan(canNumber); // DNIe’s Can number
Security.insertProviderAt(p, 1);

// Creamos el cuadro de diálogo que gestionará la solicitud del PIN


MyPasswordDialog myFragment = new MyPasswordDialog(NFCOperationsEnc.this,
true);
DNIeDialogManager.setDialogUIHandler(myFragment);

// Cargamos certificados y keyReferences


final KeyStore ksUserDNIe = KeyStore.getInstance("MRTD");
ksUserDNIe.load(null, null);

Certificate authCert = ksUserDNIe.getCertificate("CertAutenticacion");

// El siguiente certificado es completo/real ya que nos pedirá el PIN


KeyStore.Entry entry = ksUserDNIe.getEntry("CertAutenticacion", null);
KeyStore.PrivateKeyEntry pkEntry = (KeyStore.PrivateKeyEntry) entry;
Certificate authCertCompleto = pkEntry.getCertificate();

A.5 Ejemplo de conexión a un servidor seguro


// Creamos el objeto que gestionará los certificados adicionales,
// MyCaCertificate implements es.inteco.labs.net.CaCertificatesHandler
MyCaCertificate myCert = new MyCaCertificate(NFCOperationsEncKitKat.this);
DNIeCaCertsManager.setCaCertHandler(myCert);

// Lanzamos la conexión al driver dniedroid


HttpEntity webContent = DroidHttpClient.executeRequest(m_SSLtargetURL,
myContext,
ksUserDNIe);

// Almacenamos la respuesta obtenida


m_SSLresultado = new String(EntityUtils.toByteArray(webContent),
Charset.forName(“utf-8”));

// Limpiamos las cookies del dniedroid


DroidHttpClient.cleanCookies();

Descripción App “DNIe Firma” sobre DNIe v3.0 Página 25 de 25

También podría gustarte