Lua-openssl - 所有的 openssl 子模块都是 nil

我试图按照这里的 readme 文件中的说明进行操作: https://github.com/zhaozg/lua-openssl

这是我正在运行的基本程序:

openssl = require 'openssl'
inspect = require 'inspect'
print(inspect(openssl.cipher))

只会在终端打印出 'nil'。

如果我尝试检查 "openssl" 对象, 我会得到以下输出:

{
  NO_IDEA = true,
  NO_MD2 = true,
  NO_MDC2 = true,
  NO_RC5 = true,
  NO_SCTP = true,
  SHLIB_VERSION_HISTORY = "",
  SHLIB_VERSION_NUMBER = "1.1",
  SSLEAY_BUILT_ON = 2,
  SSLEAY_CFLAGS = 1,
  SSLEAY_DIR = 4,
  SSLEAY_PLATFORM = 3,
  SSLEAY_VERSION = 0,
  SSLEAY_VERSION_NUMBER = 269484159,
  VERSION_NUMBER = 269484159,
  VERSION_TEXT = "OpenSSL 1.1.0g  2 Nov 2017",
  version = <function 1>
}

有什么想法吗?我做错了什么?

点赞
用户5555837
用户5555837

你的系统版本可能还没有密码模块,或者可能是openssl的另一个绑定版本。

在lua openssl所在文件夹中检查你的版本中存在哪些模块,在我的系统中位置为/usr/local/share/lua/5.1/openssl/,还有一个文件夹外的文件/usr/local/share/lua/5.1/openssl.lua以及共享对象/usr/local/lib/lua/5.1/_openssl.so,但在你的系统中可能不同。

为了保险起见,将这些文件备份到另一个地方。然后删除它们,并使用luarocks安装最新版本。

luarocks install openssl

Luarocks可能会在/usr/local/lib/lua/5.1/中安装新的共享对象。如果安装的模块名称中包含版本号,例如openssl_0_7_7_0-openssl.so,请重命名为openssl.so

2019-11-29 11:35:37