C# Bouncycastle解密PKCS8

C# Bouncycastle解密PKCS8,c#,encryption,rsa,bouncycastle,C#,Encryption,Rsa,Bouncycastle,使用Bouncycastle解密字符串时遇到困难。我怀疑这是编码,但我找不到任何用于bouncycastle的PKCS8编码 var bytesToDecrypt = Convert.FromBase64String(base64Input); AsymmetricCipherKeyPair keyPair; var decryptEngine = new Pkcs1Encoding(new RsaEngine());

使用Bouncycastle解密字符串时遇到困难。我怀疑这是编码,但我找不到任何用于bouncycastle的PKCS8编码

var bytesToDecrypt = Convert.FromBase64String(base64Input);

            AsymmetricCipherKeyPair keyPair;
            var decryptEngine = new Pkcs1Encoding(new RsaEngine());

            using (var txtreader = new StringReader(privateKey))
            {
                keyPair = (AsymmetricCipherKeyPair)new PemReader(txtreader).ReadObject();

                decryptEngine.Init(false, keyPair.Private);
            }

            var decrypted = Encoding.UTF8.GetString(decryptEngine.ProcessBlock(bytesToDecrypt, 0, bytesToDecrypt.Length));
            return decrypted;
这是PKCS8格式的RSA密钥:

-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----

使用AsymmetricKeyParameter而不是AsymmetricipherKeyPair,如下所示:

    AsymmetricKeyParameter akp;

    var decryptEngine = new Pkcs1Encoding(new RsaEngine());

    using (var txtreader = new StringReader(privateKey))
    {
        akp = (AsymmetricKeyParameter)new PemReader(txtreader).ReadObject();

        decryptEngine.Init(false, akp);
    }

使用AsymmetricKeyParameter而不是AsymmetricipherKeyPair,如下所示:

    AsymmetricKeyParameter akp;

    var decryptEngine = new Pkcs1Encoding(new RsaEngine());

    using (var txtreader = new StringReader(privateKey))
    {
        akp = (AsymmetricKeyParameter)new PemReader(txtreader).ReadObject();

        decryptEngine.Init(false, akp);
    }