Skip to content

Commit

Permalink
[ruby/openssl] Enhance printing OpenSSL versions.
Browse files Browse the repository at this point in the history
* Updated the `OpenSSL::OPENSSL_VERSION_NUMBER` comment explaining the format.
* Added the `OpenSSL::LIBRESSL_VERSION_NUMBER` to print LibreSSL version number,
  in the case that Ruby OpenSSL binding is compiled with LibreSSL. Note
  `test/openssl/utils.rb#libressl?` is not using this value in it for now.
* Update `rake debug` to print the values in a readable way, adding
  `OpenSSL::OPENSSL_VERSION_NUMBER` and `OpenSSL::LIBRESSL_VERSION_NUMBER`.

ruby/openssl@d19e6360ed
  • Loading branch information
junaruga authored and rhenium committed Aug 16, 2023
1 parent f5ca8d0 commit f1df062
Showing 1 changed file with 18 additions and 1 deletion.
19 changes: 18 additions & 1 deletion ext/openssl/ossl.c
Expand Up @@ -1152,10 +1152,27 @@ Init_openssl(void)

/*
* Version number of OpenSSL the ruby OpenSSL extension was built with
* (base 16)
* (base 16). The formats are below.
*
* [OpenSSL 3] <tt>0xMNN00PP0 (major minor 00 patch 0)</tt>
* [OpenSSL before 3] <tt>0xMNNFFPPS (major minor fix patch status)</tt>
* [LibreSSL] <tt>0x20000000 (fixed value)</tt>
*
* See also the man page OPENSSL_VERSION_NUMBER(3).
*/
rb_define_const(mOSSL, "OPENSSL_VERSION_NUMBER", INT2NUM(OPENSSL_VERSION_NUMBER));

#if defined(LIBRESSL_VERSION_NUMBER)
/*
* Version number of LibreSSL the ruby OpenSSL extension was built with
* (base 16). The format is <tt>0xMNNFFPPS (major minor fix patch
* status)</tt>. This constant is only defined in LibreSSL cases.
*
* See also the man page OPENSSL_VERSION_NUMBER(3).
*/
rb_define_const(mOSSL, "LIBRESSL_VERSION_NUMBER", INT2NUM(LIBRESSL_VERSION_NUMBER));
#endif

/*
* Boolean indicating whether OpenSSL is FIPS-capable or not
*/
Expand Down

0 comments on commit f1df062

Please sign in to comment.