crc32, rsa rename

erg 2006-02-28 01:37:36 +00:00
parent ba13bb7eea
commit 1f5a2b0d75
4 changed files with 36 additions and 3 deletions

View File

@ -0,0 +1,21 @@
USING: kernel math sequences namespaces ;
IN: crypto-internals
: crc32-polynomial HEX: edb88320 ; inline
: crc32-init ( -- table )
256 [
8 [
dup 1 bitand 0 >
[ -1 shift crc32-polynomial bitxor ] [ -1 shift ] if
] times
] map ;
SYMBOL: crc32-table crc32-init global [ crc32-table set ] bind
: calc-crc32 ( crc ch -- crc )
over bitxor HEX: ff bitand crc32-table get nth swap -8 shift bitxor ;
IN: crypto
: >crc32 ( seq -- n ) HEX: ffffffff [ swap [ calc-crc32 ] each ] keep bitxor ;

View File

@ -10,9 +10,19 @@ USING: kernel parser sequences words compiler ;
"montgomery"
"random"
"miller-rabin"
! Rngs
"blum-blum-shub"
! Hash
"crc32"
"md5"
"sha1"
"rsa"
! Block ciphers
"rc4"
! Public key
"rsa"
} [ "/contrib/crypto/" swap ".factor" append3 run-resource ] each

View File

@ -12,7 +12,7 @@ SYMBOL: ee
TUPLE: rsa e d n ;
! n bits
: generate-key-pair ( bitlen -- <rsa> )
: generate-rsa-keypair ( bitlen -- <rsa> )
[
2 /i generate-two-unique-primes [ q set p set ] 2keep [ * n set ] 2keep
[ 1- ] 2apply * m set

View File

@ -31,6 +31,8 @@ USING: kernel math test namespaces crypto ;
[ 100000000000031 ] [ 100000000000000 next-miller-rabin-prime ] unit-test
[ 123456789 ] [ 512 generate-key-pair 123456789 over rsa-encrypt swap rsa-decrypt ] unit-test
[ 123456789 ] [ 128 generate-rsa-keypair 123456789 over rsa-encrypt swap rsa-decrypt ] unit-test
[ 0 ] [ "" >crc32 ] unit-test
[ HEX: cbf43926 ] [ "123456789" >crc32 ] unit-test