in reply to Re: Code hanging with Crypt OpenPGP
in thread Code hanging with Crypt OpenPGP

I ran into this when we updated to CentOS 7.2 and went from perl 5.10 to 5.16. $p is too big for perl to subtract 1 from and results in inf. Still trying to figure out why it worked before but for now using Math::BigInt to calculate p_minus1 will fix it:
sub gen_k { my ($p) = @_; ## XXX choose bitsize based on bitsize of $p my $bits = 198; my $p_minus1 = Math::BigInt->new($p)->bsub(1); my $k = Crypt::OpenPGP::Util::get_random_bigint($bits); while (1) { last if Math::BigInt::bgcd($k, $p_minus1) == 1; $k++; } $k; }