从byte [] / pem string获取公钥 - BouncyCastle C#

时间:2016-08-22 09:29:02

标签: c# cryptography bouncycastle public-key-encryption public-key

我正在编写与SmartCard通信的程序。智能卡是公钥的来源。我将公钥作为 byte [] 并将其转换为String。我想使用密钥创建证书签名请求

如何将byte [] / string(我的公钥)转换为任何C#键参数(例如RsaKeyParameters或AsymmetricKeyParameter)?

2 个答案:

答案 0 :(得分:0)

我找到了解决问题的好方法。转到here并阅读所有问答。我必须根据 X.509 SubjectPublicKeyInfo / OpenSSL PEM公钥格式将我的字节(公钥)放在适当的ASN1结构中。现在我可以创建AsymmetricKeyParameter。

Request::setTrustedProxies(array($request->server->get('REMOTE_ADDR')));

答案 1 :(得分:0)

以下是从pem字符串获取 X509Certificate的简单方法:

pemString = pemString.Replace("-----BEGIN CERTIFICATE-----", "").Replace("-----END CERTIFICATE-----", "");
byte[] buffer = Convert.FromBase64String(pemString);
X509CertificateParser parser = new X509CertificateParser();
_certificate = parser.ReadCertificate(buffer);

当我们有X509Certificate对象时,我们可以获得公钥:

AsymmetricKeyParameter publicKey = certificate.GetPublicKey();