2

简短版本: CngKey.Import抛出异常,即使new ECDsaCng()没有。

(编辑:更缩小的问题:CngKey.Import(...); 在 PC 上成功,但在 Web 主机上失败。)

长版:

在某些情况下,存在权限限制,并且CngKey.Import(用于将 加载CngKeyBlobFormat.EccPrivateBlob到 中ECDsaCng)会抛出CryptographicException.

另一方面,以下确实有效:

ECDsaCng dsa = new ECDsaCng();

所以我认为问题在于尝试将密钥导入 KSP。

到目前为止,我还没有找到将 转换EccPrivateBlobECDsaCng的方法,不是通过CngKey.Create方法,也不是通过CngKey.Open方法或任何其他方式。

那么怎么做(没有KSP)?

错误本身:

System.Security.Cryptography.CryptographicException:发生内部错误。在 System.Security.Cryptography.NCryptNative.OpenStorageProvider(String providerName) 在 System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat 格式, CngProvider provider) 在 ...

4

0 回答 0