From d77ce19bf01a009cf5255e0a5d8201d8cc2f2178 Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Tue, 18 Aug 2020 23:44:12 -0400 Subject: Calculate SHA-1 and MD5 hashes. --- stdlib/source/program/aedifex/hash.lux | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 stdlib/source/program/aedifex/hash.lux (limited to 'stdlib/source/program/aedifex/hash.lux') diff --git a/stdlib/source/program/aedifex/hash.lux b/stdlib/source/program/aedifex/hash.lux new file mode 100644 index 000000000..bd4396006 --- /dev/null +++ b/stdlib/source/program/aedifex/hash.lux @@ -0,0 +1,27 @@ +(.module: + [lux #* + ["." host (#+ import:)] + [data + ["." binary (#+ Binary)]]]) + +## TODO: Replace with pure-Lux implementations of these algorithms +## https://en.wikipedia.org/wiki/SHA-1#SHA-1_pseudocode +## https://en.wikipedia.org/wiki/MD5#Algorithm +(import: #long java/lang/String) + +(import: #long java/security/MessageDigest + (#static getInstance [java/lang/String] java/security/MessageDigest) + (digest [[byte]] [byte])) + +(type: #export Hash + Binary) + +(template [ ] + [(def: #export ( value) + (-> Binary Hash) + (|> (java/security/MessageDigest::getInstance []) + (java/security/MessageDigest::digest [value])))] + + [sha1 "SHA-1"] + [md5 "MD5"] + ) -- cgit v1.2.3