lua-resty-sm4
纯 Lua 实现的 SM4 块密码算法
$ opm get toruneko/lua-resty-sm4
名称
lua-resty-sm4 - 用于 LuaJIT 的 SM4 块密码算法
状态
该库被认为已准备好投入生产环境。
构建状态: [!Travis](https://travis-ci.org/toruneko/lua-resty-sm4)
描述
此库需要使用 ngx_lua 模块 构建的 nginx 以及 LuaJIT 2.0。
概要
# nginx.conf:
lua_package_path "/path/to/lua-resty-sm4/lib/?.lua;;";
server {
location = /t {
content_by_lua_block {
local resty_sm4 = require "resty.sm4"
local sm4 = resty_sm4:new({0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10})
local enc_data = sm4:encrypt({0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10})
local dec_data = sm4:decrypt({0x68, 0x1e, 0xdf, 0x34, 0xd2, 0x06, 0x96, 0x5e, 0x86, 0xb3, 0xe9, 0x4f, 0x53, 0x6e, 0x42, 0x46})
}
}
}
方法
要加载此库,
您需要在 ngx_lua 的 lua_package_path 指令中指定此库的路径。例如,
lua_package_path "/path/to/lua-resty-sm4/lib/?.lua;;";
。您可以使用
require
将库加载到一个本地 Lua 变量中
local sm4 = require "resty.sm4"
cipher
语法:ciph = sm4.cipher(_cipher)
为 lua-resty-string
模块创建一个 evp 密码对象。
local resty_sm4 = require "resty.sm4"
local resty_aes = require "resty.aes"
local str = require "resty.string"
local ciph = resty_sm4.cipher()
local sm4, err = resty_aes:new("secret", nil, ciph)
local enc_data = sm4:encrypt("abc")
ngx.say(str.to_hex(enc_data))
new
语法:obj = sm4.new()
创建一个新的 sm4 对象实例
-- creates a sm4 object
local resty_sm4 = require "resty.sm4"
local sm4 = resty_sm4:new()
encrypt
语法:enc_data = sm4:encrypt(block)
decrypt
语法:dec_data = sm4:decrypt(block)
作者
Jianhao Dai (toruneko) <toruneko@outlook.com>
版权和许可
此模块是在 MIT 许可下授权的。
版权所有 (C) 2018,Jianhao Dai (toruneko) <toruneko@outlook.com>
保留所有权利。
在满足以下条件的情况下,允许以源代码和二进制形式重新分发和使用本软件,无论是否修改:
源代码的重新分发必须保留上述版权声明、此条件列表以及以下免责声明。
二进制形式的重新分发必须在随分发提供的文档和/或其他材料中复制上述版权声明、此条件列表以及以下免责声明。
本软件由版权持有人和贡献者“按现状”提供,不附带任何形式的明示或暗示保证,包括但不限于适销性和特定用途适用性的暗示保证。在任何情况下,版权持有人或贡献者均不对任何直接、间接、偶然、特殊、示例性或后果性损害(包括但不限于替代商品或服务的采购;使用、数据或利润损失;或业务中断)负责,无论其原因如何,以及无论诉讼形式如何,无论是基于合同、严格责任还是侵权(包括疏忽或其他原因),无论是否因使用本软件而产生,即使已被告知可能发生此类损害。
另请参阅
ngx_lua 模块:https://github.com/openresty/lua-nginx-module =back
POD 错误
嘿!以上文档存在一些编码错误,解释如下:
- 大约在第 147 行
-
=over 没有关闭 =back
作者
Jianhao Dai(toruneko)
许可
mit