Firma digital de archivos TXT
Publicado por Salva (1 intervención) el 09/10/2008 19:04:46
Utilizo Delphi 6.
Necesito pasar como parámetro de un web service el contenido un archivo TXT con firma digital de un certificado seleccionado.
Utilizo la librería CAPICOM.DLL de Microsoft. Este es la la parte del código que, presumiblemente, me da el texto firmado.
Store:=CoStore.Create;
Store.Open(CAPICOM_CURRENT_USER_STORE,'My', CAPICOM_STORE_OPEN_READ_ONLY);
sd := CoSignedData.Create;
sd.Content:=STRING(Datos);
signer:=CoSigner.Create;
signer2:=signer as ISigner2;
signedData := sd.Sign(signer2, False,CAPICOM_ENCODE_BASE64);
Presumiblemente, en signedData debería tener el contenido del TXT firmado. Sin embargo el servicio web me responde con un mensaje de error de que no contiene lo que se espera.
Si capturo el SOAP que estoy enviando, puedo ver que se está enviando la información. Entonces, no estoy seguro de si lo estoy haciendo mal desde la aplicación cliente (que es la que envía) o es el servicor web que no interpreta correctamente la información enviada.
Agradecería mucho si alguien me pudiese echar una mano en esta cuestión.
Salva
Necesito pasar como parámetro de un web service el contenido un archivo TXT con firma digital de un certificado seleccionado.
Utilizo la librería CAPICOM.DLL de Microsoft. Este es la la parte del código que, presumiblemente, me da el texto firmado.
Store:=CoStore.Create;
Store.Open(CAPICOM_CURRENT_USER_STORE,'My', CAPICOM_STORE_OPEN_READ_ONLY);
sd := CoSignedData.Create;
sd.Content:=STRING(Datos);
signer:=CoSigner.Create;
signer2:=signer as ISigner2;
signedData := sd.Sign(signer2, False,CAPICOM_ENCODE_BASE64);
Presumiblemente, en signedData debería tener el contenido del TXT firmado. Sin embargo el servicio web me responde con un mensaje de error de que no contiene lo que se espera.
Si capturo el SOAP que estoy enviando, puedo ver que se está enviando la información. Entonces, no estoy seguro de si lo estoy haciendo mal desde la aplicación cliente (que es la que envía) o es el servicor web que no interpreta correctamente la información enviada.
Agradecería mucho si alguien me pudiese echar una mano en esta cuestión.
Salva
Valora esta pregunta
0