"ddos challenge" style script #4
3 changed files with 56 additions and 0 deletions
8
test.lua
8
test.lua
|
|
@ -2,6 +2,14 @@ lu = require('luaunit')
|
|||
local rex = require('rex_pcre2')
|
||||
require('util')
|
||||
|
||||
-- Preload mock resty libraries for testing
|
||||
package.preload['resty.sha256'] = function()
|
||||
return require('tests.mock_resty_sha256')
|
||||
end
|
||||
package.preload['resty.string'] = function()
|
||||
return require('tests.mock_resty_string')
|
||||
end
|
||||
|
||||
function createNgx()
|
||||
local ngx = {
|
||||
status = nil
|
||||
|
|
|
|||
35
tests/mock_resty_sha256.lua
Normal file
35
tests/mock_resty_sha256.lua
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
-- Mock implementation of resty.sha256 for testing
|
||||
-- Uses system sha256sum command since we don't have OpenResty libraries
|
||||
|
||||
local sha256 = {}
|
||||
sha256.__index = sha256
|
||||
|
||||
function sha256:new()
|
||||
local obj = {
|
||||
buffer = ""
|
||||
}
|
||||
setmetatable(obj, sha256)
|
||||
return obj
|
||||
end
|
||||
|
||||
function sha256:update(data)
|
||||
self.buffer = self.buffer .. data
|
||||
end
|
||||
|
||||
function sha256:final()
|
||||
-- Use sha256sum command to compute hash
|
||||
local handle = io.popen("echo -n '" .. self.buffer:gsub("'", "'\\''") .. "' | sha256sum")
|
||||
local result = handle:read("*a")
|
||||
handle:close()
|
||||
|
||||
-- Parse hex string into binary
|
||||
local hex = result:match("^(%x+)")
|
||||
local binary = {}
|
||||
for i = 1, #hex, 2 do
|
||||
table.insert(binary, string.char(tonumber(hex:sub(i, i+1), 16)))
|
||||
end
|
||||
|
||||
return table.concat(binary)
|
||||
end
|
||||
|
||||
return sha256
|
||||
13
tests/mock_resty_string.lua
Normal file
13
tests/mock_resty_string.lua
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
-- Mock implementation of resty.string for testing
|
||||
|
||||
local str = {}
|
||||
|
||||
function str.to_hex(binary)
|
||||
local hex = {}
|
||||
for i = 1, #binary do
|
||||
table.insert(hex, string.format("%02x", string.byte(binary, i)))
|
||||
end
|
||||
return table.concat(hex)
|
||||
end
|
||||
|
||||
return str
|
||||
Loading…
Add table
Add a link
Reference in a new issue