azure - Azure Web 应用程序中 BouncyCaSTLe 的 DecryptKey 方法失败

标签 azure bouncycastle

我有一个 MVC .Net 4.6.2 Web 应用程序,它使用以下代码来获取 RSACryptoServiceProvider:

    public static RSACryptoServiceProvider GetKey(byte[] key, string pass)
    {
        Org.BouncyCastle.Crypto.AsymmetricKeyParameter asp = Org.BouncyCastle.Security.PrivateKeyFactory.DecryptKey(pass.ToCharArray(), key);
        var rsa = DotNetUtilities.ToRSA((RsaPrivateCrtKeyParameters)asp) as RSACryptoServiceProvider;
        return rsa;
    }

在我使用 IIS 的 Web 服务器上,它可以正常工作。

当我在 Azure 门户中发布时,DecryptKey 方法返回以下错误:

The system can not find the specified file.

有什么想法吗?

最佳答案

在此操作中:

var asp = Org.BouncyCastle.Security.PrivateKeyFactory.DecryptKey(pass.ToCharArray(), key);

BouncyCaSTLe 需要访问服务器的 KeyChange,解决方案是在 Azure 门户中添加配置设置。

可以在应用程序设置的高级编辑中添加以下内容:

  {
    "name": "WEBSITE_LOAD_CERTIFICATES",
    "value": "1",
    "slotSetting": false
  }

或者您可以使用标准设置编辑器添加它,如下面的屏幕截图所示: Parameter Azure Portal

Application Setting

关于azure - Azure Web 应用程序中 BouncyCaSTLe 的 DecryptKey 方法失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53617317/

相关文章:

azure - 对于 Hadoop,选择哪种数据存储:Amazon S3 还是 Azure Blob 存储?

openssl - bouncycaSTLe库中使用哪个OpenSSL版本?

java - 如何在Java中正确使用RSASSA-PSS进行签名?

java - 使用 JCE 的 AES/EAX 加密 - Mac 在 EAX 中检查失败

javascript - 从js上传图像文件到azure blob存储

azure - 如何访问我部署到Azure K8s的服务?

azure - 查询cosmosDB : get last element in array

java - 如何使用 BouncycaSTLe Java 将 PGP 公钥存储和读取为字符串?

java - 如何在 Java 中生成多域 (UCC) 证书?

Azure B2C - MSAL - 使用更新的声明获取 ID token