7 Commits

23 changed files with 97 additions and 50 deletions

View File

@ -1,3 +1,18 @@
--------------------------------------------------------------------------------
LuaSec 1.3.1
---------------
This version includes:
* Fix: check if PSK is available
--------------------------------------------------------------------------------
LuaSec 1.3.0
---------------
This version includes:
* Add :getlocalchain() + :getlocalcertificate() to mirror the peer methods (@mwild1)
* Add Pre-Shared Key (PSK) support (@jclab-joseph)
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
LuaSec 1.2.0 LuaSec 1.2.0
--------------- ---------------

View File

@ -1,9 +1,9 @@
LuaSec 1.2.0 LuaSec 1.3.1
------------ ------------
* OpenSSL options: * OpenSSL options:
By default, this version includes options for OpenSSL 3.0.0 beta2 By default, this version includes options for OpenSSL 3.0.8
If you need to generate the options for a different version of OpenSSL: If you need to generate the options for a different version of OpenSSL:

View File

@ -1,5 +1,5 @@
LuaSec 1.2.0 license LuaSec 1.3.1 license
Copyright (C) 2006-2022 Bruno Silvestre, UFG Copyright (C) 2006-2023 Bruno Silvestre, UFG
Permission is hereby granted, free of charge, to any person obtaining Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the a copy of this software and associated documentation files (the

View File

@ -1,4 +1,4 @@
LuaSec 1.2.0 LuaSec 1.3.1
=============== ===============
LuaSec depends on OpenSSL, and integrates with LuaSocket to make it LuaSec depends on OpenSSL, and integrates with LuaSocket to make it
easy to add secure connections to any Lua applications or scripts. easy to add secure connections to any Lua applications or scripts.

View File

@ -1,8 +1,8 @@
package = "LuaSec" package = "LuaSec"
version = "1.2.0-1" version = "1.3.1-1"
source = { source = {
url = "git+https://github.com/brunoos/luasec", url = "git+https://github.com/brunoos/luasec",
tag = "v1.2.0", tag = "v1.3.1",
} }
description = { description = {
summary = "A binding for OpenSSL library to provide TLS/SSL communication over LuaSocket.", summary = "A binding for OpenSSL library to provide TLS/SSL communication over LuaSocket.",
@ -87,7 +87,7 @@ build = {
"$(OPENSSL_BINDIR)", "$(OPENSSL_BINDIR)",
}, },
libraries = { libraries = {
"libssl32MD", "libcrypto32MD", "ws2_32" "libssl", "libcrypto", "ws2_32"
}, },
incdirs = { incdirs = {
"$(OPENSSL_INCDIR)", "src/", "src/luasocket" "$(OPENSSL_INCDIR)", "src/", "src/luasocket"

View File

@ -61,7 +61,7 @@
<DebugInformationFormat>EditAndContinue</DebugInformationFormat> <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile> </ClCompile>
<Link> <Link>
<AdditionalDependencies>ws2_32.lib;libeay32MDd.lib;ssleay32MDd.lib;lua5.1.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>ws2_32.lib;libssl.lib;libcrypto.lib;lua5.1.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)ssl.dll</OutputFile> <OutputFile>$(OutDir)ssl.dll</OutputFile>
<AdditionalLibraryDirectories>C:\devel\openssl\lib\VC;C:\devel\lua-dll9;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> <AdditionalLibraryDirectories>C:\devel\openssl\lib\VC;C:\devel\lua-dll9;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>true</GenerateDebugInformation>
@ -85,7 +85,7 @@
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat> <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile> </ClCompile>
<Link> <Link>
<AdditionalDependencies>ws2_32.lib;libssl32MD.lib;libcrypto32MD.lib;lua5.1.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>ws2_32.lib;libssl.lib;libcrypto.lib;lua5.1.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile> <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
<AdditionalLibraryDirectories>C:\devel\openssl-1.1.0\lib\VC;C:\devel\lua-5.1\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> <AdditionalLibraryDirectories>C:\devel\openssl-1.1.0\lib\VC;C:\devel\lua-5.1\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>true</GenerateDebugInformation>

View File

@ -4,6 +4,11 @@
local socket = require("socket") local socket = require("socket")
local ssl = require("ssl") local ssl = require("ssl")
if not ssl.config.capabilities.psk then
print("[ERRO] PSK not available")
os.exit(1)
end
-- @param hint (nil | string) -- @param hint (nil | string)
-- @param max_identity_len (number) -- @param max_identity_len (number)
-- @param max_psk_len (number) -- @param max_psk_len (number)

View File

@ -4,6 +4,11 @@
local socket = require("socket") local socket = require("socket")
local ssl = require("ssl") local ssl = require("ssl")
if not ssl.config.capabilities.psk then
print("[ERRO] PSK not available")
os.exit(1)
end
-- @param identity (string) -- @param identity (string)
-- @param max_psk_len (number) -- @param max_psk_len (number)
-- @return psk (string) -- @return psk (string)

View File

@ -1,7 +1,7 @@
/*-------------------------------------------------------------------------- /*--------------------------------------------------------------------------
* LuaSec 1.2.0 * LuaSec 1.3.1
* *
* Copyright (C) 2006-2022 Bruno Silvestre * Copyright (C) 2006-2023 Bruno Silvestre
* *
*--------------------------------------------------------------------------*/ *--------------------------------------------------------------------------*/
@ -54,4 +54,10 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
#if !defined(LIBRESSL_VERSION_NUMBER) && !defined(OPENSSL_NO_PSK)
#define LSEC_ENABLE_PSK
#endif
//------------------------------------------------------------------------------
#endif #endif

View File

@ -1,7 +1,7 @@
/*-------------------------------------------------------------------------- /*--------------------------------------------------------------------------
* LuaSec 1.2.0 * LuaSec 1.3.1
* *
* Copyright (C) 2006-2022 Bruno Silvestre. * Copyright (C) 2006-2023 Bruno Silvestre
* *
*--------------------------------------------------------------------------*/ *--------------------------------------------------------------------------*/
@ -74,6 +74,12 @@ LSEC_API int luaopen_ssl_config(lua_State *L)
lua_pushboolean(L, 1); lua_pushboolean(L, 1);
lua_rawset(L, -3); lua_rawset(L, -3);
#ifdef LSEC_ENABLE_PSK
lua_pushstring(L, "psk");
lua_pushboolean(L, 1);
lua_rawset(L, -3);
#endif
#ifdef LSEC_ENABLE_DANE #ifdef LSEC_ENABLE_DANE
// DANE // DANE
lua_pushstring(L, "dane"); lua_pushstring(L, "dane");

View File

@ -1,9 +1,8 @@
/*-------------------------------------------------------------------------- /*--------------------------------------------------------------------------
* LuaSec 1.2.0 * LuaSec 1.3.1
* *
* Copyright (C) 2014-2022 Kim Alvefur, Paul Aurich, Tobias Markmann, * Copyright (C) 2014-2023 Kim Alvefur, Paul Aurich, Tobias Markmann, Matthew Wild
* Matthew Wild. * Copyright (C) 2006-2023 Bruno Silvestre
* Copyright (C) 2006-2022 Bruno Silvestre.
* *
*--------------------------------------------------------------------------*/ *--------------------------------------------------------------------------*/
@ -708,6 +707,7 @@ static int set_alpn_cb(lua_State *L)
return 1; return 1;
} }
#if defined(LSEC_ENABLE_PSK)
/** /**
* Callback to select the PSK. * Callback to select the PSK.
*/ */
@ -842,6 +842,7 @@ static int set_client_psk_cb(lua_State *L) {
lua_pushboolean(L, 1); lua_pushboolean(L, 1);
return 1; return 1;
} }
#endif
#if defined(LSEC_ENABLE_DANE) #if defined(LSEC_ENABLE_DANE)
/* /*
@ -894,9 +895,11 @@ static luaL_Reg funcs[] = {
{"setdhparam", set_dhparam}, {"setdhparam", set_dhparam},
{"setverify", set_verify}, {"setverify", set_verify},
{"setoptions", set_options}, {"setoptions", set_options},
#if defined(LSEC_ENABLE_PSK)
{"setpskhint", set_psk_identity_hint}, {"setpskhint", set_psk_identity_hint},
{"setserverpskcb", set_server_psk_cb}, {"setserverpskcb", set_server_psk_cb},
{"setclientpskcb", set_client_psk_cb}, {"setclientpskcb", set_client_psk_cb},
#endif
{"setmode", set_mode}, {"setmode", set_mode},
#if !defined(OPENSSL_NO_EC) #if !defined(OPENSSL_NO_EC)
{"setcurve", set_curve}, {"setcurve", set_curve},

View File

@ -2,9 +2,9 @@
#define LSEC_CONTEXT_H #define LSEC_CONTEXT_H
/*-------------------------------------------------------------------------- /*--------------------------------------------------------------------------
* LuaSec 1.2.0 * LuaSec 1.3.1
* *
* Copyright (C) 2006-2022 Bruno Silvestre * Copyright (C) 2006-2023 Bruno Silvestre
* *
*--------------------------------------------------------------------------*/ *--------------------------------------------------------------------------*/

