Creo que estás preguntando cómo generar una respuesta de marca de tiempo como se define en el protocolo de marca de tiempo: RFC3161 , con openssl
para generar y firmar la respuesta utilizando un PKCS#11
(HSM en su caso) como firmante de TSA.
Creo que no hay una forma nativa de usar PKCS#11
con openssl
para hacer esto. (Tal vez con algún complemento como: opensc pkcs11 engine para openssl ).
Si echa un vistazo a la documentación del comando ts
: enlace . Para generar una respuesta de marca de tiempo, puede utilizar el siguiente comando:
openssl ts -reply [-config configfile] [-section tsa_section] [-queryfile request.tsq] [-passin password_src] [-signer tsa_cert.pem] [-inkey private.pem] [-chain certs_file.pem] [-policy object_id] [-in response.tsr] [-token_in] [-out response.tsr] [-token_out] [-text] [-engine id]
El certificado de firmante de TSA y la clave privada se especifican en los siguientes parámetros que especifican que ambos deben estar en formato PEM, por lo que parece que no es posible usar PKCS#11
.
-signer tsa_cert.pem
El certificado de firmante de la TSA en formato PEM. El certificado de firma TSA debe tener asignado exactamente un uso de clave extendida: timeStamping. El uso extendido de la clave también debe ser crítico, de lo contrario el certificado será rechazado. Anula la variable signer_cert del archivo de configuración. (Opcional)
-inkey private.pem
La clave privada firmante de la TSA en formato PEM. Anula la opción de archivo de configuración signer_key. (Opcional)
Sin embargo, como he comentado antes, puede ser posible usar opensc pkcs11 engine
para openssl, no puedo confirmar si funciona porque no estoy familiarizado con su motor. Echa un vistazo a esta guía de inicio rápido que puede ponerte en la dirección correcta.
Espero que esto ayude,