【发布时间】:2017-09-19 20:15:03
【问题描述】:
所有,我正在为一个项目开发 IDP 发起的 web sso,服务提供商有这个要求,即 RSA 加密 AES-128 对称密钥(带有 PKCS1 填充的 ECB)和 Base64 编码,然后再将其添加到 SAML 2.0 响应的 AttributeStatement 部分。我的理解是 RSA 加密是不对称的,我们必须加密的密钥是服务提供商的公钥。但是我们没有 SP 的公共证书,所以我决定 RSA 加密我们的 X509Certicate 的公钥
这是我拥有的代码,它在调用 RSACryptoServiceProvider 类的 Encrypt 方法时引发错误长度加密异常。有谁知道问题出在哪里?
using(var rsa = cert.PublicKey.Key as RSACryptoServiceProvider)
{
rsa.KeySize = 1024;
byte[] encryptedKey = rsa.Encrypt(cert.GetPublicKey(),false);
encodedPublicKey = Convert.ToBase64String(encryptedKey);
}
【问题讨论】:
标签: c# public-key-encryption x509certificate2