PERMISO Y EXENCIÓN DE RESPONSABILIDAD En este sitio web aparecen programas que pueden ser descargados. Estos programas están sujetos a derechos de reproducción y su dueño reclama derecho exclusivo sobre estos programas. El propietario de los programas que usted se descarga en este sitio web puede aparecer indicado en los ficheros READ-ME o dentro del código fuente. Por esta nota se permite el uso, copia, modificación y distribución de estos programas y su código fuente para uso no comercial y sin pago alguno, siempre que el dueño de los derechos u otras personas que contribuyan no se usen con fines publicitarios sin un previo permiso por escrito. El dueño de los derechos y las personas que han contribuido no garantizan que estos programas sean apropiados para uso alguno. Estos programas se distribuyen "tal cual" sin garantía explícita o implícita, incluyendo sin limitación las garantías implícitas de comerciabilidad y adecuación a un uso especifico. En ningún caso, el autor y los que han contribuido a estos programas, serán responsables de ningún daño directo, indirecto, incidental, especial, punitivo o consecuente causados por los programas (incluyendo sin limitación la pérdida de uso, datos, ganancias o interrupción de negocios) sea cual fuera su causa y bajo cualquier teoría de responsabilidad. AcceptCancel
Este ejemplo tiene como objetivo validar el estado de un certificado mediante el servicio de validación de TrustedX. A continuación se describen los pasos a seguir para crear una petición de validación.
Para poder probar este ejemplo se debe descargar el archivo sampleSW1.zip y seguir las instrucciones que se encuentran en Configuración del entorno. El archivo descargado contiene el código de ejemplo y los archivos necesarios, en este caso el certificado a validar.
En primer lugar en el ejemplo se definen las constantes necesarias. En la API usada se integra una clase con definiciones públicas de constantes internas que pueden ser referenciadas libremente. Las constantes que se deben definir para el ejemplo incluyen el lugar dónde se encuentra el certificado a validar, los parámetros de autenticación y la dirección dónde se encuentra la plataforma TrustedX a la que se invocaran los servicios.
private static final String path_in = "data/input/";
private static final String filename = "dave.crt";
private static final String user = "dave";
private static final String password = "trustedx";
private static final String host = "https://labs.safelayer.com/demo/services/SignatureVerify";
Para realizar una petición de validación de certificado se debe crear un objeto SmartVerifyRequest que contendrá la petición al host destino.
SmartVerifyRequest svr = new SmartVerifyRequest(host);
También es necesario incluir las credenciales de autenticación, en este caso mediante nombre de usuario y contraseña en claro. En todos los ejemplos se utiliza está forma de autenticación.
SmartHeader sh = new SmartHeader();
sh.setUsername(user);
sh.setPassword(password);
svr.setHeader(sh);
Se debe definir el perfil que se va a usar dentro del servicio de validación de TrustedX, en este caso certstatus.
svr.setProfile(Constants.Profile.CERTSTATUS);
Finalmente se añaden los datos del certificado a validar en Base64, indicando que se trata de un certificado firmado. En estas instrucciones se utiliza la clase Util que implementa funciones para leer el contenido de los distintos archivos necesarios.
svr.setSignatureBase64(Util.readBinaryFileB64(path_in + filename));
svr.setSignatureBase64Type(Constants.SignatureType.CERTIFICATE);
Una vez se han introducido todos los datos en la petición se invoca la método send() que envía la petición al host y recoge la respuesta en un objeto SmartVerifyResponse.
SmartVerifyResponse svrs = svr.send();
A continuación se puede comprobar si la petición se ha enviado correctamente consultando los parámetros de la respuesta. Para ello usaremos las funciones de la clase auxiliar UtilTrustedX.
if (UtilTrustedX.checkSW(svrs.getResultMajor(), svrs.getResultMinor(), svrs.getResultMessage())) {
UtilTrustedX.printResponse(svrs);
for (int other = 0; other < svrs.getNumberVerifyResponses(); other++) {
UtilTrustedX.printResponse(svrs.getOtherResponse(other));
}
}
Finalmente después de probar este código se obtendrá el resultado de la ejecución, en particular se consultan los valores de los atributos ResultMajor y ResultMinor que indican si la petición se ha procesado correctamente mediante los valores Success y ValidSignature_OnAllDocuments para este ejemplo en particular.
** RESPONSE **
---------------------
Signature num 0
---------------------
** Certificate **
Major: urn:oasis:names:tc:dss:1.0:resultmajor:Success
Minor: urn:oasis:names:tc:dss:1.0:resultminor:ValidSignature_OnAllDocuments
DN: CN=Dave, OU=Demo, O=TrustedX, C=ES
Issuer Trust Level: 0
Issuer Trust Label: Administration
Además, existe la posibilidad de que una respuesta de validación de certificados retorne otros valores de información opcionales. Algunos de ellos, se añaden debido a que han sido seleccionados previamente, en la política de firma utilizada en la propia consola de administración del producto TrustedX. Otros en cambio, son esperados en una respuesta si se han pedido explícitamente en la petición correspondiente.
En este caso se obtiene información sobre el firmante y el nivel de confianza del mismo.
Para pedir información adicional se pueden usar métodos como setAddCertificateValues() o setAddRevocationValues(), indicando en que formato se quieren recuperar estos valores. |