私はopenssldsa実装を使用しようとしていますが、次の詳細と非常に混乱しています。
コマンドのオプション'-text'
openssl dsa ....
:出力の16進数、これらはバイトであり、したがってリトルエンディアンの順序であると想定するのは正しいですか?関数BN_bn2hexおよびBN_hex2bn、それらが使用するエンディアンは何ですか?
助けてくれてありがとう。
私はopenssldsa実装を使用しようとしていますが、次の詳細と非常に混乱しています。
コマンドのオプション'-text' openssl dsa ....
:出力の16進数、これらはバイトであり、したがってリトルエンディアンの順序であると想定するのは正しいですか?
関数BN_bn2hexおよびBN_hex2bn、それらが使用するエンディアンは何ですか?
助けてくれてありがとう。
OpenSSLは、すべての一連のバイト(unsigned char
配列)をビッグエンディアンとして扱います。
関数BN_bn2hex
とBN_hex2bn
は、印刷可能な形式との間で変換するためのものです。印刷可能なフォーマットは常に自然な読み順であり、これはビッグエンディアンです。
bn2binのような印刷不可能な形式の変換の場合、ドキュメントには、変換がビッグエンディアンであると明示的に記載されています。しかし、前に述べたように、OpenSSLの規則は、すべての一連のバイトにとってビッグエンディアンです。