C#BouncyCastle PKCS#8

问题描述 投票:0回答:1

我想使用.net框架(而不是.netcore)加载PEM

-----BEGIN ENCRYPTED PRIVATE KEY-----
MIHs........................................................CAAw
DAYI........................................................gZAf
Y/Iu........................................................X7DZ
ZKoE........................................................OYQQ
3ZST........................................................A2E=
-----END ENCRYPTED PRIVATE KEY-----
  • 我试图通过BouncyCastle使用以下代码,但它抛出PemException:“创建加密私钥的问题:Org.BouncyCastle.Crypto.InvalidCipherTextException:填充块已损坏”
 class Passowrd : IPasswordFinder
    {
        private string v;

        public Passowrd(string v)
        {
            this.v = v;
        }

        public char[] GetPassword()
        {
            return v.ToCharArray();
        }
    }

var pemReader = new PemReader(new StringReader(privateKeyText), new Passowrd("PASSWORD"));
var pemObj = pemReader.ReadObject(); // this line throw PemException
  • 但是,我通过以下代码使用.netcore3.1加载了完全相同的PEM文件:
    var ecdsa = ECDsa.Create();
    ecdsa.ImportEncryptedPkcs8PrivateKey(passSpan, privateKeyBytes, out _);
c# bouncycastle ecdsa pkcs#8
1个回答
0
投票

您可以使用]阅读PEM。

var pemReader = new Org.BouncyCastle.OpenSsl.PemReader(new StringReader(privateKeyText), new Passowrd("PASSWORD"));

var pemReader = new Org.BouncyCastle.Utilities.IO.Pem.PemReader(new StringReader(privateKeyText));

然后阅读类似内容

var pemObject = pemReader.ReadPemObject();
© www.soinside.com 2019 - 2024. All rights reserved.