Descodificación de datos firmados
El siguiente proceso general descodifica un tipo de datos firmado .
Para descodificar un mensaje firmado
- Obtenga un puntero al BLOB codificado.
- Llame a CryptMsgOpenToDecode y pase los argumentos necesarios.
- Llame a CryptMsgUpdate una vez, pasando el identificador recuperado en el paso 2 y un puntero a los datos que se van a descodificar. Esto hace que se realicen las acciones adecuadas en el mensaje, en función del tipo de mensaje.
- Llame a CryptMsgGetParam, pasando el identificador recuperado en el paso 2 y los tipos de parámetro adecuados para acceder a los datos descodificados. Por ejemplo, pase CMSG_CONTENT_PARAM para obtener un puntero al contenido descodificado.
El siguiente proceso general comprueba la firma de un mensaje descodificado y firmado.
Para comprobar la firma de un mensaje descodificado y firmado
- Llame a CryptMsgGetParam, pasando el identificador de mensaje y CMSG_SIGNER_CERT_INFO_PARAM para obtener el CERT_INFO del firmante del mensaje.
- Llame a CertOpenStore para abrir un almacén temporal inicializado con los certificados del mensaje.
- Llame a CertGetSubjectCertificateFromStore para obtener el CERT_INFO del firmante de los certificados incluidos en el mensaje.
- Llame a CryptMsgControl y pase CMSG_CTRL_VERIFY_SIGNATURE para comprobar las firmas.
- Llame a CryptMsgClose para cerrar el mensaje.
El resultado de estos procedimientos es que se comprueba la firma y se recupera un puntero al contenido del mensaje descodificado obtenido en el paso 4 del procedimiento para descodificar un mensaje firmado.
Para obtener detalles de codificación de C, vea Programa C de ejemplo: Firma, Codificación, Descodificación y Comprobación de un mensaje.