如何读取der文件并转换为AsymmetricCipherKeyPair?

时间:2012-01-12 08:36:16

标签: c# rsa bouncycastle

我有一个包含DER编码密钥的文件'text.der'。我想读取它并从Bouncycastle C#库(here are the javadocs for the Java version)转换为AsymmetricCipherKeyPair的实例。

例如对于pem文件,我们在bouncycastle中有PemReader / Writer,我们可以做到。 如何从文件中的编码密钥转到AsymmetricCipherKeyPair

1 个答案:

答案 0 :(得分:1)

假设它是通常的二进制格式DER公钥文件,使用SubjectPublicKeyInfo结构的二进制DER编码(我认为OpenSSL使用它作为其DER输出格式),你可以这样做:

byte[] derKeyBytes = File.ReadAllBytes("text.der"); // read in the binary file

// Decode the public key component
AsymmetricKeyParameter publicKey =
    PublicKeyFactory.CreateKey(derKeyBytes);

你最好只使用AsymmetricKeyParameter(它是密钥的公共部分),但是如果你绝对想要它在AsymmetricCipherKeyPair中,你可以这样做:

// Put the public key into a keyPair, leave the Private key uninitialized.
AsymmetricCipherKeyPair keyPair =
    new AsymmetricCipherKeyPair(
        publicKey,
        new AsymmetricKeyParameter(true));