summaryrefslogtreecommitdiff
path: root/tex/context/base/mkiv/l-sha.lua
blob: 8481f7f45e853035dbdd9374b6dda4a7ff3f9100 (plain)
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
if not modules then modules = { } end modules ['l-sha'] = {
    version   = 1.001,
    comment   = "companion to luat-lib.mkiv",
    author    = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
    copyright = "PRAGMA ADE / ConTeXt Development Team",
    license   = "see context related readme files"
}

if sha2 then

    local lpegmatch    = lpeg.match
    local lpegpatterns = lpeg.patterns
    local bytestohex   = lpegpatterns.bytestohex
    local bytestoHEX   = lpegpatterns.bytestoHEX

    local digest256 = sha2.digest256
    local digest384 = sha2.digest384
    local digest512 = sha2.digest512

    sha2.hash256 = function(str) return lpegmatch(bytestohex,digest256(str)) end
    sha2.hash384 = function(str) return lpegmatch(bytestohex,digest384(str)) end
    sha2.hash512 = function(str) return lpegmatch(bytestohex,digest512(str)) end
    sha2.HASH256 = function(str) return lpegmatch(bytestoHEX,digest256(str)) end
    sha2.HASH384 = function(str) return lpegmatch(bytestoHEX,digest384(str)) end
    sha2.HASH512 = function(str) return lpegmatch(bytestoHEX,digest512(str)) end

end