Crypt-RSA-Yandex
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
vlong public_key::encrypt( const vlong& plain )
{
#if defined(__DEBUG__)
if ( plain >= m ) {
printf("ERROR: plain too big for this key\n");
}
#endif
return modexp( plain, e, m );
}
vlong private_key::decrypt( const vlong& cipher )
{
// Calculate values for performing decryption
// These could be cached, but the calculation is quite fast
vlong d = modinv( e, (p-(vlong)1)*(q-(vlong)1) );
vlong u = modinv( p, q );
vlong dp = d % (p-(vlong)1);
vlong dq = d % (q-(vlong)1);
// Apply chinese remainder theorem
vlong a = modexp( cipher % p, dp, p );
view all matches for this distributionview release on metacpan - search on metacpan
( run in 1.789 second using v1.00-cache-2.02-grep-82fe00e-cpan-2cc899e4a130 )