This is an automated email from the git hooks/post-receive script. gregoa pushed a commit to annotated tag v1.030099_001 in repository libnet-openid-common-perl.
commit 58dae548d0c3a97ab18f33e685b06a4363a743e9 Author: Robert Norris <r...@eatenbyagrue.org> Date: Fri Nov 5 10:55:11 2010 +1100 make int/byte conversions take strings rather than bigints since crypt::dh::gmp prefers that --- lib/Net/OpenID/Common.pm | 24 ++++++++++++++---------- t/06-bi2bytes.t | 14 -------------- t/06-int2bytes.t | 16 ++++++++++++++++ 3 files changed, 30 insertions(+), 24 deletions(-) diff --git a/lib/Net/OpenID/Common.pm b/lib/Net/OpenID/Common.pm index aa8edb0..9d0813a 100644 --- a/lib/Net/OpenID/Common.pm +++ b/lib/Net/OpenID/Common.pm @@ -151,8 +151,11 @@ sub w3c_to_time { return $time; } -sub bi2bytes { - my $bigint = shift; +sub int2bytes { + my ($int) = @_; + + my $bigint = Math::BigInt->new($int); + die "Can't deal with negative numbers" if $bigint->is_negative; my $bits = $bigint->as_bin; @@ -165,8 +168,8 @@ sub bi2bytes { return pack("B*", $bits); } -sub bi2arg { - return b64(bi2bytes($_[0])); +sub int2arg { + return b64(int2bytes($_[0])); } sub b64 { @@ -179,16 +182,17 @@ sub d64 { return MIME::Base64::decode_base64($_[0]); } -sub bytes2bi { - return Math::BigInt->new("0b" . unpack("B*", $_[0])); +sub bytes2int { + return Math::BigInt->new("0b" . unpack("B*", $_[0]))->bstr; } -sub arg2bi { - return undef unless defined $_[0] and $_[0] ne ""; +sub arg2int { + my ($arg) = @_; + return undef unless defined $arg and $arg ne ""; # don't acccept base-64 encoded numbers over 700 bytes. which means # those over 4200 bits. - return Math::BigInt->new("0") if length($_[0]) > 700; - return bytes2bi(MIME::Base64::decode_base64($_[0])); + return 0 if length($arg) > 700; + return bytes2int(MIME::Base64::decode_base64($arg)); } sub timing_indep_eq { diff --git a/t/06-bi2bytes.t b/t/06-bi2bytes.t deleted file mode 100644 index ecd43cc..0000000 --- a/t/06-bi2bytes.t +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/perl - -use strict; -use Test::More tests => 1080; -use Net::OpenID::Common; -use Math::BigInt; - -for my $num (1..1080) { - my $bi = Math::BigInt->new("$num"); - my $bytes = OpenID::util::bi2bytes($bi); - my $bi2 = OpenID::util::bytes2bi($bytes); - is($bi,$bi2); -} - diff --git a/t/06-int2bytes.t b/t/06-int2bytes.t new file mode 100644 index 0000000..f14ee83 --- /dev/null +++ b/t/06-int2bytes.t @@ -0,0 +1,16 @@ +#!/usr/bin/perl + +use strict; +use Test::More tests => 2048; +use Net::OpenID::Common; +use Math::BigInt; + +for my $num (1..2048) { + my $bi = Math::BigInt->new("2")->bpow($num); + my $bstr = $bi->bstr; + + my $bytes = OpenID::util::int2bytes($bstr); + my $bstr2 = OpenID::util::bytes2int($bytes); + is($bstr,$bstr2); +} + -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libnet-openid-common-perl.git _______________________________________________ Pkg-perl-cvs-commits mailing list Pkg-perl-cvs-commits@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits