clear
// # ------------------------------
// # Components of the RSA Key Pair
// # ------------------------------
//
// # RSA modulus n:
N = C66F5257D5EA83093E2138886282AFBC9CB1344BFA4F7AD4A37816DC56B5AA4FE90B958BE751ECEFCBA349B9C2F8023ED86CA2908D2DD3D32BFFF18022076522CC7C584CB685B22BCC27A242B7240BA2DC6C37806F0583EB9BB4D4FBF9DBC87920436D00C839B894688F54552E321165578A565081642099047DCF9EBC14D943FF834801BB4B12B7375FFACC748FD1FAC2A0973A3C5356D00C32BB41C3423124141D6A7C8C6449BA5CE2D9B239CF8513453072517C1E4740A9AC2CA8D179B163576FE75F3EEFD7102DCC45A841F4765A34561CB3999EDDFEC05D2A8441699CAE0C6DF8AADCCEA44D0A044D4BFA53450F4F9C0E418C1A8145DECEC58471B38B5B
e = 010001
P = F1EF30738232B74FCD0EEA6C3EBBB50EED730452F7516162CA0807890A63D853C53BF8376C88BE32206D0ECA92D5DD498B5A9FCB2229AB74545D979325B7D2A438C4E0986616BBA62BB1873B278B3A25942E14AEC2C2885D25DEBB3EF399DF604B0294928E6FB9EC2078F13E7A715EFF64F27A4933DA475BC44FD4B9254A62BB
q = D1F8B613A05576F2966BDC1BF275AED4CD70CCA6E76CAB74F0AAE60E7FD8B6E2A63F7FCF800BD08AB897687B9C9335099CBEAA5BE2B9022914B7F3FE0CF69B391DA98B78E1704EB4D73274E1AB7423BEE752274D7DC9B4EC52EA1B44A779B31B14849F6B01E0082DFA3477AA6E6189414CCAAE83D702799F2EFB874863887FE1
dp = 3C1C1CA2A657A979F74DDC6AB68F76A5D5D33CE0CC37F9054D82FF344A53925D05E5277FC5C497D4E67F922C3C9D4C54C87DE4B3D8B217BA5877C48037DFDB431823BA55C30FA4E1DD7B474928430C5867DFA71DE09FEAB792002BEFB120AB0246C0C65F3F6A7CFC30F93B9F3556D3AE8ACB401CCDF84EC07B1F069055B68C9F
dq = 0FE0DB0408EFED9AD2BD3D5BEFADEE96B12282976C90CF367CACAFD110E1F6929537E01674FC6FBCCDD0C559F3B13E2587F0F33917A01E05B54763F02652CFD235E808600FCC4A676A8EAA40169325D0DDF55C7B83B3A936E5DE46499ED09936C70A7073CB2481F9D81DF79EAFD2386AF3BFB00AD04BA39EE212AB5C520A9481
qinv = 88A0C0A542AA6EFCB258D3A1BA937DAF759C2518B567CDC0FC2D1C94F525114641159DEFE7609A116F30F8F2E91414710EE24123290D7A3B6589DF3571EF38CA4469460A3F5E4FA1FA4BACA184286EF7682594B4981C3CDA7F832BFC630DBA671FA76E15A78445B76148991CA092DE1D0AD863AA93767F1C99ADDB3BBEE85613
plainText = 11
cipherText = B0E7B4F8E165CE94714EDE5C41FAC3C32A9BCFB2E913BA4BDDDE6697A75A7B02B4E06FA27F66AB2DDE1B2D7568943E46BBD1125B3E84895B94599B6BDED4652E7F6FA5BBBD0626D273DDEE1ACF3DF16037FDF857477AC5A6CCCE80F0FEFAED37A507C282D37174FA181CE2FF5CD1E376D8280A9BA546E47295277E2A66B7CAC9C305D4865AF1C89F8FA09AC719CE25F7E4DC5ABFD53A4C86B12DD0AAC5F53C51DFD459A7E4C3C9EEE33E897BF6B93C0BBFCAE16ABACA8D0BA79BDE9DAEF2D20228D68C058A1F06241AC4F0CAEBDF82515AC1526CF0781656D6FA64C3DA464BE46222F855967B8C363877987F7591463FE268F783EDF4DB01DDE0C2EDFCD610F1
d = 824E3FE86614E58F80391882970DF2910CE460CF33C45588A5000B230DDDA5C56BE7AB807F9A90D8B704B739410AD38EA9584D38573D2CC89330334A4D0E461F9FE057ABA8800B0C2FB8271960624F31D74548FD11EAB1425AB158DB4EAC40ED297E9D69D211F55F9F79DF8B4016A8CDBFBA9C0BA9AC32ABC90344FF9BCAA510954BE7AB35FD6540429554C92EE427AEFFE9BAD6319E03410963BF8E747B7A66324286912F2C9E42340228E781BCDCC5C3549D8FA55482036E3A7BF6A2D41FB73399E17AC56910643794EA16A1FA58E1954AFD91E8F00E907C3CAF1CEE1DB9FCA505B54987DE1A74102F2332DB1F4BD27261189474FA33F7FEC800D5724F7501
x = new_rsa_oaep_sha256_std_decode( 0800, $n, $d, $cipherText )
if $x != $plaintext
?
pause
endif
x1 = new_rsa_oaep_sha1_pub_encode( 0800, $e, $n, 12345678, 9999 )
y1 = new_rsa_oaep_sha1_std_decode( 0800, $n, $d, $x1 )
if $y1 != 12345678
?
pause
endif
y2 = new_rsa_oaep_sha1_crt_decode( 0800, $p, $q, $dp, $dq, $qinv, $x1 )
if $y2 != 12345678
?
pause
endif
x1 = new_rsa_oaep_sha224_pub_encode( 0800, $e, $n, 12345678, 9999 )
y1 = new_rsa_oaep_sha224_std_decode( 0800, $n, $d, $x1 )
if $y1 != 12345678
?
pause
endif
y2 = new_rsa_oaep_sha224_crt_decode( 0800, $p, $q, $dp, $dq, $qinv, $x1 )
if $y2 != 12345678
?
pause
endif
x1 = new_rsa_oaep_sha256_pub_encode( 0800, $e, $n, 12345678, 9999 )
y1 = new_rsa_oaep_sha256_std_decode( 0800, $n, $d, $x1 )
if $y1 != 12345678
?
pause
endif
y2 = new_rsa_oaep_sha256_crt_decode( 0800, $p, $q, $dp, $dq, $qinv, $x1 )
if $y2 != 12345678
?
pause
endif
x1 = new_rsa_oaep_sha384_pub_encode( 0800, $e, $n, 12345678, 9999 )
y1 = new_rsa_oaep_sha384_std_decode( 0800, $n, $d, $x1 )
if $y1 != 12345678
?
pause
endif
y2 = new_rsa_oaep_sha384_crt_decode( 0800, $p, $q, $dp, $dq, $qinv, $x1 )
if $y2 != 12345678
?
pause
endif
x1 = new_rsa_oaep_sha512_pub_encode( 0800, $e, $n, 12345678, 9999 )
y1 = new_rsa_oaep_sha512_std_decode( 0800, $n, $d, $x1 )
if $y1 != 12345678
?
pause
endif
y2 = new_rsa_oaep_sha512_crt_decode( 0800, $p, $q, $dp, $dq, $qinv, $x1 )
if $y2 != 12345678
?
pause
endif