OpenSSL version number when compiling

Jun Aruga jun.aruga at gmail.com
Mon Aug 14 11:32:34 UTC 2023


>> As I understand it, 3.1.1 becomes 30100010, which should be less than 30100ff0.
>
>
> No, that's incorrect. Per  OPENSSL_VERSION_NUMBER(3) the format is:
>
> MNNFFPPS: major minor fix patch status
>
> So 3.1.1 would be 0x30101000L (or 0x3010100f for the release version).

Are you sure about it? The man document explains "0xMNN00PP0L" on the
latest master branch. I feel you may be confused from the OpenSSL 1
case.

https://github.com/openssl/openssl/blob/f2609004df4d91a365338e11d04ff67589f2d3e3/doc/man3/OpenSSL_version.pod#L82-L83
> B<OPENSSL_VERSION_NUMBER> is a combination of the major, minor and
patch version into a single integer 0xMNN00PP0L, where:

And my test to print the OPENSSL_VERSION_NUMBER for OpenSSL 3.1.2
printed "0x30100020".
https://github.com/ruby/openssl/actions/runs/5854733311/job/15871161714#step:13:21
OPENSSL_VERSION_NUMBER: 0x30100020

Note here is the used testing program to print OpenSSL versions.
https://github.com/junaruga/openssl-test/blob/main/printv.c


More information about the openssl-users mailing list