【问题标题】:Get Public Key byte array from .cer file - C#从 .cer 文件中获取公钥字节数组 - C#
【发布时间】:2019-06-10 09:53:13
【问题描述】:

我正在尝试从证书中获取公钥字节[]。

我的同事使用命令:openssl x509 -inform der -in certificate.cer -text -noout,将密钥转储到控制台上,然后将其复制到二进制文件中。

我的任务是使用c# 来完成这项工作。

我使用了以下几行。

var cert = X509Certificate.CreateFromCertFile(
        "C:\\Users\\dhermann\\Downloads\\FirmKeyTest\\FirmwareSubordinateSSLTo20190201PublicKey.cer");
        byte[] publicKey = cert.GetPublicKey();

我的同事 bin 文件有 136 个字节,而我的给了我 140 个字节,最重要的是,我的最初 7 个字节不包含在他的字节数组中,以下 128 个与他的完全相同,但最后 8 个是不同(其中 3 个未包含在他的字节数组中。

我做错了什么,如何获得与他完全相同的公钥数组?

【问题讨论】:

  • 我得到的公钥数组和他的一模一样?为什么? bling 猜测 .net 正在使用 X509v3 你的朋友使用不同的版本
  • @Selvin 因为这是我被赋予的任务。还有哪些其他版本?我是新手,这是我第一次使用公钥,所以我的概念相当小。
  • v1, v2, v3 ...您无法更改GetPublicKey() 的行为...因此您必须了解 cert 在与 openssl 使用相同的版本中的外观并自己编写.. . 还有这是我被赋予的任务没有意义...
  • ...这也是我被赋予的任务没有意义...因为它闻起来像 xy 问题
  • @Selvin 好的,所以我们有一个需要公钥的二进制文件,我的同事正在执行我在帖子中显示的命令来手动提取密钥字节,这样他就可以在二进制文件。但是这种方法很容易出错,所以我的任务是使用 C# 在二进制文件中提取和插入密钥,并为应用程序提供 UI。现在好点了吗?

标签: c# certificate x509certificate x509 public-key


【解决方案1】:

所以我最终解决了这个问题。 我的同事只使用模数并添加指数。 我能够在website 的帮助下解决它。

【讨论】:

    猜你喜欢
    • 2018-07-04
    • 2021-02-04
    • 2023-03-12
    • 2021-02-14
    • 2016-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-24
    相关资源
    最近更新 更多