|
9 | 9 | [signature-generator :refer [signature-generator]]]))
|
10 | 10 |
|
11 | 11 | (def ^:private algorithms-names
|
12 |
| - (-> '{gost "GOST3411" |
13 |
| - whirlpool "Whirlpool" |
14 |
| - adler32 "ADLER-32" |
15 |
| - crc32 "CRC-32" |
16 |
| - tiger "Tiger" |
17 |
| - siphash "Siphash-2-4" |
18 |
| - siphash48 "Siphash-4-8"} |
| 12 | + (-> '{gost "GOST3411" |
| 13 | + whirlpool "Whirlpool" |
| 14 | + adler32 "ADLER-32" |
| 15 | + crc32 "CRC-32" |
| 16 | + tiger "Tiger" |
| 17 | + parallelhash128-256 "PARALLELHASH128-256" |
| 18 | + parallelhash256-512 "PARALLELHASH256-512" |
| 19 | + siphash "Siphash-2-4" |
| 20 | + siphash48 "Siphash-4-8" |
| 21 | + shake128-256 "SHAKE128-256" |
| 22 | + shake256-512 "SHAKE256-512" |
| 23 | + sm3 "SM3" |
| 24 | + tuplehash128-256 "TUPLEHASH128-256" |
| 25 | + tuplehash256-512 "TUPLEHASH256-512" |
| 26 | + } |
| 27 | + |
| 28 | + ;; BLAKE2B |
| 29 | + (into |
| 30 | + (for [length [160 256 384 512]] |
| 31 | + [(as-sym 'blake2b- length) (str "BLAKE2B-" length)])) |
| 32 | + |
| 33 | + ;; BLAKE2S |
| 34 | + (into |
| 35 | + (for [length [128 160 224 256]] |
| 36 | + [(as-sym 'blake2s- length) (str "BLAKE2S-" length)])) |
| 37 | + |
| 38 | + ;; BLAKE3 |
| 39 | + (into |
| 40 | + (for [length [256]] |
| 41 | + [(as-sym 'blake3- length) (str "BLAKE3-" length)])) |
| 42 | + |
| 43 | + ;; HARAKA |
| 44 | + (into |
| 45 | + (for [length [256 512]] |
| 46 | + [(as-sym 'haraka- length) (str "HARAKA-" length)])) |
19 | 47 |
|
20 | 48 | ;; KECCAK
|
21 | 49 | (into
|
22 |
| - (for [length [224 256 384 512]] |
| 50 | + (for [length [224 256 288 384 512]] |
23 | 51 | [(as-sym 'keccak- length) (str "Keccak-" length)]))
|
24 | 52 |
|
25 |
| - ;; BLAKE2B |
| 53 | + ;; KUPYNA |
26 | 54 | (into
|
27 |
| - (for [length [160 256 384 512]] |
28 |
| - [(as-sym 'blake2b- length) (str "BLAKE2B-" length)])) |
| 55 | + (for [length [256 384 512]] |
| 56 | + [(as-sym 'kupyna- length) (str "DSTU7564-" length)])) |
| 57 | + (into |
| 58 | + (for [length [256 384 512]] |
| 59 | + [(as-sym 'dstu7464- length) (str "DSTU7564-" length)])) |
29 | 60 |
|
30 | 61 | ;; MDx
|
31 | 62 | (into
|
|
45 | 76 | ;; SHA-3
|
46 | 77 | (into
|
47 | 78 | (for [length [224 256 384 512]]
|
48 |
| - [(as-sym 'sha3- length) (str "SHA3-" length)])))) |
| 79 | + [(as-sym 'sha3- length) (str "SHA3-" length)])) |
| 80 | + |
| 81 | + ;; SHA-512 |
| 82 | + (into |
| 83 | + (for [length [224 256]] |
| 84 | + [(as-sym 'sha512- length) (str "SHA-512/" length)])) |
| 85 | + |
| 86 | + ;; SKEIN-256 |
| 87 | + (into |
| 88 | + (for [length [128 160 224 256]] |
| 89 | + [(as-sym 'skein256- length) (str "SKEIN-256-" length)])) |
| 90 | + |
| 91 | + ;; SKEIN-512 |
| 92 | + (into |
| 93 | + (for [length [128 160 224 256 384 512]] |
| 94 | + [(as-sym 'skein512- length) (str "SKEIN-512-" length)])) |
| 95 | + |
| 96 | + ;; SKEIN-1024 |
| 97 | + (into |
| 98 | + (for [length [384 512 1024]] |
| 99 | + [(as-sym 'skein1024- length) (str "SKEIN-1024-" length)])))) |
| 100 | + |
| 101 | + |
| 102 | +(defn missing-algorithms |
| 103 | + [] |
| 104 | + (->> (java.security.Security/getAlgorithms "MessageDigest") |
| 105 | + (remove #(re-matches #"^.*\d\.\d.+" %)) |
| 106 | + (remove (comp (set (sort (map clojure.string/lower-case (vals algorithms-names)))) |
| 107 | + clojure.string/lower-case)) |
| 108 | + (sort))) |
| 109 | + |
| 110 | +(missing-algorithms) |
49 | 111 |
|
50 | 112 | (def ^:private generators
|
51 | 113 | [hash-generator
|
|
85 | 147 | (fn [[sym algorithm]]
|
86 | 148 | (let [filename (.replace (format "%s.clj" sym) \- \_)]
|
87 | 149 | (locking *out*
|
88 |
| - (println "[codegen] *" algorithm)) |
| 150 | + (println "[codegen] *" sym '-> algorithm)) |
89 | 151 | (doto (file base "pandect" "algo" filename)
|
90 | 152 | (-> .getParentFile .mkdirs)
|
91 | 153 | (write-source! sym algorithm)))))
|
|
0 commit comments