我正在尝试使用 openssl dsa 实现,但我对以下细节感到非常困惑:
命令的选项“-text”
openssl dsa ....
:输出中的十六进制数字,我是否正确假设这些是字节,因此它们是 little-Endian 顺序的?函数 BN_bn2hex 和 BN_hex2bn,它们使用什么字节序?
在此先感谢您的帮助。
我正在尝试使用 openssl dsa 实现,但我对以下细节感到非常困惑:
命令的选项“-text” openssl dsa ....
:输出中的十六进制数字,我是否正确假设这些是字节,因此它们是 little-Endian 顺序的?
函数 BN_bn2hex 和 BN_hex2bn,它们使用什么字节序?
在此先感谢您的帮助。
OpenSSL 将所有字节序列(unsigned char
数组)视为大端。
函数BN_bn2hex
和BN_hex2bn
用于转换为可打印格式和从可打印格式转换。可打印格式始终采用自然阅读顺序,即大端。
对于像bn2bin这样的不可打印格式转换,文档明确指出转换是大端。但就像我之前说的,OpenSSL 中的约定对于所有字节序列都是大端的。