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})
                }
            }
        }
        

方法

要加载此库,

  1. 您需要在 ngx_lua 的 lua_package_path 指令中指定此库的路径。例如,lua_package_path "/path/to/lua-resty-sm4/lib/?.lua;;";

  2. 您可以使用 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

依赖

版本