Triple DES Key Wrap を実行するための既存の .NET API はありますか?
ドキュメンテーションはこちら。
192 ビットの対称キー + 64 ビットの初期化ベクトル (IV) を合計 256 ビット生成しました。
現在、私のコードは次のように対称キーのみを暗号化します。
byte[] rawData = ReadFile("C:\\ReceiverTest.crt");
X509Certificate2 x509 = new X509Certificate2();
x509.Import(rawData);
var receiverPublicKey = x509.PublicKey.Key.ToXmlString(false);
RSACryptoServiceProvider receiverCipher = new RSACryptoServiceProvider();
receiverCipher.FromXmlString(receiverPublicKey);
// Encrypt the secret with the receiver's public key (so only they can decrypt)
byte[] keyEncryptedBytes = receiverCipher.Encrypt(_cryptoHelper.SymmetricKey, false);
// Releases all resources
receiverCipher.Clear();
return keyEncryptedBytes;
暗号化アルゴリズムとしてhttp://www.w3.org/2001/04/xmlenc#tripledes-cbcを使用しています。
SAML 応答に署名するためのアルゴリズム - http://www.w3.org/2000/09/xmldsig#rsa-sha1
暗号化キーの転送 - http://www.w3.org/2001/04/xmlenc#rsa-1_5
サービス プロバイダーは、対称キーでラップされた IV を取得するまで、ダイジェスト値を復号化できません。
助けてくれてありがとう!
-キャリー