[前][次][番号順一覧][スレッド一覧]

ruby-changes:69399

From: Kazuki <ko1@a...>
Date: Mon, 25 Oct 2021 00:43:58 +0900 (JST)
Subject: [ruby-changes:69399] e19186707a (master): [ruby/openssl] bn: make BN.pseudo_rand{, _range} an alias of BN.rand{, _range}

https://git.ruby-lang.org/ruby.git/commit/?id=e19186707a

From e19186707a78e6e739646dac1430dc3066cf9bad Mon Sep 17 00:00:00 2001
From: Kazuki Yamaguchi <k@r...>
Date: Sun, 21 Mar 2021 00:20:04 +0900
Subject: [ruby/openssl] bn: make BN.pseudo_rand{,_range} an alias of
 BN.rand{,_range}

BN_pseudo_rand() and BN_pseudo_rand_range() are deprecated in
OpenSSL 3.0. Since they are identical to their non-'pseudo' version
anyway, let's make them alias.

https://github.com/ruby/openssl/commit/2d34e85ddf
---
 ext/openssl/ossl_bn.c   | 18 ++----------------
 test/openssl/test_bn.rb |  4 ++++
 2 files changed, 6 insertions(+), 16 deletions(-)

diff --git a/ext/openssl/ossl_bn.c b/ext/openssl/ossl_bn.c
index 128ffabddc..5d17b13a36 100644
--- a/ext/openssl/ossl_bn.c
+++ b/ext/openssl/ossl_bn.c
@@ -826,12 +826,6 @@ BIGNUM_SELF_SHIFT(rshift) https://github.com/ruby/ruby/blob/trunk/ext/openssl/ossl_bn.c#L826
  */
 BIGNUM_RAND(rand)
 
-/*
- * Document-method: OpenSSL::BN.pseudo_rand
- *   BN.pseudo_rand(bits [, fill [, odd]]) -> aBN
- */
-BIGNUM_RAND(pseudo_rand)
-
 #define BIGNUM_RAND_RANGE(func)					\
     static VALUE						\
     ossl_bn_s_##func##_range(VALUE klass, VALUE range)		\
@@ -857,14 +851,6 @@ BIGNUM_RAND(pseudo_rand) https://github.com/ruby/ruby/blob/trunk/ext/openssl/ossl_bn.c#L851
  */
 BIGNUM_RAND_RANGE(rand)
 
-/*
- * Document-method: OpenSSL::BN.pseudo_rand_range
- * call-seq:
- *   BN.pseudo_rand_range(range) -> aBN
- *
- */
-BIGNUM_RAND_RANGE(pseudo_rand)
-
 /*
  * call-seq:
  *    BN.generate_prime(bits, [, safe [, add [, rem]]]) => bn
@@ -1278,9 +1264,9 @@ Init_ossl_bn(void) https://github.com/ruby/ruby/blob/trunk/ext/openssl/ossl_bn.c#L1264
      * get_word */
 
     rb_define_singleton_method(cBN, "rand", ossl_bn_s_rand, -1);
-    rb_define_singleton_method(cBN, "pseudo_rand", ossl_bn_s_pseudo_rand, -1);
     rb_define_singleton_method(cBN, "rand_range", ossl_bn_s_rand_range, 1);
-    rb_define_singleton_method(cBN, "pseudo_rand_range", ossl_bn_s_pseudo_rand_range, 1);
+    rb_define_alias(rb_singleton_class(cBN), "pseudo_rand", "rand");
+    rb_define_alias(rb_singleton_class(cBN), "pseudo_rand_range", "rand_range");
 
     rb_define_singleton_method(cBN, "generate_prime", ossl_bn_s_generate_prime, -1);
     rb_define_method(cBN, "prime?", ossl_bn_is_prime, -1);
diff --git a/test/openssl/test_bn.rb b/test/openssl/test_bn.rb
index c36d6b89d8..3f0622f94f 100644
--- a/test/openssl/test_bn.rb
+++ b/test/openssl/test_bn.rb
@@ -248,6 +248,10 @@ class OpenSSL::TestBN < OpenSSL::TestCase https://github.com/ruby/ruby/blob/trunk/test/openssl/test_bn.rb#L248
       r5 = OpenSSL::BN.rand_range(256)
       assert_include(0..255, r5)
     }
+
+    # Aliases
+    assert_include(128..255, OpenSSL::BN.pseudo_rand(8))
+    assert_include(0..255, OpenSSL::BN.pseudo_rand_range(256))
   end
 
   begin
-- 
cgit v1.2.1


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]