我正在编写与SmartCard通信的程序。智能卡是公钥的来源。我将公钥作为 byte [] 并将其转换为String
。我想使用密钥创建证书签名请求。
如何将byte [] / string(我的公钥)转换为任何C#键参数(例如RsaKeyParameters或AsymmetricKeyParameter)?
答案 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();