Skip to content

Commit d384c40

Browse files
bungleleafo
authored andcommitted
pgmoon.crypto digest_sha256 to support resty.openssl (and resty.string)
1 parent 5c7ca2a commit d384c40

File tree

2 files changed

+45
-8
lines changed

2 files changed

+45
-8
lines changed

pgmoon/crypto.lua

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,34 @@ else
5353
end
5454
end
5555
local digest_sha256
56-
digest_sha256 = function(str)
57-
local digest = assert(require("openssl.digest").new("sha256"))
58-
digest:update(str)
59-
return assert(digest:final())
56+
if pcall(function()
57+
return require("openssl.digest")
58+
end) then
59+
digest_sha256 = function(str)
60+
local digest = assert(require("openssl.digest").new("sha256"))
61+
digest:update(str)
62+
return assert(digest:final())
63+
end
64+
elseif pcall(function()
65+
return require("resty.sha256")
66+
end) then
67+
digest_sha256 = function(str)
68+
local digest = assert(require("resty.sha256"):new())
69+
digest:update(str)
70+
return assert(digest:final())
71+
end
72+
elseif pcall(function()
73+
return require("resty.openssl.digest")
74+
end) then
75+
digest_sha256 = function(str)
76+
local digest = assert(require("resty.openssl.digest").new("sha256"))
77+
digest:update(str)
78+
return assert(digest:final())
79+
end
80+
else
81+
digest_sha256 = function()
82+
return error("Either luaossl or resty.openssl is required to calculate sha256 digest")
83+
end
6084
end
6185
local kdf_derive_sha256
6286
if pcall(function()

pgmoon/crypto.moon

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,23 @@ else
3232
-> error "Either luaossl or resty.openssl is required to calculate hmac sha256 digest"
3333

3434

35-
digest_sha256 = (str) ->
36-
digest = assert require("openssl.digest").new("sha256")
37-
digest\update str
38-
assert digest\final!
35+
digest_sha256 = if pcall -> require "openssl.digest"
36+
(str) ->
37+
digest = assert require("openssl.digest").new("sha256")
38+
digest\update str
39+
assert digest\final!
40+
elseif pcall -> require "resty.sha256"
41+
(str) ->
42+
digest = assert require("resty.sha256")\new()
43+
digest\update str
44+
assert digest\final!
45+
elseif pcall -> require "resty.openssl.digest"
46+
(str) ->
47+
digest = assert require("resty.openssl.digest").new("sha256")
48+
digest\update str
49+
assert digest\final!
50+
else
51+
-> error "Either luaossl or resty.openssl is required to calculate sha256 digest"
3952

4053

4154
kdf_derive_sha256 = if pcall -> require "openssl.kdf"

0 commit comments

Comments
 (0)