Ver Mensaje Individual
  #53  
Antiguo 17-10-2007
javigh javigh is offline
Miembro
 
Registrado: may 2007
Posts: 10
Reputación: 0
javigh Va por buen camino
Cita:
Empezado por socger Ver Mensaje
No se exáctamente que es lo que necesitas.
Pero no me importaría poderte hechar un cable con lo que he ido avanzando.

Si quieres contactar diréctamente conmigo mi cuenta de correo es socger@hotmail.com

Saludos
Bueno, lo que necesito es verificar que los datos son correctos y no han sido modificados. En el caso de la tarjeta del conductor la firma de una zona concreta de datos empieza con la cabecera con Tipo = 0x01. Pero para verificar esa firma primero hace falta saber la clave pública del aparato que ha firmado los datos (en este caso, de la tarjeta), y para saber eso hace falta saber la clave pública de la CA y para saber eso se necesita la clave pública EUR.PK. Con la clave EUR.PK se verifica el certificado MemberStateCertificate y se saca ES.PK en nuestro caso. Y con la ES.PK se saca la clave pública de la tarjeta a partir del CardCertificate. Una vez que se tiene la clave pública de la tarjeta, se hace el Hash de los datos, se desencripta la firma (dándonos el hash calculado en la creación) y ambos hash deberían coincidir.

Con los datos del tacógrafo es básicamente lo mismo, aunque el archivo no tiene el mismo formato que el archivo de la tarjeta del conductor, pero también tiene los dos certificados (MemberStateCertificate y VUCertificate) y una firma cada segmento de datos.

El proceso que hay que hacer sé cual es, pero no sé cómo conseguir la EUR.PK, ni si existe alguna librería en delphi que devuelva la clave pública de un certificado y que compruebe una firma ni nada...

Gracias por la ayuda!

Un Saludo.
Responder Con Cita