View File

@ -1,3 +1,10 @@
/*--------------------------------------------------------------------------
* LuaSec 1.3.1
*
* Copyright (C) 2006-2023 Bruno Silvestre
*
*--------------------------------------------------------------------------*/
#include <openssl/objects.h> #include <openssl/objects.h>
#include "ec.h" #include "ec.h"

View File

@ -1,7 +1,7 @@
/*-------------------------------------------------------------------------- /*--------------------------------------------------------------------------
* LuaSec 1.2.0 * LuaSec 1.3.1
* *
* Copyright (C) 2006-2022 Bruno Silvestre * Copyright (C) 2006-2023 Bruno Silvestre
* *
*--------------------------------------------------------------------------*/ *--------------------------------------------------------------------------*/

View File

@ -1,6 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaSec 1.2.0 -- LuaSec 1.3.1
-- Copyright (C) 2009-2022 PUC-Rio --
-- Copyright (C) 2009-2023 PUC-Rio
-- --
-- Author: Pablo Musa -- Author: Pablo Musa
-- Author: Tomas Guisasola -- Author: Tomas Guisasola
@ -18,8 +19,8 @@ local try = socket.try
-- Module -- Module
-- --
local _M = { local _M = {
_VERSION = "1.2.0", _VERSION = "1.3.1",
_COPYRIGHT = "LuaSec 1.2.0 - Copyright (C) 2009-2022 PUC-Rio", _COPYRIGHT = "LuaSec 1.3.1 - Copyright (C) 2009-2023 PUC-Rio",
PORT = 443, PORT = 443,
TIMEOUT = 60 TIMEOUT = 60
} }

