2017-02-07 3 views
1

私は、この形式の証明書を見ているようなフォーマット 0eaa20f53cacdcaa40fbde51ab50c7d1x.509証明書のシリアル番号形式が角かっこで囲まれ、角括弧で囲まれていない点の違いは何ですか?

でシリアル番号を持っている証明書を生成しました。私はこのようなものを作りたいと思います。 10978342379280287625(0x985ae83a6b9e477f)

私はこれをどのように行うことができますか?違いはなんですか?

+0

シリアル番号は、[ASN.1バイナリ整数(最大20オクテット)](https://www.ietf.org/rfc/rfc3280.txt)であり、これらの形式ではありません。あなたはそれを印刷するさまざまな方法しか見ていません。 – EJP

答えて

6

X.509 Serial Numberは、Distinguished Encoding Rules(DER)が不要な先頭の0x00バイトを省略するため、値が20バイト(「以下」)で表される整数です(負の数から正の数に変化する場合に必要です、またはそれは数0の場合)。

10978342379280287625(0x985ae83a6b9e477f)

あなたは、そのようなあなたが ​​に等しいであることがわかりますhttp://www.mobilefish.com/services/big_number/big_number.phpとして大きな数の変換を、ないWebサイトにアクセスした場合10978342379280287615 (decimal)。この数の

DER符号化された値は02 09 00 98 5a e8 3a 6b 9e 47 7f

0eaa20f53cacdcaa40fbde51ab50c7d1

この数(DER 02 10 0e aa 20 f5 3c ac dc aa 40 fb de 51 ab 50 c7 d1)小数点値19492550873724953657229484824238016465と等価です。

同じソフトウェアがOpenSSLのように両方のレンダリングで表示されると仮定すると、10進数と16進数の両方で表示されるかどうかの違いは、シリアル番号の長さと関係している可能性があります。 OpenSSLのためのカットオフは8コンテンツ(非0×00)バイトである:https://github.com/openssl/openssl/blob/c4a60150914fc260c3fc2854e13372c870bdde76/crypto/x509/t_x509.c#L88

0x985ae83a6b9e477funsigned longに収まるので、OpenSSLは、ユーザの利便性のために、小数点値としてそれを印刷します。

関連する問題