none
Erreur de signature signedXml selon les certificats RRS feed

  • Question

  • La fonction de signature signedXml.ComputeSignature() retourne une erreur selon le type de certificat utilisé en .NET 2.0:

    SignedXml signedXml = new SignedXml();
    signedXml.SigningKey = cert.PrivateKey; // cert est le certificat X509Certificate2  utilisé
    Reference reference = new Reference();
    reference.Uri = URIString; // la référence sur le fichier à signer
    signedXml.AddReference(reference);
    KeyInfo keyInfo = new KeyInfo();
    KeyInfoX509Data kdata = new KeyInfoX509Data(cert);
    keyInfo.AddClause(kdata);
    signedXml.KeyInfo = keyInfo;
    signedXml.ComputeSignature();

    L'erreur remontée est:

    « Hash non valide pour l’utilisation dans cet état »

     

    La trace de l’exception est la suivante :

    à System.Security.Cryptography.CryptographicException.ThrowCryptogaphicException(Int32 hr)

       à System.Security.Cryptography.Utils._SignValue(SafeKeyHandle hKey, Int32 keyNumber, Int32 calgKey, Int32 calgHash, Byte[] hash, Int32 dwFlags)

       à System.Security.Cryptography.RSACryptoServiceProvider.SignHash(Byte[] rgbHash, String str)

       à System.Security.Cryptography.RSAPKCS1SignatureFormatter.CreateSignature(Byte[] rgbHash)

       à System.Security.Cryptography.AsymmetricSignatureFormatter.CreateSignature(HashAlgorithm hash)

       à System.Security.Cryptography.Xml.SignedXml.ComputeSignature()

       à FileSignatureLibrary.FileSignature.SignerXMLRessourceDetachee(String URIString, String XmlSigFileName, X509Certificate2 cert, String& msgErreur)

     

    Cette erreur survient seulement lors de l'utilisation d'un certificat ChamberSign sur clé USB Cyberflex e-gate 32K Axalto.

    Quand la clé n'est pas présente, la fonction demande l'insertion d'une carte à puce, ce qui tend à démontrer que c'est bien le certificat sur la clé qui est accédé.

     

    L'utilisation d'autres fonctions .NET comme RSACryptoServiceProvider.SignData() provoque la même erreur

     

    Any Ideas?

     

     

    mercredi 21 novembre 2007 16:46