Integración de SealSign BSS en aplicaciones Windows 10

17
[email protected] elevenpaths.com Guía de Integración de SealSign BSS (Biometric Signature Services) en Aplicaciones Windows 10 ElevenPaths, innovación radical y disruptiva en seguridad

Transcript of Integración de SealSign BSS en aplicaciones Windows 10

Page 1: Integración de SealSign BSS en aplicaciones Windows 10

[email protected]

elevenpaths.com

Guía de Integración de SealSign BSS (Biometric Signature Services) en Aplicaciones Windows 10

ElevenPaths, innovación radical y disruptiva en seguridad

Page 2: Integración de SealSign BSS en aplicaciones Windows 10

Guía de integración de SealSign BSS (Biometric Signature Services) en Aplicaciones Windows 10

V.3.2 – Octubre 2016

2016 © Telefónica Digital España, S.L.U. Todos los derechos reservados. Página 2 de 17

CONTENIDOS

1 Introducción ............................................................................................................... 3

2 Tareas comunes .......................................................................................................... 4

2.1 Inclusión de Referencias de Servicios Web .............................................................................. 4

2.2 Inclusión del cliente SealSignBSSClientLibrary ......................................................................... 6

2.3 Autenticación de llamadas a servicios web .............................................................................. 7

2.3.1 Paso de credenciales para una autenticación básica ................................................................. 7

2.3.2 Paso de credenciales para una autenticación Windows ............................................................ 7

3 Casos de uso ............................................................................................................... 8

3.1 Firma Biométrica ...................................................................................................................... 8

3.1.1 Inclusión del panel de captura de firma manuscrita .................................................................. 8

3.1.2 Establecer Fondo de Firma Transparente .................................................................................. 8

3.1.3 Inicio de la Captura ..................................................................................................................... 9

3.1.4 Fin de la Captura ......................................................................................................................... 9

3.1.5 Borrar la Captura ........................................................................................................................ 9

3.1.6 Inicio de la Firma ........................................................................................................................ 9

3.1.7 Criptografía en Cliente.............................................................................................................. 10

3.1.8 Fin de Firma .............................................................................................................................. 10

3.2 Verificación de Documentos Firmados ................................................................................... 10

3.3 Firma Biométrica Desconectada ............................................................................................. 11

3.3.1 Captura Desconectada ............................................................................................................. 11

3.3.2 Sincronización de la Firma con el Servidor ............................................................................... 11

3.4 Firma Biométrica con Document Provider (Documento en el Servidor) ................................ 12

3.4.1 Inicio de la Firma ...................................................................................................................... 12

3.4.2 Criptografía en Cliente.............................................................................................................. 13

3.4.3 Fin de la Firma .......................................................................................................................... 13

3.5 Desarrollo de document providers ......................................................................................... 13

3.5.1 Inclusión de SealSignBSSTypes y SealSignDSSTypes ................................................................. 13

3.5.2 Implementación del interfaz .................................................................................................... 13

3.5.3 Obtención del documento y de los parámetros de firma ........................................................ 14

3.5.4 Almacenamiento del documento firmado ............................................................................... 14

4 Recursos .................................................................................................................... 16

Page 3: Integración de SealSign BSS en aplicaciones Windows 10

Guía de integración de SealSign BSS (Biometric Signature Services) en Aplicaciones Windows 10

V.3.2 – Octubre 2016

2016 © Telefónica Digital España, S.L.U. Todos los derechos reservados. Página 3 de 17

1 Introducción

SealSign BSS es un producto desarrollado por ElevenPaths, dirigido a facilitar la integración de la firma electrónica en las aplicaciones corporativas. SealSign BSS expone su funcionalidad a través de Servicios Web basados en la tecnología WCF (Windows Communication Framework). Estos servicios pueden ser invocados por aplicaciones implementadas sobre la mayoría de las tecnologías del mercado.

El SDK de SealSign BSS proporciona, además, diversos paneles para la captura de la firma manuscrita disponibles según la tecnología usada por la aplicación cliente.

Este documento no pretende ser un manual sobre los aspectos concretos de la firma biométrica sino un manual de referencia técnica, orientado al desarrollador, sobre cómo integrar SealSign BSS en Aplicaciones Windows 10.

Page 4: Integración de SealSign BSS en aplicaciones Windows 10

Guía de integración de SealSign BSS (Biometric Signature Services) en Aplicaciones Windows 10

V.3.2 – Octubre 2016

2016 © Telefónica Digital España, S.L.U. Todos los derechos reservados. Página 4 de 17

2 Tareas comunes

2.1 Inclusión de Referencias de Servicios Web

Para interactuar con la plataforma servidora se hace uso de la capa de servicios Web. El documento “SealSign BSS - Referencia de Servicios Web” detalla cada servicio y sus parámetros. En este apartado se muestra, a modo de ejemplo, cómo incluir la referencia a un servicio web de la plataforma usando Microsoft Visual Studio 2015.

Para añadir la referencia a un servicio web pulsar con el botón derecho del ratón sobre el proyecto .NET, seleccionar la opción Add y después Service Reference…

Imagen 01: Menú añadir referencia de servicio.

Aparecerá la ventana asistente para añadir la referencia del servicio web:

Page 5: Integración de SealSign BSS en aplicaciones Windows 10

Guía de integración de SealSign BSS (Biometric Signature Services) en Aplicaciones Windows 10

V.3.2 – Octubre 2016

2016 © Telefónica Digital España, S.L.U. Todos los derechos reservados. Página 5 de 17

Imagen 02: Ventana asistente para añadir referencia de servicio.

En esta ventana hay que teclear la URL del servicio web, pulsar el botón Go, teclear un nombre para el Namespace y pulsar el botón OK. La referencia se añadirá al proyecto y se mostrará en el Solution Explorer:

Imagen 03: Referencia de servicio web en el Solution Explorer.

Otro método para la invocación de servicios web es la generación de clases proxy con utilidades como svcutil.exe, disponible tanto con el SDK de Microsoft Windows como con las diferentes versiones de Microsoft Visual Studio.

svcutil es una herramienta de línea de comandos que generará uno o varios ficheros de código (según el lenguaje indicado) y un fichero .config con la configuración adecuada para la invocación del web service.

Un ejemplo de línea de comandos para la generación de clases proxy de SealSign BSS sería el siguiente:

svcutil.exe /out:BiometricSignatureServiceBasic.cs /config:BiometricSignatureServiceBasic.config http://localhost/SealSignBSSService/BiometricSignatureServiceBasic.svc /n:*,SealSignBSSService /n:http://schemas.datacontract.org/2004/07/SealSignDSSTypes,SealSignDSSTypes /n:http://schemas.datacontract.org/2004/07/SealSignBSSTypes,SealSignBSSTypes

Page 6: Integración de SealSign BSS en aplicaciones Windows 10

Guía de integración de SealSign BSS (Biometric Signature Services) en Aplicaciones Windows 10

V.3.2 – Octubre 2016

2016 © Telefónica Digital España, S.L.U. Todos los derechos reservados. Página 6 de 17

En este ejemplo, la herramienta svcutil.exe generará dos ficheros: BiometricSignatureServiceBasic.cs y BiometricSignatureServiceBasic.config. El fichero BiometricSignatureServiceBasic.cs se incorporará al proyecto .NET como un fichero de código más y el contenido del fichero BiometricSignatureServiceBasic.config se deberá añadir dentro del fichero app.config del proyecto .NET.

2.2 Inclusión del cliente SealSignBSSClientLibrary

Para incluir las funciones de criptografía en el cliente de la plataforma, es necesario añadir la referencia a la librería SealSignBSSClientLibrary en el proyecto. Para ello hay que pulsar con el botón derecho del ratón sobre el proyecto .NET, seleccionar la opción Add y después Reference…

Imagen 04: Adición de la librería SealSignDSSClientLibrary.dll.

