aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
blob: eb7d882ff893b9f4a7f9c4758ca83b319c6d15cd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
COMPLETE STATUS:

    Java 1.2+      :: optimised
    Python 3       :: optimised
    Python 2       :: optimised for Python 3
    C ISO C90      :: optimised
    Java/C JNI     :: optimised
    Vala           :: under development
    NASM           :: planned (maybe)
    Python 3 + C   :: planned (maybe)
    Haskell        :: planned (maybe)
    Perl           :: planned (maybe)
    D              :: planned (maybe)
    Common Lisp    :: planned (perhaps)
    Scala          :: planned (perhaps)
    Magic          :: planned (perhaps)


PERFORMANCE COMPARISON:

    C ISO C90    ::  0,082s ~   1
    Java/C JNI   ::  0,175s ~   2,13
    Java 1.2+    ::  0,258s ~   3,15
    Python 3     :: 25,057s ~ 306
    Python 2     :: 37,488s ~ 457
    
    Based on test against a 2,3 MB file.


**SHA-3/Keccak checksum calculator**

*USAGE:*

    sha3sum [option...] < FILE
    sha3sum [option...] file...

*OPTIONS:*

    -r BITRATE
    --bitrate      The bitrate to use for SHA-3.          (default: 1024)
    
    -c CAPACITY
    --capacity     The capacity to use for SHA-3.         (default: 576)
    
    -w WORDSIZE
    --wordsize     The word size to use for SHA-3.        (default: 64)
    
    -o OUTPUTSIZE
    --outputsize   The output size to use for SHA-3.      (default: 512)
    
    -s STATESIZE
    --statesize    The state size to use for SHA-3.       (default: 1600)
    
    -i ITERATIONS
    --iterations   The number of hash iterations to run.  (default: 1)
    
    -j SQUEEZES
    --squeezes      The number of hash squeezes to run.   (default: 1)
    
    -h
    --hex          Read the input in hexadecimal, rather than binary.
    
    -b
    --binary       Print the checksum in binary, rather than hexadecimal.
    
    -m
    --multi         Print the chechsum at all iterations.


Pending the standardisation of SHA-3, there is no specification of particular SHA-3 functions yet.
Our defaults are based on Keccak[] being Keccak[r = 1024, c = 576] rather than the functions in
Wikipedias entires that uses [r = 576, c = 1024].


If you want to contribute with an implementation in another
language, please try do so in the earliest version of the
language officially supported on GNU/Linux, unless there are
backwards incompatibilities (as is the case with Python.)
This helps for embedded devices.