Software / code / verse
Comparison
libs/hashes.lua @ 484:5e2978489c95
libs/hashes: Support for luaossl (lua-luaossl on Debian)
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Thu, 23 Mar 2023 18:54:13 +0000 |
| parent | 443:89526c890363 |
comparison
equal
deleted
inserted
replaced
| 483:33d566513eb0 | 484:5e2978489c95 |
|---|---|
| 6 local _M = setmetatable({}, { __index = not_available }); | 6 local _M = setmetatable({}, { __index = not_available }); |
| 7 | 7 |
| 8 local function with(mod, f) | 8 local function with(mod, f) |
| 9 local ok, pkg = pcall(require, mod); | 9 local ok, pkg = pcall(require, mod); |
| 10 if ok then f(pkg); end | 10 if ok then f(pkg); end |
| 11 end | |
| 12 | |
| 13 local function to_hex(data) | |
| 14 return (data:gsub(".", function (c) | |
| 15 return ("%02x"):format(c:byte()); | |
| 16 end)); | |
| 11 end | 17 end |
| 12 | 18 |
| 13 with("util.sha1", function (sha1) | 19 with("util.sha1", function (sha1) |
| 14 _M.sha1 = sha1.sha1; | 20 _M.sha1 = sha1.sha1; |
| 15 end); | 21 end); |
| 43 return (sha1.binary(data)); | 49 return (sha1.binary(data)); |
| 44 end | 50 end |
| 45 end; | 51 end; |
| 46 end); | 52 end); |
| 47 | 53 |
| 54 with("openssl.digest", function (digest) | |
| 55 local function make_digest_func(digest_name) | |
| 56 return function (data, hex) | |
| 57 local d = digest.new(digest_name):final(data); | |
| 58 if hex then | |
| 59 return to_hex(d); | |
| 60 end | |
| 61 return d; | |
| 62 end; | |
| 63 end | |
| 64 _M.sha1 = make_digest_func("sha1"); | |
| 65 end); | |
| 66 | |
| 48 return _M; | 67 return _M; |