Tras esto aparecerá la ventana del administrador de referencia que permitirá seleccionar la librería SealSignBSSClientLibrary.dll:

Imagen 05: Visual Studio 2015 Reference Manager.

Page 7: Integración de SealSign BSS en aplicaciones Windows 10

Guía de integración de SealSign BSS (Biometric Signature Services) en Aplicaciones Windows 10

V.3.2 – Octubre 2016

2016 © Telefónica Digital España, S.L.U. Todos los derechos reservados. Página 7 de 17

2.3 Autenticación de llamadas a servicios web

Dependiendo de la configuración y según las operaciones que se deseen realizar, las peticiones a los servicios web de la plataforma deberán realizarse de manera autenticada. Por ejemplo, una operación de enumeración de certificados debe realizarse de manera autenticada desde el cliente, de forma que se asegure el uso de certificados permitidos.

En el caso de aplicaciones .NET, según el escenario en el que estas se ejecuten, es posible que no sea necesario suministrar las credenciales programáticamente puesto que pueden hacer uso de la autenticación integrada de la propia plataforma Windows.

2.3.1 Paso de credenciales para una autenticación básica En el siguiente ejemplo se muestra la conexión a un servicio web de SealSign, configurado con autenticación básica y suministrando las credenciales mediante código .NET:

SignatureServiceBasicClient service = new SignatureServiceBasicClient(BiometricSignatureServiceBasicClient.EndpointConfiguration.BasicHttpBinding_IBiometricSignatureServiceBasic2); service.ClientCredentials.UserName.UserName = "SealSignTest"; service.ClientCredentials.UserName.Password = "Passw0rd"; CertificateReference[] certs = await service.GetCertificateReferencesAsync(null, false); await service.CloseAsync();

2.3.2 Paso de credenciales para una autenticación Windows En el siguiente ejemplo se muestra la conexión a un servicio web de SealSign, configurado con autenticación Windows y suministrando las credenciales mediante código .NET:

SignatureServiceClient service = new SignatureServiceClient(BiometricSignatureServiceBasicClient.EndpointConfiguration.BasicHttpBinding_IBiometricSignatureServiceBasic1); service.ClientCredentials.Windows.ClientCredential.Domain = "localhost"; service.ClientCredentials.Windows.ClientCredential.UserName = "SealSignTest"; service.ClientCredentials.Windows.ClientCredential.Password = "Passw0rd"; CertificateReference[] certificates = await service.GetCertificateReferencesAsync(null, false); await service.CloseAsync();

Page 8: Integración de SealSign BSS en aplicaciones Windows 10

Guía de integración de SealSign BSS (Biometric Signature Services) en Aplicaciones Windows 10

V.3.2 – Octubre 2016

2016 © Telefónica Digital España, S.L.U. Todos los derechos reservados. Página 8 de 17

3 Casos de uso

3.1 Firma Biométrica

3.1.1 Inclusión del panel de captura de firma manuscrita Una vez añadida la librería SealSignBSSClientLibrary.dll a Visual Studio, el siguiente paso consiste en añadir el panel de captura en el código XAML, añadiendo el namespace SealSignBSSControlLibrary y el control en la pantalla.

Imagen 06: Inclusión del panel de captura.

3.1.2 Establecer Fondo de Firma Transparente La firma por defecto se muestra en la imagen sobre fondo blanco. Si en la representación gráfica es necesario que el fondo sea transparente, se puede utilizar la propiedad TransparentSignature:

sealSignBSSWacomSTUPanel1.TransparentSignature = true;

Page 9: Integración de SealSign BSS en aplicaciones Windows 10

Guía de integración de SealSign BSS (Biometric Signature Services) en Aplicaciones Windows 10

V.3.2 – Octubre 2016

2016 © Telefónica Digital España, S.L.U. Todos los derechos reservados. Página 9 de 17

3.1.3 Inicio de la Captura Una vez integrado el panel en el desarrollo se comienza la captura biométrica llamando al método Start del panel:

sealSignBSSWacomSTUPanel1.Start();

