Comment vérifier une signature numérique XML à Cocoa?
-
05-10-2019 - |
Question
J'ai une application C # qui utilise des signatures numériques XML pour signer les fichiers de licence. Je l'ai utilisé l'approche standard Microsoft décrit .
Je suis le portage de l'application à la MAC et la nécessité de vérifier la signature. Ma question générale est la meilleure façon de le faire?
Voici ce que je l'ai fait:
-
Je l'ai utilisé MacPort installer la bibliothèque xmlsec1 de Aleksey.
-
Utilisé la bibliothèque Chilkat XML pour convertir ma clé publique dans un fichier PEM
Chilkat.PublicKey pubkey = new Chilkat.PublicKey (); pubKey.LoadXml (publicKeyXml); pubKey.SaveOpenSslPemFile ( "publicKey.pem");
-
Compilé et a couru le programme échantillon de alekseys. Voir ( http://www.aleksey.com/xmlsec/ api / xmlsec-vérifier avec-key.html ) pour vérifier un XML dsig.
Résultat: mes fichiers de licence ne parviennent pas à valider. L'appel à xmlSecDSigCtxVerify échoue avec l'état = inconnu. Maintenant, pour ma question spécifique: Que puis-je faire
?Geoff
La solution
La solution a consisté à définir ci-dessous:
\#define XMLSEC_NO_SIZE_T
avant d'inclure l'un des fichiers d'en-tête xmlsec. Dans le cas contraire sera défini le type xmlSecSize différemment au moment où le programme a été construit sur le Mac et la structure xmlSecDSigCtx apparaîtra corrompu à la bibliothèque. Voir xmlsec.h pour plus de détails.