Online Store
Mar 12

Verificador de certificados digitales – API de servicios web RESTful

Verificador de certificados digitales, API de servicios web RESTful

[ES] Manual
 
de usuario "X.509 verifier" es un servicio web RESTful que puede servir para validar los certificados X.509 y los archivos PDF firmados, así como para verificar el cumplimiento del contenido de los certificados con la legislación de la República de Serbia.
El servicio web RESTful "X.509 verifier" consta de 2 API REST ubicadas en el host:
http://signatureverifier.d-logic.com
y las rutas de los scripts son:

  1. /x509-verificador.php
  2. /pdf-sgn-verifier.php

 

API de REST: x509-verifier

Versión de la API: 1.0

El archivo PEM, cuyo contenido debe ser un certificado X.509 de la versión 3, se envía a esta API. Después de comprobar el certificado, la API devuelve el resultado de la verificación en la cadena codificada JSON.

Solicitud de servidor HTTP

Host + Ruta: http://signatureverifier.d-logic.com/x509-verifier.php
Método:
Encabezados POST (obligatorio):
Content-Type: multipart/form-data; boundary=RANDOM_STRING_BOUNDARY
Body:
 
–RANDOM_STRING_BOUNDARY
Content-Disposition: form-data; name="file"; filename="file_name.pem"
Content-Type: application/octet-stream
 
[FILE_BINARY_DATA]
— RANDOM_STRING_BOUNDARY
Content-Disposition: form-data; name="query"
 
[JSON_ENCODED_PARAMETERS]
–RANDOM_STRING_BOUNDARY–
{END}
 

Descripción de la solicitud del servidor HTTP

RANDOM_STRING_BOUNDARY es una cadena que debe tener un valor diferente y, si es posible, único en cada nueva solicitud. Por ejemplo, en JavaScript, una buena práctica para adquirir RANDOM_STRING_BOUNDARY sería:

var boundary = Math.random().toString().substr(2);

 
[FILE_BINARY_DATA] es un contenido binario del archivo 'file_name.pem' elegido.
 
[JSON_ENCODED_PARAMETERS] son parámetros codificados en JSON que deben cumplir con el siguiente formato:

{
"operación": "verificar",
"user_id": 123,
"security_token": ""
}

y la buena práctica es que esta cadena codificada JSON no contenga caracteres de espacio en blanco, es decir, que se forme, en JavaScript, por ejemplo, utilizando el siguiente código:

var params, json;
params= { operación: "verificar", user_id: 123, security_token: "" };
json = JSON.stringify(parámetros);

 
Los parámetros son:
"operation": "verify" – Operation "verify" es la única operación actualmente admitida.
"user_id": 123 parámetro numérico, tipo entero, representa el número de identificación del usuario (no se utiliza en la versión 1.0 de la API, pero es obligatorio y reservado para el uso futuro). En la api la versión 1.0 puede ser 0.
"security_token": " – cadena que debe contener pares de dígitos hexadecimales sin el llamado delimitador (no se utiliza en la versión 1.0 de la API, pero es obligatoria y reservada para el uso futuro). En la versión 1.0 de la API puede ser una cadena vacía.
De todos modos, en JavaScript, no es necesario administrar directamente el Contenido, es decir, el cuerpo HTTP. Recomendamos usar la clase FormData como ejemplo que puede descargar del repositorio git en la siguiente URL:
/code/NFC-RFID-reader-SDK/signature_verifier_jc_example.git
También hay ejemplos de cómo usar la compatibilidad con cURL desde PHP para enviar solicitudes a estas API REST:
/code/digital_signature_sdk/php_example.git

 

Respuesta del servidor HTTP

Después de la verificación del certificado X.509, el servidor devolverá la cadena codificada JSON que (en la versión 1.0 de la API) contiene 2 argumentos:

{"status":"STATUS_STRING","msg":"MESSAGE_STRING"}

 
En una solicitud no válida, la respuesta del servidor será:

HTTP/1.1 200 OK
Tipo de contenido: Application/JSON

 

{"status":"Error: parámetros POST incorrectos.","msg":""}

 
Si la verificación es exitosa, STATUS_STRING debe ser:

"De acuerdo"

 
mientras que el MESSAGE_STRING contendrá un registro con formato válido, que contiene etiquetas de formato HTML, así como etiquetas HTML para una nueva línea, por lo que este mensaje se puede colocar directamente en cualquier contenedor HTML (por ejemplo, <div>).
 
Cualquier respuesta cuyo STATUS_STRING sea diferente de "OK" se cuenta como una comprobación cuyo resultado no se realiza correctamente y, en este caso, si STATUS_STRING es diferente del "Error: parámetros POST incorrectos.", MESSAGE_STRING contendrá detalles del escrutinio del certificado que debe mostrarse.

 

API REST: pdf-sgn-verifier

Versión de la API: 1.0

El archivo PDF, cuyo contenido debe ser un documento PDF firmado, se envía a esta API. Los formatos de firma pueden ser "PKCS#7 – Detached" o "CAdES Equivalent". Después de comprobar el archivo firmado, la API devuelve el resultado de la verificación en la cadena codificada JSON.

Solicitud de servidor HTTP

Host + Ruta: http://signatureverifier.d-logic.com/pdf-sgn-verifier.php
Método:
Encabezados POST (obligatorio):
Content-Type: multipart/form-data; boundary=RANDOM_STRING_BOUNDARY
Body:
 
–RANDOM_STRING_BOUNDARY
Content-Disposition: form-data; name="file"; filename="file_name.pdf"
Content-Type: application/pdf
 
[FILE_BINARY_DATA]
–RANDOM_ STRING_BOUNDARY
Content-Disposition: form-data; name="query"
 
[JSON_ENCODED_PARAMETERS]
–RANDOM_STRING_BOUNDARY–
{END}

 

Descripción de la solicitud del servidor HTTP

RANDOM_STRING_BOUNDARY es una cadena que debe tener un valor diferente y, si es posible, único en cada nueva solicitud. Por ejemplo, en JavaScript, una buena práctica para adquirir RANDOM_STRING_BOUNDARY sería:

var boundary = Math.random().toString().substr(2);

 
[FILE_BINARY_DATA] es un contenido binario del archivo 'file_name.pdf' elegido.
 
[JSON_ENCODED_PARAMETERS] son parámetros codificados en JSON que deben cumplir con el siguiente formato:

{
"operación": "verificar",
"user_id": 123,
"security_token": ""
}

y la buena práctica es que esta cadena codificada JSON no contenga caracteres de espacio en blanco, es decir, que se forme, en JavaScript, por ejemplo, utilizando el siguiente código:

var params, json;
params= { operación: "verificar", user_id: 123, security_token: "" };
json = JSON.stringify(parámetros);

 
Los parámetros son:
"operation": "verify" – Operation "verify" es la única operación actualmente admitida.
"user_id": 123 parámetro numérico, tipo entero, representa el número de identificación del usuario (no se utiliza en la versión 1.0 de la API, pero es obligatorio y reservado para el uso futuro). En la api la versión 1.0 puede ser 0.
"security_token": " – cadena que debe contener pares de dígitos hexadecimales sin el llamado delimitador (no se utiliza en la versión 1.0 de la API, pero es obligatoria y reservada para el uso futuro). En la versión 1.0 de la API puede ser una cadena vacía.
De todos modos, en JavaScript, no es necesario administrar directamente el Contenido, es decir, el cuerpo HTTP. Recomendamos usar la clase FormData como ejemplo que puede descargar del repositorio git en la siguiente URL:
/code/NFC-RFID-reader-SDK/signature_verifier_jc_example.git
También hay ejemplos de cómo usar la compatibilidad con cURL desde PHP para enviar solicitudes a estas API REST:
/code/digital_signature_sdk/php_example.git

 

Respuesta del servidor HTTP

Después de la verificación del archivo PDF y contiene la firma, el servidor devolverá la cadena codificada JSON que (en la versión 1.0 de la API) contiene 2 argumentos:

{"status":"STATUS_STRING","msg":"MESSAGE_STRING"}

 
En una solicitud no válida, la respuesta del servidor será:

HTTP/1.1 200 OK
Tipo de contenido: Application/JSON

 

{"status":"Error: parámetros POST incorrectos.","msg":""}

 
Si la verificación es exitosa, STATUS_STRING debe ser:

"La firma PDF es VÁLIDA"

 
mientras que el MESSAGE_STRING contendrá un registro con formato válido, que contiene etiquetas de formato HTML, así como etiquetas HTML para una nueva línea, por lo que este mensaje se puede colocar directamente en cualquier contenedor HTML (por ejemplo, <div>).
 
A diferencia de la API x509-verifier, aquí tenemos respuestas con STATUS_STRING diferentes de la "La firma PDF es VÁLIDA", que contó como un resultado de verificación fallido, pero en estos casos, MESSAGE_STRING no contiene detalles. Estos son los casos en que:

STATUS_STRING = "Error: ¡PDF se cambió después de firmar!"
STATUS_STRING = "Error: formato PDF incorrecto (al buscar datos de firma)"
STATUS_STRING = "Información: el archivo PDF no contiene firma digital"
STATUS_STRING = "Error: Formato PKCS#7 incorrecto (faltan datos "para firmar")"

 
El caso cuando es

STATUS_STRING = "Error en la validación de la firma digital"

lo que significa que es una verificación del archivo PDF y contiene la firma completamente completada , pero el resultado no tiene éxito. En este caso, los MESSAGE_STRING siempre contienen detalles del escrutinio que deben mostrarse. En este caso, MESSAGE_STRING contendrá un registro con formato válido, que contiene etiquetas de formato HTML, así como etiquetas HTML para una nueva línea, por lo que este mensaje se puede colocar directamente en cualquier contenedor HTML (por ejemplo, <div>).

Apéndice: "Restlet Client" – Archivos exportados de la extensión del navegador Google Chrome:

La parte adjunta de este manual también incluye archivos JSON que contienen perfiles para la extensión "Google Chrome" "Restlet Client". Estos archivos son x509-verifier.json y pdf-sgn-verifier.json y contienen perfiles para las API de REST x509-verifier y pdf-sgn-verifier respectivamente. Se pueden usar después de instalar las extensiones "Restlet client" "Google Chrome".
 
"Restlet Client" tiene un error conocido que se manifiesta siempre, al cargar el perfil, cambiar el tipo de parámetro de forma del cuerpo de "Archivo" a "Texto". La solución es cambiar el tipo cambiado a "Archivo" y luego elegir el archivo deseado.

PÁGINA DE INICIO

[/ vc_column_text] [/ vc_column]

PRODUCTOS DE HARDWARE

[/ vc_column_text] [/ vc_column]

SDK SOFTWARE

[/ vc_column_text] [/ vc_column] [/ vc_row]