OID:值是十六进制编码的

OID: value is hex-coded

我尝试解析 X509-issuer-string。 由于我不知道某些属性在 OID 中编码的原因。

例如

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

我的问题是关于最后一个。我很好,它没有命名但带有 OID。

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

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

但是前4个字节(130e)是什么意思??

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

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

感谢帮助!

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

假设 # 是 "this is the raw data, hex encoded" 的 OpenSSL-ese。原始值是 DER 编码值。 0x13 标识这是一个(原始编码)可打印字符串。下一个字节 (0x0E) 表示它有 14 个字节长。

由于您的 414141505050 只有 6 个字节长,因此假设您最初的值更长。