3.1.4 Fin de la Captura El método Stop del panel detiene la captura de datos biométricos. Es conveniente parar la captura una vez reconocida y antes de empezar el proceso de firma con la plataforma servidora:

sealSignBSSWacomSTUPanel1.Stop();

3.1.5 Borrar la Captura Para reiniciar y borrar la captura realizada se puede llamar al método CleanSignature del panel de firma:

sealSignBSSWacomSTUPanel1.CleanSignature();

3.1.6 Inicio de la Firma Para firmar biométricamente, se realizan los siguientes pasos:

1. Se notifica a la plataforma el documento a firmar.

2. Con los datos obtenidos del servidor (es decir, la instancia y el token de firma) se realiza la operación de fusión de datos biométricos y criptografía mediante la librería cliente SealSignBSSClientLibrary.

3. Se notifica el resultado de la operación a la plataforma para finalizar la operación de firma y componer el documento final.

Se notifica el inicio de firma a la plataforma servidora mediante la llamada al método BeginSignature. El servicio consumido es el /SealSignBSSService/BiometricSignatureServiceBasic.svc. Los valores retornados y la sintaxis del método se pueden consultar en el documento “SealsSign BSS - Referencia de Servicios Web”:

signaturePanel.Stop(); var assetsFolder = await Package.Current.InstalledLocation.GetFolderAsync("Assets"); StorageFile documentFile = await assetsFolder.GetFileAsync("sample.pdf"); IRandomAccessStream documentStream = await documentFile.OpenAsync(FileAccessMode.Read); DataReader reader = new DataReader(documentStream.GetInputStreamAt(0)); await reader.LoadAsync((uint)documentStream.Size); byte[] documentBytes = new byte[documentStream.Size]; reader.ReadBytes(documentBytes); BiometricSignatureServiceBasicClient service = new BiometricSignatureServiceBasicClient(BiometricSignatureServiceBasicClient.EndpointConfiguration.BasicHttpBinding_IBiometricSignatureServiceBasic3); var response = await service.BeginSignatureAsync(

SignatureProfile.PDF, BiometricSignatureType.Default, string.Empty, string.Empty,

Page 10: Integración de SealSign BSS en aplicaciones Windows 10

Guía de integración de SealSign BSS (Biometric Signature Services) en Aplicaciones Windows 10

V.3.2 – Octubre 2016

2016 © Telefónica Digital España, S.L.U. Todos los derechos reservados. Página 10 de 17

BiometricSignatureFlags.Default, null, SignatureFlags.Default, null, null, documentBytes);

3.1.7 Criptografía en Cliente Mediante la llamada al panel de firma se realiza la obtención de los datos biométricos y la operación criptográfica:

// Client encryption with SealSignBSSClientLibrary byte[] biometricState = await signaturePanel.GetSignature(response.instance, response.biometricState);

3.1.8 Fin de Firma Se notifica a la plataforma el fin de la firma y se obtiene el documento final. El servicio consumido es el /SealSignBSSService/BiometricSignatureServiceBasic.svc. Los valores retornados y la sintaxis del método se pueden consultar en el documento “SealSign BSS - Referencia de Servicios Web”:

//End signature var signedBytes = await service.EndSignatureAsync(response.instance, biometricState); StorageFolder localFolder = ApplicationData.Current.LocalFolder; StorageFile signedDocument = await localFolder.CreateFileAsync("sample.signed.pdf", CreationCollisionOption.ReplaceExisting); using (Stream signedStream = await signedDocument.OpenStreamForWriteAsync()) {

signedStream.Write(signedBytes, 0, signedBytes.Length); } await service.CloseAsync(); signaturePanel.Start();

3.2 Verificación de Documentos Firmados

Es posible verificar una firma capturada contra las firmas contenidas en un documento. Para ello se realiza una única llamada al método Verify de la plataforma servidora. El servicio consumido es el /SealSignBSSService/BiometricSignatureServiceBasic.svc. Los valores retornados y la sintaxis del método se pueden consultar en el documento “SealSign BSS - Referencia de Servicios Web”:

