Skip to content

Commit

Permalink
bn: make BN.pseudo_rand{,_range} an alias of BN.rand{,_range}
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
rhenium committed Oct 24, 2021
1 parent d42bd7f commit 2d34e85
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 16 deletions.
18 changes: 2 additions & 16 deletions ext/openssl/ossl_bn.c
Original file line number Diff line number Diff line change
Expand Up @@ -826,12 +826,6 @@ BIGNUM_SELF_SHIFT(rshift)
*/
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) \
Expand All @@ -857,14 +851,6 @@ BIGNUM_RAND(pseudo_rand)
*/
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
Expand Down Expand Up @@ -1278,9 +1264,9 @@ Init_ossl_bn(void)
* 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);
Expand Down
4 changes: 4 additions & 0 deletions test/openssl/test_bn.rb
Original file line number Diff line number Diff line change
Expand Up @@ -248,6 +248,10 @@ def test_random
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
Expand Down

0 comments on commit 2d34e85

Please sign in to comment.