prime_len = 0060
input_len = big_mul( $prime_len, 02 )
input_len = big_add( $input_len, 07 )
input_len = big_div( $input_len, 08 )
e = 03
rgen_p:
p = prime_gen_bit( $prime_len )
tmpp = big_sub( $p, 01 )
x = big_mod( $tmpp, $e )
if $x == 00
goto rgen_p
endif
rgen_q:
q = prime_gen_bit( $prime_len )
tmpq = big_sub( $q, 01 )
x = big_mod( $tmpq, $e )
if $x == 00
goto rgen_q
endif
dec_indent
// std keypair
n = big_mul( $p, $q )
fn = big_mul( $tmpp, $tmpq )
d = big_mod_inv( $e, $fn )
input = hrandom( $input_len )
input = memset( $input, 00, 01, 01 )
// std enc dec
out = big_mod_exp( $input, $e, $n )
out2 = big_mod_exp( $out, $d, $n )
if $out2 != $input
?
pause
endif
// crt keypair
dp = big_mod_inv( $e, $tmpp )
dq = big_mod_inv( $e, $tmpq )
tmpp = big_sub( $p, 02 )
qinv = big_mod_exp( $q, $tmpp, $p )
tmplen = big_mul( $prime_len, 02 )
out3 = new_rsa_crt_decrypt( $tmplen, $p, $q, $dp, $dq, $qinv, $out )
if $out3 != $input
?
pause
endif