簡體   English   中英

從自簽名證書生成X.509 SubjectPublicKeyInfo / OpenSSL PEM公鑰

[英]Generate X.509 SubjectPublicKeyInfo/OpenSSL PEM public key from self-signed certificate

我正在為第三方API構建存根。 向第三方提出的請求必須使用提供的公鑰加密。 作為存根的一部分,我想解密傳入的請求。

我計划更改我的調用代碼使用的公鑰,以便我可以使用我的私鑰解密它。

我有一個自簽名證書,用於我希望我可以重復使用的應用程序的其他部分。

我遇到的問題是以我需要的格式從證書中獲取公鑰。

根據Ian Boyd的幾個答案( 這個這個 ),我需要獲取公鑰的格式是“ X.509 SubjectPublicKeyInfo / OpenSSL PEM ”,這是我從第三個接收到的密鑰的格式-派對。 例如:

-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDcZ/r0nvJyHUUstIB5BqCUJ1CC
Cd1nzle4bEpPQJ/S0Wn7mV2FDAeh+UcbVhZu9n+5zypYNjeZKapPqBLoT8eCK51y
Kpzeb8LuEm3P8PK4xN18XBrIF1GprN8IIgSdK9f5SwnemutcURrY+PlWnvj7N5s/
03RlJA3/NHVXpPW/VQIDAQAB
-----END PUBLIC KEY-----

我已經嘗試使用X509Certificate2.GetPublicKey方法,然后對它進行base64編碼,但這給了我“ PEM DER ASN.1 PKCS#1 RSA ”格式的密鑰

有誰知道如何以我需要的格式獲取公鑰? 我不一定需要代碼中的密鑰,我只需要一個可以存儲在我的數據庫中的字符串值。

我的證書/私人/公共/密碼學知識僅限於任何幫助將不勝感激!

我能夠使用Bouncy Castle的PemWriter以我需要的格式構建PemWriter

var cert = Org.BouncyCastle.Security.DotNetUtilities.FromX509Certificate(x509certificate);

using (var stringWriter = new StringWriter())
{
    var pemWriter = new Org.BouncyCastle.OpenSsl.PemWriter(stringWriter);
    pemWriter.WriteObject(cert.GetPublicKey());
    var pem = stringWriter.ToString();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM