openssl版本号解析
https://www.openssl.org/docs/man1.1.1/man3/OPENSSL_VERSION_NUMBER.html
#define OPENSSL_VERSION_NUMBER 0xnnnnnnnnnL
从上面文章中可以看得出版本号共9位数(最后的L表示长整型)
如 0x101010ef 省略了前面的一个0, 实际为 0x0101010ef 版本是 1.1.1n-release
解析方法如下:
0x0101010ef 前有6位的 010101 为 1.1.1
7到8位为 0e 对应字母 n
n的由来如下:
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0a | 0b | 0c |
空 | a | b | c | d | e | f | g | h | i | j | k | l |
0d | 0e | 0f | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1a |
m | n | o | p | q | r | s | t | u | v | w | x | y | z |
所以 0e 对应表格中的 n
第9位代表状态 dev beta release等,即 0 表示 dev,1 到 e 表示 beta 1 到 14,f 则表示 release
OPENSSL_VERSION_NUMBER 具体的值,一般在 opensslv.h 头文件中