代码之家  ›  专栏  ›  技术社区  ›  chris01

OID:值为十六进制编码

  •  1
  • chris01  · 技术社区  · 7 年前

    我尝试解析X509颁发者字符串。 由于某些原因,我不知道某些属性是在OID中编码的。

    例如。

    CN=TEST,DN=my.test.com,O=My State,C=MS,2.5.4.97=#130e414141505050
    

    我的问题是关于最后一个。我很好,它没有名字,但与老。

    但我不知道如何解释这个价值。我希望每个字符是2位十六进制。但是前4个数字呢?这将是一些控制字符。

    4141505050将是我期望的值(AAAPPP)。

    但前4个字节(130e)的含义是什么??

    我没有找到OID十六进制值编码的任何定义。

    我伪造了隐私值-因此,如果它是校验和的一种形式,它将被破坏。

    谢谢你的帮助!

    1 回复  |  直到 7 年前
        1
  •  2
  •   bartonjs    7 年前

    2.5.4.97 是的OID organizationIdentifier http://oid-info.com/get/2.5.4.97 ),其中OpenSSL打印为OID,因为它在OID到名称映射中没有。

    有人假设 # 是OpenSSL ese,表示“这是原始数据,十六进制编码”。原始值是DER编码的值。 0x13 标识这是一个(原语编码)可打印字符串。下一个字节(0x0E)表示它有14个字节长。

    自从你 414141505050