BiometricSignatureServiceClient service = new BiometricSignatureServiceClient(BiometricSignatureServiceBasicClient.EndpointConfiguration.BasicHttpBinding_IBiometricSignatureServiceBasic3); byte[] biometricState = null; var assetsFolder = await Package.Current.InstalledLocation.GetFolderAsync("Assets"); StorageFile documentFile = await assetsFolder.GetFileAsync("sample.pdf.bio.signed.pdf "); IRandomAccessStream documentStream = await documentFile.OpenAsync(FileAccessMode.Read); DataReader reader = new DataReader(documentStream.GetInputStreamAt(0)); await reader.LoadAsync((uint)documentStream.Size); byte[] documentBytes = new byte[documentStream.Size]; reader.ReadBytes(documentBytes);

Page 11: Integración de SealSign BSS en aplicaciones Windows 10

Guía de integración de SealSign BSS (Biometric Signature Services) en Aplicaciones Windows 10

V.3.2 – Octubre 2016

2016 © Telefónica Digital España, S.L.U. Todos los derechos reservados. Página 11 de 17

byte[] biometricFinalState = sealSignBSSPanel.GetSignature(new Guid("00000000-0000-0000-0000-000000000000"), biometricState); if (biometricFinalState != null) {

BiometricSignatureVerification verifyResponse = await service.VerifyAsync( SignatureProfile.PDF, BiometricSignatureType.Default, "", "", BiometricVerificationFlags.Default, null, biometricFinalState, null, documentBytes);

} await service.CloseAsync();

3.3 Firma Biométrica Desconectada

En algunos escenarios es posible que no haya conexión con el servidor de firma biométrica. SealSign permite realizar una firma preliminar para sincronizar con el servicio cuando el cliente vuelva a tener conexión. Es necesario disponer del documento en cliente para poder asociar de manera única la firma capturada con el mismo.

3.3.1 Captura Desconectada Mediante la llamada al panel de firma se realiza la obtención de los datos biométricos y la operación criptográfica. En lugar de los datos obtenidos del servicio en una llamada normal, se obtiene el token biométrico pasando el documento a firmar como parámetro. Posteriormente, se obtiene también la instancia temporal generada en cliente:

var assetsFolder = await Package.Current.InstalledLocation.GetFolderAsync("Assets"); StorageFile documentFile = await assetsFolder.GetFileAsync("sample.pdf"); IRandomAccessStream documentStream = await documentFile.OpenAsync(FileAccessMode.Read); DataReader reader = new DataReader(documentStream.GetInputStreamAt(0)); await reader.LoadAsync((uint)documentStream.Size); byte[] documentBytes = new byte[documentStream.Size]; reader.ReadBytes(documentBytes); //Client encryption with SealSignBSSClientLibrary var response = await signaturePanel.GetOfflineSignature(documentBytes); byte[] biometricFinalState = response.BiometricState; Guid instance = response.Instance;

3.3.2 Sincronización de la Firma con el Servidor Una vez reestablecida la comunicación con el servicio, será necesario sincronizar la firma o firmas generadas de forma desconectada para obtener el documento final incluyendo todos los elementos necesarios mediante la llamada al método SyncOfflineSignatures. El servicio consumido es el /SealSignBSSService/BiometricSignatureServiceBasic.svc:

//Sign document ObservableCollection<OfflineBiometricSignature> offlineSignatures = new ObservableCollection<OfflineBiometricSignature>(); var offlineSignature = new OfflineBiometricSignature(); offlineSignature.id = ""; offlineSignature.account = "";

Page 12: Integración de SealSign BSS en aplicaciones Windows 10

Guía de integración de SealSign BSS (Biometric Signature Services) en Aplicaciones Windows 10

V.3.2 – Octubre 2016

2016 © Telefónica Digital España, S.L.U. Todos los derechos reservados. Página 12 de 17

