Come verificare una firma digitale XML in Cocoa?
-
05-10-2019 - |
Domanda
Ho un C # applicazione che firma digitale utilizza XML per firmare i file di licenza. Ho usato l'approccio standard di Microsoft ha descritto qui .
sto porting dell'applicazione al MAC e la necessità di verificare la firma. La mia domanda generale è il modo migliore per fare questo?
Questo è quello che ho fatto:
-
Ho usato macport installare biblioteca xmlsec1 di Aleksey.
-
Utilizzato biblioteca Chilkat per convertire la mia chiave pubblica XML in un file PEM
Chilkat.PublicKey pubkey = new Chilkat.PublicKey (); pubKey.LoadXml (publicKeyXml); pubKey.SaveOpenSslPemFile ( "publicKey.pem");
-
Compilato e ha eseguito il programma di esempio alekseys. Vedere ( http://www.aleksey.com/xmlsec/ API / xmlsec-verify-con-key.html ) per verificare un dsig XML.
Risultato: i miei file di licenza non riescono a convalidare. La chiamata a xmlSecDSigCtxVerify esito negativo con lo stato = sconosciuto. Ora per la mia domanda specifica: Cosa posso fare successivo
?Geoff
Soluzione
La soluzione è stata quella di definire qui di seguito:
\#define XMLSEC_NO_SIZE_T
prima di includere qualsiasi file di intestazione xmlsec. In caso contrario, il tipo xmlSecSize sarà definito in modo diverso a quando il programma è stato costruito su Mac e la struttura xmlSecDSigCtx apparirà corrotto alla biblioteca. Vedere xmlsec.h per maggiori dettagli.