Cómo verificar una firma digital XML en Cocoa?
-
05-10-2019 - |
Pregunta
Tengo una aplicación de C # que utiliza XML firmas digitales para firmar los archivos de licencia. He utilizado el método estándar de Microsoft describe aquí .
Estoy portar la aplicación a la MAC y la necesidad de verificar la firma. Mi pregunta general es la mejor manera de hacer esto?
Esto es lo que he hecho:
-
He usado MacPort para instalar la biblioteca xmlsec1 Aleksey.
-
Se utiliza la biblioteca Chilkat convertir mi clave pública XML en un archivo PEM
Chilkat.PublicKey pubkey = new Chilkat.PublicKey (); pubKey.LoadXml (publicKeyXml); pubKey.SaveOpenSslPemFile ( "publicKey.pem");
-
Compilado y corrió el programa de ejemplo alekseys. Ver ( http://www.aleksey.com/xmlsec/ api / xmlsec-verificar-con-key.html ) para verificar un dsig XML.
Resultado: mis archivos de licencia no pueden validar. La llamada a xmlSecDSigCtxVerify falla con el estado = desconocido. Ahora mi pregunta específica: ¿Qué puedo hacer yo próxima
?Geoff
Solución
La solución fue definir a continuación:
\#define XMLSEC_NO_SIZE_T
antes de incluir cualquiera de los archivos de cabecera xmlsec. De lo contrario el tipo xmlSecSize se define de manera diferente a cuando el programa se basa en el Mac y la estructura xmlSecDSigCtx aparecerá corrompido a la biblioteca. Ver xmlsec.h para más detalles.