【发布时间】:2020-04-22 11:37:55
【问题描述】:
我们有私钥 (GOST3410-2012)。 但我们无法使用 BouncyCastle 1.8.6.1 读取它
这是一个关键数据:
-----开始私钥----- MIGiAgEAMCEGCCqFAwcBAQECMBUGCSqFAwcBAgECAQYIKoUDBwEBAgMEQIXnWrZ6 ajvbCU6x9jK49PgQqCP00T/lW3laXCXueMF8X4Q1y3N9zfOJT2s/IgyPJVrUhgtO 1Akp+Roh8bCPPlqgODA2BggqhQMCCQMIATEqBCi72ZvrBVW6mFL/bQeXeMTf8Jh8 p/diI7Cg8ig4mXg3tsIUf4vBi61b -----结束私钥-----
这里有一个阅读代码:
const string keyPath = "D:\\testkey\\priv.key";
using (var textReader = File.OpenText(keyPath))
{
var pemReader = new Org.BouncyCastle.OpenSsl.PemReader(textReader);
var pemObj = pemReader.ReadPemObject();
var seq = (Asn1Sequence)Asn1Object.FromByteArray(pemObj.Content);
var keyInfo = PrivateKeyInfo.GetInstance(seq);
var akp = Org.BouncyCastle.Security.PrivateKeyFactory.CreateKey(keyInfo);
}
此代码提供异常:“DER 长度超过 4 个字节:103”。 有人知道怎么读吗?
【问题讨论】:
-
我不是 GOST 密钥专家,但 ASN.1 数据结构似乎还不错:ASN.1 decoded version of your sample key
-
您安装了哪些加密服务提供程序?默认不支持 GOST 算法。
-
也可以查看one
-
我们已经安装了 cryptopro csp
标签: c# cryptography bouncycastle gost3410