私はいくつかのXML
文書を持っていましたが、それぞれ個々のブロック/タグが約50から100個あり、SHA256を使って個別に歌ってWebサービスに送る必要があったので、下のc#
コードを使用して登録してください。XMLに署名する際にスマートカード/トークンから証明書が削除されました。それはどのように可能ですか?
突然私の秘密鍵がヌルになるまでサーバから「OK
」という応答があったとしても、WS
から禁止された匿名のログインメッセージが得られましたが、ほとんど私は私が別の証明書を取ったことを知っていませんでしたが、今度はUSBトークン1と同じ事が起きました.3回、4回はうまくいってからもう一度行ってしまいました!私は実際に何が起こっているのか、何がうまくいったのか分かりません!誰か手掛かりがありますか?ありがとう。
PS:それはsigner.ComputeSignature();
方法は今、パスワードの例外をその上求めていた作業を停止する前に:
var key = (RSACryptoServiceProvider)pCertificado.PrivateKey;
key.PersistKeyInCsp = false;
public string SignSHA256(string pDocument, string id, X509Certificate2 pCertificado)
{
string signatureCn14Transform = @"http://www.w3.org/TR/2001/REC-xml-c14n-20010315";
string signatureMethod = @"http://www.w3.org/2000/09/xmldsig-more#rsa-sha256";
string digestMethod = @"http://www.w3.org/2001/04/xmlenc#sha256";
string signatureReferenceURI = "#" + id;
CryptoConfig.AddAlgorithm(typeof(RSAPKCS1SHA256SignatureDescription), signatureMethod);
XmlDocument xmlDocToSign = new XmlDocument();
xmlDocToSign.LoadXml(pDocument);
SignedXml signer = new SignedXml(xmlDocToSign);
var key = (RSACryptoServiceProvider)pCertificado.PrivateKey;
key.PersistKeyInCsp = false;
signer.SigningKey = key;
signer.SignedInfo.SignatureMethod = signatureMethod;
Reference reference = new Reference();
reference.AddTransform(new XmlDsigEnvelopedSignatureTransform());
XmlDsigExcC14NTransform cn14Transform = new XmlDsigExcC14NTransform();
cn14Transform.Algorithm = signatureCn14Transform;
reference.AddTransform(cn14Transform);
reference.Uri = signatureReferenceURI;
reference.DigestMethod = digestMethod;
signer.AddReference(reference);
KeyInfo keyInfo = new KeyInfo();
keyInfo.AddClause(new KeyInfoX509Data(pCertificado));
signer.KeyInfo = keyInfo;
signer.ComputeSignature();
xmlDocToSign.DocumentElement.AppendChild(signer.GetXml());
return xmlDocToSign.OuterXml;
}
また、私はCert Manager SafeNet(トークン)とSafeSign standart(スマートカード)をチェックしており、両方に秘密鍵や証明書はありません。 – Marisco
これ以外に何ができるかわからないので、RCA機能はサーバーで正しくありました。問題を引き起こしましたが、私はhttp://www.w3.org/2001/04/xmldsig-more#rsa-sha256に変更しました署名が追加されたhttp://www.w3.org/2000/09/xmldsig#enveloped-signatureのように、私に言ったように、同じことが起こります。 Pls何か考えですか? – Marisco