offlineSignature.biometricOptions = BiometricSignatureFlags.Default; offlineSignature.biometricParameters = null; offlineSignature.options = SignatureFlags.Default; offlineSignature.parameters = null; offlineSignature.instance = instance; offlineSignature.offlineBiometricState = biometricFinalState; offlineSignatures.Add(offlineSignature); BiometricSignatureServiceBasicClient service = new BiometricSignatureServiceBasicClient(BiometricSignatureServiceBasicClient.EndpointConfiguration.BasicHttpBinding_IBiometricSignatureServiceBasic3); var signedBytes = await service.SyncOfflineSignaturesAsync(SignatureProfile.PDF,

offlineSignatures, null, documentBytes); //Store signed document StorageFolder localFolder = ApplicationData.Current.LocalFolder; StorageFile signedDocument = await localFolder.CreateFileAsync("sample.signed.pdf", CreationCollisionOption.ReplaceExisting); using (Stream signedStream = await signedDocument.OpenStreamForWriteAsync()) {

signedStream.Write(signedBytes, 0, signedBytes.Length); } await service.CloseAsync();

3.4 Firma Biométrica con Document Provider (Documento en el

Servidor)

El procedimiento de firma con un document provider es similar al de firma biométrica, con la diferencia de que el documento no tiene por qué estar en el cliente. En su lugar, se especifica una URI que el documento provider utilizará para obtener el documento de un Backend documental en la parte servidora.

3.4.1 Inicio de la Firma Se notifica el inicio de firma a la plataforma servidora mediante la llamada al método BeginSignatureProvider. /SealSignBSSService/BiometricSignatureServiceBasic.svc es el servicio consumido. Los valores retornados y la sintaxis del método se pueden consultar en el documento “SealSign BSS - Referencia de Servicios Web”:

BiometricSignatureServiceBasicClient service = new BiometricSignatureServiceBasicClient(BiometricSignatureServiceBasicClient.EndpointConfiguration.BasicHttpBinding_IBiometricSignatureServiceBasic3); BiometricSignatureBeginResponseBasic response = await service.BeginSignatureProviderAsync( "", "", @"demo://c:\samples\sample.pdf", null, null);

Page 13: Integración de SealSign BSS en aplicaciones Windows 10

Guía de integración de SealSign BSS (Biometric Signature Services) en Aplicaciones Windows 10

V.3.2 – Octubre 2016

2016 © Telefónica Digital España, S.L.U. Todos los derechos reservados. Página 13 de 17

3.4.2 Criptografía en Cliente Mediante la llamada al panel de firma se realiza la obtención de los datos biométricos y la operación criptográfica:

// Client encryption with SealSignBSSClientLibrary byte[]biometricFinalState = await signaturePanel.GetSignature(response.instance, response.biometricState);

3.4.3 Fin de la Firma Se notifica a la plataforma el fin de la firma. El servicio consumido es el /SealSignBSSService/ BiometricSignatureServiceBasic.svc. Los valores retornados y la sintaxis del método se pueden consultar en el documento “SealSign BSS - Referencia de Servicios Web”:

if (biometricFinalState != null) {

await service.EndSignatureProviderAsync(response.instance, biometricFinalState, @"demo://c:\samples\sample.pdf", null, false); } await service.CloseAsync();

3.5 Desarrollo de document providers Tal y como se comentaba en el apartado anterior, existe la posibilidad de realizar la firma de documentos que no residan en el cliente sino en un Backend documental en la parte servidora. Para el uso de esta funcionalidad, es necesario desarrollar y registrar un tipo de add-ins, denominados document providers, que serán los encargados del acceso al repositorio documental de la parte servidora.

Un document provider es un ensamblado (assembly) desarrollado en cualquier lenguaje .NET y que implementa el interfaz SealSignBSSFrontend.IDocumentProvider. La descripción del interfaz y el registro de document providers en la plataforma se pueden consultar en el documento “SealSign BSS - Referencia de Servicios Web”.

3.5.1 Inclusión de SealSignBSSTypes y SealSignDSSTypes La definición del interface SealSignBSSFrontend.IDocumentProvider se encuentra dentro del ensamblado SealSignBSSTypes.dll. Es, por tanto, necesario incluir la referencia a SealSignBSSTypes.dll en el proyecto .NET del nuevo document provider.

