OpenSSL字节序列是小端还是大端序?

dsi*_*ign 4 openssl endianness dsa

我正在尝试使用openssl dsa实现,但我对以下细节非常困惑:

  • 命令的选项'-text' openssl dsa ....:输出中的十六进制数字,我是否正确假设那些是字节,因此它们是小端序?

  • 功能BN_bn2hex和BN_hex2bn,他们使用什么Endianess?

在此先感谢您的帮助.

ind*_*div 10

OpenSSL将所有字节序列(unsigned char数组)视为大端.

的功能BN_bn2hexBN_hex2bn用于转换和从可打印的格式.可打印格式始终处于自然阅读顺序,这是大端.

对于像bn2bin这样的非可打印格式转换,文档明确指出转换是大端.但正如我之前所说,OpenSSL中的约定是所有字节序列的大端.

  • @ user3342339:否.只有表示数字的字节序列(通常是`unsigned char []`或`unsigned char*`)被解释为大端.接受原始类型(如`int`或`long`)的API函数是主机格式,正如您所期望的那样. (2认同)