mirror of
https://github.com/bunkerity/bunkerweb
synced 2026-05-24 09:28:37 +00:00
7be2e1d907 bumped version to 0.16. 081d2fae41 feat: add AAD support in aes gcm 86aada55c4 change: make random.bytes cryptographically strong by default. 6f1bc21d86 tests: update nginx to 1.25.3. e6b80ac31d tests: upgrade nginx to 1.25.1. 775576d0e5 tests: fixed test failures caused by using non-perlbrew cpanm in travis. 78e5020229 travis-ci: bumped the NGINX core to 1.21.4. (#89) 1cc2f59417 tests: Certificate of Let's Encrypt expired, travis won't update the certificate in the image of trusty. (#87) git-subtree-dir: src/deps/src/lua-resty-string git-subtree-split: 7be2e1d907744f965af115819cca9e6580f2e760
46 lines
887 B
Lua
46 lines
887 B
Lua
-- Copyright (C) by Yichun Zhang (agentzh)
|
|
|
|
|
|
local ffi = require "ffi"
|
|
local ffi_new = ffi.new
|
|
local ffi_str = ffi.string
|
|
local C = ffi.C
|
|
--local setmetatable = setmetatable
|
|
--local error = error
|
|
local tonumber = tonumber
|
|
|
|
|
|
local _M = { _VERSION = '0.16' }
|
|
|
|
|
|
ffi.cdef[[
|
|
typedef unsigned char u_char;
|
|
|
|
u_char * ngx_hex_dump(u_char *dst, const u_char *src, size_t len);
|
|
|
|
intptr_t ngx_atoi(const unsigned char *line, size_t n);
|
|
]]
|
|
|
|
local str_type = ffi.typeof("uint8_t[?]")
|
|
|
|
local BUF_MAX_LEN = 1024
|
|
local hex_buf = ffi_new(str_type, BUF_MAX_LEN)
|
|
function _M.to_hex(s)
|
|
local len = #s
|
|
local buf_len = len * 2
|
|
local buf
|
|
if buf_len <= BUF_MAX_LEN then
|
|
buf = hex_buf
|
|
else
|
|
buf = ffi_new(str_type, buf_len)
|
|
end
|
|
C.ngx_hex_dump(buf, s, len)
|
|
return ffi_str(buf, buf_len)
|
|
end
|
|
|
|
function _M.atoi(s)
|
|
return tonumber(C.ngx_atoi(s, #s))
|
|
end
|
|
|
|
|
|
return _M
|