将 x.509 SSL 证书的主题字段中的 "emailAdress=<email-address>" 转换为十六进制

Convert "emailAdress=<email-address>" found in Subject field of x.509 SSL certificate to hexadecimal

我有一个 'Subject' 的 SSL x.509 证书

Subject:    C=XX, ST=XX, L=XX, O=XX, OU=XX, emailAddress=admin@adobe.pw, CN=trustasia.asia

我想将其转换为在线发送时在 SSL 证书中找到的二进制流,我知道定义主题字段在 RFC-5280 in ASN.1 notation and DER encoding rules given in x.609 are to covert this field to binary representation, these two documents and with little help from code 中给出(它给出了 OID 的十六进制表示,例如 id-at-countryName:2.5.4.6:{0x55, 0x04, 0x06}) 我能够将所有 RDN(RelativeDistinguishedNames) 转换为它们的二进制文件代表,但我坚持使用 emailAdress 字段。 我找到了它的 OID:1.2.840.113549.1.9.1 但不知道它是什么十六进制表示。

能否指导我如何将其转换为二进制表示形式。

我怀疑您是在谈论使用 ASN.1 可分辨编码规则 (DER) 的 OID 编码。我建议查看这篇文章以获取有关 OBJECT_IDENTIFIER 编码规则的详细信息:OBJECT IDENTIFIER

OID 字符串值转换为 ASN.1 DER 将导致:

06 09 2A 86 48 86 F7 0D 01 09 01

其中,0x06——是OBJECT_IDENTIFIER标签标识符,0x09——以字节为单位的编码OID值长度,其余字节(2A 86 48 86 F7 0D 01 09 01)表示OID二进制形式

emailAddress 是 IA5String 类型,因此它会以与主题行所示相同的形式出现在证书中:'admin@adobe.pw'.