View File

@ -1,7 +1,7 @@
/*-------------------------------------------------------------------------- /*--------------------------------------------------------------------------
* LuaSec 1.2.0 * LuaSec 1.3.1
* *
* Copyright (C) 2006-2022 Bruno Silvestre * Copyright (C) 2006-2023 Bruno Silvestre
* *
*--------------------------------------------------------------------------*/ *--------------------------------------------------------------------------*/
@ -13,7 +13,7 @@
/* /*
OpenSSL version: OpenSSL 3.0.0-beta2 OpenSSL version: OpenSSL 3.0.8
*/ */
static lsec_ssl_option_t ssl_options[] = { static lsec_ssl_option_t ssl_options[] = {

View File

@ -2,9 +2,9 @@
#define LSEC_OPTIONS_H #define LSEC_OPTIONS_H
/*-------------------------------------------------------------------------- /*--------------------------------------------------------------------------
* LuaSec 1.2.0 * LuaSec 1.3.1
* *
* Copyright (C) 2006-2022 Bruno Silvestre * Copyright (C) 2006-2023 Bruno Silvestre
* *
*--------------------------------------------------------------------------*/ *--------------------------------------------------------------------------*/

View File

@ -18,9 +18,9 @@ end
local function generate(options, version) local function generate(options, version)
print([[ print([[
/*-------------------------------------------------------------------------- /*--------------------------------------------------------------------------
* LuaSec 1.2.0 * LuaSec 1.3.1
* *
* Copyright (C) 2006-2022 Bruno Silvestre * Copyright (C) 2006-2023 Bruno Silvestre
* *
*--------------------------------------------------------------------------*/ *--------------------------------------------------------------------------*/

View File

@ -1,9 +1,8 @@
/*-------------------------------------------------------------------------- /*--------------------------------------------------------------------------
* LuaSec 1.2.0 * LuaSec 1.3.1
* *
* Copyright (C) 2014-2022 Kim Alvefur, Paul Aurich, Tobias Markmann, * Copyright (C) 2014-2023 Kim Alvefur, Paul Aurich, Tobias Markmann, Matthew Wild
* Matthew Wild. * Copyright (C) 2006-2023 Bruno Silvestre
* Copyright (C) 2006-2022 Bruno Silvestre.
* *
*--------------------------------------------------------------------------*/ *--------------------------------------------------------------------------*/
@ -948,7 +947,7 @@ static int meth_getalpn(lua_State *L)
static int meth_copyright(lua_State *L) static int meth_copyright(lua_State *L)
{ {
lua_pushstring(L, "LuaSec 1.2.0 - Copyright (C) 2006-2022 Bruno Silvestre, UFG" lua_pushstring(L, "LuaSec 1.3.1 - Copyright (C) 2006-2023 Bruno Silvestre, UFG"
#if defined(WITH_LUASOCKET) #if defined(WITH_LUASOCKET)
"\nLuaSocket 3.0-RC1 - Copyright (C) 2004-2013 Diego Nehab" "\nLuaSocket 3.0-RC1 - Copyright (C) 2004-2013 Diego Nehab"
#endif #endif

View File

@ -2,9 +2,9 @@
#define LSEC_SSL_H #define LSEC_SSL_H
/*-------------------------------------------------------------------------- /*--------------------------------------------------------------------------
* LuaSec 1.2.0 * LuaSec 1.3.1
* *
* Copyright (C) 2006-2022 Bruno Silvestre * Copyright (C) 2006-2023 Bruno Silvestre
* *
*--------------------------------------------------------------------------*/ *--------------------------------------------------------------------------*/

View File

@ -1,7 +1,7 @@
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
-- LuaSec 1.2.0 -- LuaSec 1.3.1
-- --
-- Copyright (C) 2006-2022 Bruno Silvestre -- Copyright (C) 2006-2023 Bruno Silvestre
-- --
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
@ -202,7 +202,7 @@ local function newcontext(cfg)
end end
-- PSK -- PSK
if cfg.psk then if config.capabilities.psk and cfg.psk then
if cfg.mode == "client" then if cfg.mode == "client" then
if type(cfg.psk) ~= "function" then if type(cfg.psk) ~= "function" then
return nil, "invalid PSK configuration" return nil, "invalid PSK configuration"
@ -302,7 +302,7 @@ core.setmethod("info", info)
-- --
local _M = { local _M = {
_VERSION = "1.2.0", _VERSION = "1.3.1",
_COPYRIGHT = core.copyright(), _COPYRIGHT = core.copyright(),
config = config, config = config,
loadcertificate = x509.load, loadcertificate = x509.load,

View File

@ -1,8 +1,8 @@
/*-------------------------------------------------------------------------- /*--------------------------------------------------------------------------
* LuaSec 1.2.0 * LuaSec 1.3.1
* *
* Copyright (C) 2014-2022 Kim Alvefur, Paul Aurich, Tobias Markmann * Copyright (C) 2014-2023 Kim Alvefur, Paul Aurich, Tobias Markmann, Matthew Wild
* Matthew Wild, Bruno Silvestre. * Copyright (C) 2014-2023 Bruno Silvestre
* *
*--------------------------------------------------------------------------*/ *--------------------------------------------------------------------------*/

View File

@ -1,8 +1,8 @@
/*-------------------------------------------------------------------------- /*--------------------------------------------------------------------------
* LuaSec 1.2.0 * LuaSec 1.3.1
* *
* Copyright (C) 2014-2022 Kim Alvefur, Paul Aurich, Tobias Markmann * Copyright (C) 2014-2023 Kim Alvefur, Paul Aurich, Tobias Markmann, Matthew Wild
* Matthew Wild, Bruno Silvestre. * Copyright (C) 2013-2023 Bruno Silvestre
* *
*--------------------------------------------------------------------------*/ *--------------------------------------------------------------------------*/