]> git.pld-linux.org Git - packages/perl-Crypt-OpenSSL-Bignum.git/blame - perl-Crypt-OpenSSL-Bignum-mod_sqrt.patch
- updated URL
[packages/perl-Crypt-OpenSSL-Bignum.git] / perl-Crypt-OpenSSL-Bignum-mod_sqrt.patch
CommitLineData
53288a45
AO
1diff -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);
20diff -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;
44diff -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));
This page took 0.164473 seconds and 4 git commands to generate.