私はRSA-SHA1アルゴリズムを使用してXML文書のノードの1つに署名(そして最終的に検証)する必要があります。 w3.org linkRSA-SHA1アルゴリズムを使用してXML要素に署名する方法は?
RSA-SHA1 URI:で指定
http://www.w3.org/2000/09/xmldsig#rsa-sha1
:
[XMLDSIG-CORE2002]の セクション6.4.2
私はthis exampleを、次の午前、しかし変更する方法を見つけ出すことはできません必要なアルゴリズム。
署名生成は、ここに起こる:
signedXml.ComputeSignature();
パラメータでのみオーバーライドKeyedHashAlgorithm
を期待:
public void ComputeSignature(KeyedHashAlgorithm macAlg);
(link)
KeyedHashAlgorithm
(link)順番にのみHMACを作成可能*とMAC *アルゴリズムであり、RSA-SHA1はありません。
.NETでRSA-SHA1を使用してXMLに署名する最も簡単な方法は何ですか?
編集:
私は鍵を抽出するために、X509証明書を使用しようとしています。証明書の署名アルゴリズムのプロパティはsha1RSA
です。
これは私はそれを割り当てるだ方法である:
var signedXml = new SignedXml(xmlDoc);
...
signedXml.SigningKey = (RSACryptoServiceProvider)cert.PrivateKey;
...
signedXml.ComputeSignature();
XML形式マッチが1つを期待結果の署名は、しかしながらdigest
とsignature
値は無効です。
@ user5226582 Ah、SignedXml.SignatureMethodは、書き込み可能なSignedXml.SignatureInfo.SignatureMethodの読み取り専用投影です。答えを修正しました。 – bartonjs
それは、多くのおかげで助けた! – user5226582