mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
openssl: check existence of RAND_pseudo_bytes()
* ext/openssl/extconf.rb: Check if RAND_pseudo_bytes() is usable. It is marked as deprecated in OpenSSL 1.1.0. [ruby-core:75225] [Feature #12324] * ext/openssl/ossl_rand.c: Disable Random.pseudo_bytes if RAND_pseudo_bytes() is unavailable. * test/openssl/test_random.rb: Don't test Random.pseudo_bytes if not defined. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55282 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
8ba27d7312
commit
9199bec9e8
4 changed files with 19 additions and 1 deletions
12
ChangeLog
12
ChangeLog
|
@ -1,3 +1,15 @@
|
|||
Sun Jun 5 21:38:13 2016 Kazuki Yamaguchi <k@rhe.jp>
|
||||
|
||||
* ext/openssl/extconf.rb: Check if RAND_pseudo_bytes() is usable. It is
|
||||
marked as deprecated in OpenSSL 1.1.0.
|
||||
[ruby-core:75225] [Feature #12324]
|
||||
|
||||
* ext/openssl/ossl_rand.c: Disable Random.pseudo_bytes if
|
||||
RAND_pseudo_bytes() is unavailable.
|
||||
|
||||
* test/openssl/test_random.rb: Don't test Random.pseudo_bytes if not
|
||||
defined.
|
||||
|
||||
Sun Jun 5 19:06:40 2016 Martin Duerst <duerst@it.aoyama.ac.jp>
|
||||
|
||||
* NEWS: Add news about Unicode-wide case mapping for
|
||||
|
|
|
@ -107,6 +107,7 @@ OpenSSL.check_func_or_macro("SSL_CTX_set_ecdh_auto", "openssl/ssl.h")
|
|||
OpenSSL.check_func_or_macro("SSL_get_server_tmp_key", "openssl/ssl.h")
|
||||
|
||||
# added in 1.1.0
|
||||
OpenSSL.check_func("RAND_pseudo_bytes", "openssl/rand.h") # deprecated
|
||||
have_func("X509_STORE_get_ex_data")
|
||||
have_func("X509_STORE_set_ex_data")
|
||||
OpenSSL.check_func_or_macro("SSL_CTX_set_tmp_ecdh_callback", "openssl/ssl.h") # removed
|
||||
|
|
|
@ -124,6 +124,7 @@ ossl_rand_bytes(VALUE self, VALUE len)
|
|||
return str;
|
||||
}
|
||||
|
||||
#if defined(HAVE_RAND_PSEUDO_BYTES)
|
||||
/*
|
||||
* call-seq:
|
||||
* pseudo_bytes(length) -> string
|
||||
|
@ -151,6 +152,7 @@ ossl_rand_pseudo_bytes(VALUE self, VALUE len)
|
|||
|
||||
return str;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_RAND_EGD
|
||||
/*
|
||||
|
@ -224,7 +226,9 @@ Init_ossl_rand(void)
|
|||
rb_define_module_function(mRandom, "load_random_file", ossl_rand_load_file, 1);
|
||||
rb_define_module_function(mRandom, "write_random_file", ossl_rand_write_file, 1);
|
||||
rb_define_module_function(mRandom, "random_bytes", ossl_rand_bytes, 1);
|
||||
#if defined(HAVE_RAND_PSEUDO_BYTES)
|
||||
rb_define_module_function(mRandom, "pseudo_bytes", ossl_rand_pseudo_bytes, 1);
|
||||
#endif
|
||||
#ifdef HAVE_RAND_EGD
|
||||
rb_define_module_function(mRandom, "egd", ossl_rand_egd, 1);
|
||||
rb_define_module_function(mRandom, "egd_bytes", ossl_rand_egd_bytes, 2);
|
||||
|
|
|
@ -8,7 +8,8 @@ class OpenSSL::TestRandom < OpenSSL::TestCase
|
|||
end
|
||||
|
||||
def test_pseudo_bytes
|
||||
# deprecated as of OpenSSL 1.1.0
|
||||
assert_equal("", OpenSSL::Random.pseudo_bytes(0))
|
||||
assert_equal(12, OpenSSL::Random.pseudo_bytes(12).bytesize)
|
||||
end
|
||||
end if OpenSSL::Random.methods.include?(:pseudo_bytes)
|
||||
end if defined?(OpenSSL::TestCase)
|
||||
|
|
Loading…
Reference in a new issue