c# - 将 PKCS#8 加密密钥导入 RSACng?
问题描述
如果我在 PKCS#8 中加密了 RSA 密钥,我可以以某种方式将其导入RSACng
asCngKeyBlobFormat.Pkcs8PrivateBlob
吗?或者这CngKeyBlobFormat.Pkcs8PrivateBlob
只是表明CngKey
在导入期间必须从 DER 解码密钥以获取密钥参数,然后将它们导入RSACng
,因此答案是否定的?
解决方案
CNG 知道如何解密加密的 PKCS#8,但您需要给它一个密码。由于 .NET 不要求您输入密码(并且它通过属性以外的方式传递),因此没有一个好的方法来做到这一点。
您的选择非常多:
- P/Invoke 以便您可以指定 NCRYPTBUFFER_PKCS_SECRET 值。
- 更改您的流程,以便您拥有未加密的 PKCS#8。
- 更改您的流程,以便您拥有 PFX/PKCS#12 而不是加密的 PKCS#8(然后更改为通过 X509Certificate2 读取它)。
- 等待 .NET Core 的未来版本,它将能够将 PKCS#8、加密的 PKCS#8 和一些其他格式直接加载到 RSA/DSA/ECDsa/ECDiffieHellman 对象中(该功能目前在主分支)。
- 找到可以为您解密的库。充气城堡大概可以做到。
推荐阅读
- python - 字典不适用于 txt 文件中的 DNA 字符串
- spring-boot - 我可以从我的 Gradle 平台定义中提取 Gradle org.springframework.boot 插件的版本吗
- c++ - 确定实例是子类还是基类
- asp.net-core-2.0 - 有没有办法在.net核心的OnModelCreating中的表中使用order by子句
- ruby-on-rails - Rails Google Oauth - Works for some users and not others
- python - 比较组内的行,熊猫
- google-docs-api - 无效的 ReplaceNamedRangeContent 请求
- bash - :- 在 Bash 中的冗余使用?
- python - 有没有一种pythonic方法可以从列表或numpy数组中采样N个连续元素
- linux - bash: ./shelllab2.sh: 没有这样的文件或目录