]>
Commit | Line | Data |
---|---|---|
53288a45 AO |
1 | diff -ruN Crypt-OpenSSL-Bignum-0.09.orig/Bignum.pm Crypt-OpenSSL-Bignum-0.09/Bignum.pm |
2 | --- Crypt-OpenSSL-Bignum-0.09.orig/Bignum.pm 2017-12-01 20:07:57.000000000 +0100 | |
3 | +++ Crypt-OpenSSL-Bignum-0.09/Bignum.pm 2020-04-04 20:21:22.290086257 +0200 | |
4 | @@ -314,6 +314,15 @@ | |
5 | a new Crypt::OpenSSL::Bignum object, using the second argument, | |
6 | a Crypt::OpenSSL::Bignum::CTX object, as a scratchpad. | |
7 | ||
8 | +=item mod_sqrt | |
9 | + | |
10 | + my $new_bn_object = $self->mod_sqrt($bn_n, $ctx); | |
11 | + # new object is created $self is not modified | |
12 | + | |
13 | +Computes the square root of C<$self> modulo C<$bn_n> and returns the result in | |
14 | +a new Crypt::OpenSSL::Bignum object, using the second argument, | |
15 | +a Crypt::OpenSSL::Bignum::CTX object, as a scratchpad. | |
16 | + | |
17 | =item gcd | |
18 | ||
19 | my $new_bn_object = $self->gcd($bn_b, $ctx); | |
20 | diff -ruN Crypt-OpenSSL-Bignum-0.09.orig/Bignum.xs Crypt-OpenSSL-Bignum-0.09/Bignum.xs | |
21 | --- Crypt-OpenSSL-Bignum-0.09.orig/Bignum.xs 2017-12-01 20:05:15.000000000 +0100 | |
22 | +++ Crypt-OpenSSL-Bignum-0.09/Bignum.xs 2020-04-04 20:21:04.377184936 +0200 | |
23 | @@ -354,6 +354,20 @@ | |
24 | RETVAL | |
25 | ||
26 | Crypt::OpenSSL::Bignum | |
27 | +BN_mod_sqrt(self, n, ctx) | |
28 | + Crypt::OpenSSL::Bignum self; | |
29 | + Crypt::OpenSSL::Bignum n; | |
30 | + Crypt::OpenSSL::Bignum::CTX ctx; | |
31 | + PREINIT: | |
32 | + BIGNUM* bn; | |
33 | + CODE: | |
34 | + checkOpenSslCall( bn = BN_new() ); | |
35 | + checkOpenSslCall( BN_mod_sqrt( bn, self, n, ctx ) ); | |
36 | + RETVAL = bn; | |
37 | + OUTPUT: | |
38 | + RETVAL | |
39 | + | |
40 | +Crypt::OpenSSL::Bignum | |
41 | BN_gcd(self, b, ctx) | |
42 | Crypt::OpenSSL::Bignum self; | |
43 | Crypt::OpenSSL::Bignum b; | |
44 | diff -ruN Crypt-OpenSSL-Bignum-0.09.orig/test.pl Crypt-OpenSSL-Bignum-0.09/test.pl | |
45 | --- Crypt-OpenSSL-Bignum-0.09.orig/test.pl 2016-10-22 12:46:23.000000000 +0200 | |
46 | +++ Crypt-OpenSSL-Bignum-0.09/test.pl 2020-04-04 20:28:16.946804394 +0200 | |
47 | @@ -125,6 +125,9 @@ | |
48 | ok( 36 == $bn6->sqr( $ctx )->get_word() ); | |
49 | ok( 12 == $bn23->mod_inverse( $bn25, $ctx )->get_word() ); | |
50 | ||
51 | +my $bn18 = _new_bn( 18 ); | |
52 | +ok( 8 == $bn18->mod_sqrt( $bn23, $ctx )->get_word() ); | |
53 | + | |
54 | ok(Crypt::OpenSSL::Bignum->new()->get_word == 0); | |
55 | ok(Crypt::OpenSSL::Bignum->rand(32, 0, 0)); | |
56 | ok(Crypt::OpenSSL::Bignum->pseudo_rand(32, 0, 0)); |