如何在 C# 中从 ECDsa 获取公钥

Posted

技术标签:

【中文标题】如何在 C# 中从 ECDsa 获取公钥【英文标题】:How to get a public key from ECDsa in C# 【发布时间】:2021-08-27 16:04:02 【问题描述】:

在 C# 中,我可以创建一个 RSA 公钥/私钥对...

RSA rsa = RSA.Create();

byte[] priKey = rsa.ExportRSAPrivateKey();
byte[] pubKey = rsa.ExportRSAPublicKey();

现在我想有效地使用ECDsa...

ECDsa ecdsa = ECDsa.Create();

byte[] priKey = ecdsa.ExportECPrivateKey();
...

...但我似乎找不到允许导出公钥的方法?

【问题讨论】:

【参考方案1】:

我想你在找ExportSubjectPublicKeyInfo()

var publicKey = ecdsa.ExportSubjectPublicKeyInfo();

The docs说:

以 X.509 SubjectPublicKeyInfo 格式导出当前密钥的公钥部分

找到关于“SubjectPublicKeyInfo”source

主题公钥信息 (SubjectPublicKeyInfo) 字段携带其相关主题的公钥组件,以及算法的指示,以及与公共组件一起使用的任何算法参数。

【讨论】:

以上是关于如何在 C# 中从 ECDsa 获取公钥的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中从文件中加载 RSA 公钥

如何从 OpenSSL 中的 ECDSA 私钥获取公钥?

如何在 C# 中加载私有 ecdsa 密钥 es256?

如何在 GoLang 中分离编组的 ecdsa 公钥和私钥

如何使用证书中的公钥检查 ECDSA(在 p-256 上)签名

C# ecdsa 签名 - 我可以选择哪个密钥规范?