2010-05-29 7 views
1

J'ai une application C# qui utilise des signatures numériques XML pour signer des fichiers de licence. J'ai utilisé l'approche Microsoft standard décrite here.Comment vérifier une signature numérique XML dans Cocoa?

Je suis en train de porter l'application sur le MAC et j'ai besoin de vérifier la signature. Ma question générale est de savoir comment faire cela?

Voici ce que je l'ai fait:

  • Je l'ai utilisé MacPort installer la bibliothèque xmlsec1 de Aleksey.

  • occasion 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 exécuté le programme d'exemple alekseys. Voir (http://www.aleksey.com/xmlsec/api/xmlsec-verify-with-key.html) pour vérifier un XML dsig.

Résultat: mes fichiers de licence ne parviennent pas à valider. L'appel à xmlSecDSigCtxVerify échoue avec status = unknown. Maintenant, pour ma question spécifique: Que puis-je faire ensuite?

Geoff

Répondre

3

La solution a consisté à définir ci-dessous:

\#define XMLSEC_NO_SIZE_T 

avant d'inclure tous les fichiers d'en-tête xmlsec. Sinon, le type xmlSecSize sera défini différemment de quand le programme a été construit sur le Mac et la structure xmlSecDSigCtx apparaîtra corrompue dans la bibliothèque. Voir xmlsec.h pour plus de détails.

Questions connexes