2016-05-26 14 views
0

Da rund 100 Blöcke einer einzelnen XML-Datei durch eine Schleife Unterzeichnung bekam Ich habe einen Fehler von Server:Wie richtige RSAPKCS1SHA256SignatureDescription mit A3 Ceritificate verwenden?

"The value of the 'Algorithm' attribute does not equal its fixed value."

So der Server erwartet wird:

<SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" />

statt von:

<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />

Researching ich gefunden habe, dass die Lösung würde die rigth Funktion das Hinzufügen:

string signatureRSAMethod = @"http://www.w3.org/2001/04/xmldsig-more#rsa-sha256";

signer.SignedInfo.SignatureMethod = signatureRSAMethod;

Dann eine Ausnahme apear:

SignatureDescription could not be created for the signature algorithm supplied

wieder die Lösung Zugabe würde die Codezeile:

CryptoConfig.AddAlgorithm(typeof(RSAPKCS1SHA256SignatureDescription), signatureRSAMethod); 

Schließlich wurde die Datei versengt und gesendet, aber, leider bei einem zweiten Versuch, war der private Schlüssel von meinem Zertifikat verschwunden, da er bisher 3 war, zwei Karten mit Lesern und ein Token. Jedenfalls bin ich verdächtig, dass etwas gegen eine Sicherheitsregel verstößt, die den privaten Schlüssel verschwinden lässt. Benutze ich es falsch?

Antwort

0

Ich habe herausgefunden, dass ich nur auf die CryptoConfig Einsen hinzufügen muss, also nahm ich die Zeile unten aus der Schleife und legte es auf Formular zeigen, dass es mein Problem gelöst.

CryptoConfig.AddAlgorithm (typeof (RSAPKCS1SHA256SignatureDescription), signatureRSAMethod);