crc32, rsa rename
parent
ba13bb7eea
commit
1f5a2b0d75
|
@ -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 ;
|
||||
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue