2017-11-15 12 views
0

X509-issuer-stringを解析しようとしました。 理由のために、いくつかの属性がOIDでコード化されているかどうかわかりません。OID:値が16進数でコード化されています

など。

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

私の質問は最後のものです。私はそれがOIDと命名されていないことは間違いない。

しかし、私は値をどのように解釈するのか分かりません。私はそれが1文字につき2桁の16進数であると期待しています。しかし最初の4つの数字はどうですか?それはいくつかの制御文字です。

414141505050は、私が期待する値(AAAPPP)になります。

しかし、最初の4バイト(130e)の意味は何ですか?

OIDの16進数のコーディングの定義が見つかりませんでした。

プライバシのために値を偽ったので、チェックサムの形式であれば破損します。

ありがとうございました!

+0

発行者の値の正確なバイナリコピーを投稿できる方が良いでしょう。 – Crypt32

答えて

2

2.5.4.97は、OpenSSLがOID to nameマップのものを持っていないため、OpenSSLがOIDとして印刷しているorganizationIdentifierhttp://oid-info.com/get/2.5.4.97)のOIDです。

「これは生データ、16進符号化」のOpenSSL-eseと推定されます。生の値は、DERでエンコードされた値です。 0x13は、これが(プリミティブエンコーディング)Printable Stringであることを示します。次のバイト(0x0E)は、14バイト長であることを示します。

414141505050の長さはわずか6バイトなので、最初は長めの値だったとみなされます。

+0

はかなり合法的に聞こえる。 – Crypt32

+0

ありがとう! これがどこに文書化されているか尋ねてもよろしいですか? – chris01

+0

https://www.openssl.org/docs/man1.0.2/crypto/ASN1_STRING_print_ex.htmlは、印刷フォーム(ダンプと呼ばれる)について語り、DUMP_DERフラグが設定されたように見えます。私たちは[IETF RFC 3280](https://tools.ietf.org/html/rfc3280)(証明書)、[ITU-T-REC X.690](https://www.itu.int/)を理解する必要があります。 PDF-E&type = items)(BER/DERエンコーディング)と[ITU-T-REC X.680](https:///www.itu.int/rec/dologin_pub.asp?lang=e&id=T-REC-X.680-201508-I!!PDF-E&type=items)(ASN.1言語)。それはすべてそこにある、ただ...広がる。 – bartonjs

関連する問題