Además, algunas de las clases usadas en este interfaz están definidas en la librería de definición de tipos de firma electrónica (SealSignDSSTypes.dll). Será también necesario incluir la referencia a este ensamblado en el proyecto.

3.5.2 Implementación del interfaz Una vez añadidas las referencias a SealSignBSSTypes.dll y SealSignDSSTypes.dll, se deberá crear una clase con acceso público que implemente el interfaz SealSignBSSFrontend.IDocumentProvider.

using SealSignBSSFrontend; public class PDFTestProvider : IDocumentProvider { . . .

Page 14: Integración de SealSign BSS en aplicaciones Windows 10

Guía de integración de SealSign BSS (Biometric Signature Services) en Aplicaciones Windows 10

V.3.2 – Octubre 2016

2016 © Telefónica Digital España, S.L.U. Todos los derechos reservados. Página 14 de 17

3.5.3 Obtención del documento y de los parámetros de firma El primer método del interfaz IDocumentProvider es el método de obtención del documento y los parámetros de firma que se aplicarán en la operación (GetSigningDocument). Con los parámetros de entrada especificados desde el cliente de firma (uri y providerParameter), el document provider deberá acceder al repositorio documental, obtener el documento que va a ser firmado y retornar tanto el documento como los parámetros de firma que se aplicarán.

El siguiente ejemplo muestra el código de un document provider que accede al sistema de ficheros del servidor y obtiene el documento especificado en la uri que se indicó desde la aplicación cliente:

public Stream GetSigningDocument(string uri,

string providerParameter,

out SignatureProfile signatureProfile,

out BiometricSignatureType biometricSignatureType,

out BiometricSignatureFlags biometricOptions,

out BiometricSignatureParameters biometricParameters,

out SignatureFlags options,

out SignatureParameters parameters,

out byte[] detachedSignature)

{

// Signature parameters specification

signatureProfile = SignatureProfile.PDF;

biometricSignatureType = BiometricSignatureType.Default;

biometricOptions = BiometricSignatureFlags.Default;

biometricParameters = null;

options = SignatureFlags.Default;

parameters = null;

detachedSignature = null;

biometricParameters = new BiometricSignatureParameters();

biometricParameters.imageParameters = new BiometricImageParameters();

biometricParameters.imageParameters.signatureVisible = true;

biometricParameters.imageParameters.onAllPages = true;

biometricParameters.imageParameters.offsetX = 370;

biometricParameters.imageParameters.offsetY = 220;

biometricParameters.imageParameters.height = 80;

biometricParameters.imageParameters.width = 100;

// Getting document using uri parameter

Uri documentUri = new Uri(uri);

return new FileStream(documentUri.LocalPath, FileMode.Open, FileAccess.Read);

}

3.5.4 Almacenamiento del documento firmado El segundo método del interfaz IDocumentProvider es el método de almacenamiento del documento, una vez realizada la operación de firma (SetSignedDocument). Con los parámetros de entrada especificados desde el cliente de firma (uri y providerParameter), el document provider podrá acceder al repositorio documental para almacenar el documento tras haber sido firmado.

Page 15: Integración de SealSign BSS en aplicaciones Windows 10

Guía de integración de SealSign BSS (Biometric Signature Services) en Aplicaciones Windows 10

V.3.2 – Octubre 2016

2016 © Telefónica Digital España, S.L.U. Todos los derechos reservados. Página 15 de 17

El siguiente ejemplo muestra el código de un document provider que accede al sistema de ficheros del servidor y almacena el documento a partir de la uri que se especificó desde la aplicación cliente:

public void SetSignedDocument(string uri, string providerParameter, Stream document) { // Storing signed document using uri parameter

Uri documentUri = new Uri(uri); FileStream outputStream = new FileStream(documentUri.LocalPath+".bio.signed.pdf",

FileMode.Create, FileAccess.ReadWrite); byte[] buffer = new byte[16 * 1024];

int read; while ((read = document.Read(buffer, 0, buffer.Length)) > 0) {

outputStream.Write(buffer, 0, read); } outputStream.Flush(); outputStream.Close();

document.Close();

}

Page 16: Integración de SealSign BSS en aplicaciones Windows 10

Guía de integración de SealSign BSS (Biometric Signature Services) en Aplicaciones Windows 10

V.3.2 – Octubre 2016

2016 © Telefónica Digital España, S.L.U. Todos los derechos reservados. Página 16 de 17

4 Recursos

Para información acerca de los distintos servicios de SealSign puede accederse a esta dirección: https://www.elevenpaths.com/es/tecnologia/sealsign/index.html

Además en el blog de ElevenPaths es posible encontrar artículos interesantes y novedades acerca de este producto.

Puede encontrarse más información acerca de los productos de Eleven Paths en YouTube, en Vimeo y en Slideshare.

Page 17: Integración de SealSign BSS en aplicaciones Windows 10

Guía de integración de SealSign BSS (Biometric Signature Services) en Aplicaciones Windows 10

V.3.2 – Octubre 2016

2016 © Telefónica Digital España, S.L.U. Todos los derechos reservados. Página 17 de 17

La información contenida en el presente documento es propiedad de Telefónica Digital España, S.L.U. (“TDE”) y/o de cualquier otra entidad dentro del Grupo Telefónica o sus licenciantes. TDE y/o cualquier compañía del Grupo Telefónica o los licenciantes de TDE se reservan todos los derechos de propiedad industrial e intelectual (incluida cualquier patente o copyright) que se deriven o recaigan sobre este documento, incluidos los derechos de diseño, producción, reproducción, uso y venta del mismo, salvo en el supuesto de que dichos derechos sean expresamente conferidos a terceros por escrito. La información contenida en el presente documento podrá ser objeto de modificación en cualquier momento sin necesidad de previo aviso.

La información contenida en el presente documento no podrá ser ni parcial ni totalmente copiada, distribuida, adaptada o reproducida en ningún soporte sin que medie el previo consentimiento por escrito por parte de TDE.

El presente documento tiene como único objetivo servir de soporte a su lector en el uso del producto o servicio descrito en el mismo. El lector se compromete y queda obligado a usar la información contenida en el mismo para su propio uso y no para ningún otro.

TDE no será responsable de ninguna pérdida o daño que se derive del uso de la información contenida en el presente documento o de cualquier error u omisión del documento o por el uso incorrecto del servicio o producto. El uso del producto o servicio descrito en el presente documento se regulará de acuerdo con lo establecido en los términos y condiciones aceptados por el usuario del mismo para su uso.

TDE y sus marcas (así como cualquier marca perteneciente al Grupo Telefónica) son marcas registradas. TDE y sus filiales se reservan todo los derechos sobre las mismas.

PUBLICACIÓN:

Octubre 2016

En ElevenPaths pensamos de forma diferente cuando hablamos de seguridad. Liderados por Chema Alonso, somos un equipo de expertos con inquietud para replantearnos la industria y gran experiencia y conocimiento en el sector de la seguridad. Dedicamos toda nuestra experiencia y esfuerzos en crear productos innovadores para que la vida digital sea más segura para todos.

La evolución de las amenazas de seguridad en la tecnología es cada vez más rápida y constante. Por eso, desde junio de 2013, nos hemos constituido como una start-up dentro de Telefónica para trabajar de forma ágil y dinámica, y ser capaces de transformar el concepto de seguridad anticipándonos a los futuros problemas que afecten a nuestra identidad, privacidad y disponibilidad online.

Con sede en Madrid, estamos presentes también en Londres, EE.UU, Brasil, Argentina, y Colombia.

TIENES ALGO QUE CONTARNOS, PUEDES HACERLO EN:

elevenpaths.com Blog.elevenpaths.com @ElevenPaths Facebook.com/ElevenPaths YouTube.com/ElevenPaths