1
0
mirror of https://github.com/brunoos/luasec.git synced 2025-04-14 20:46:46 +02:00

Compare commits

...

9 Commits

Author SHA1 Message Date
Bruno Silvestre
4c06287052 Release LuaSec 1.3.2 2023-08-31 17:09:53 -03:00
Bruno Silvestre
5f4799d8cf reset block timeout at send or receive
Addressing  and 
2023-08-31 10:51:50 -03:00
Bruno Silvestre
5787d51bb8
Merge pull request from Zash/errno-bug-again
Expand workaround for zero errno to OpenSSL 3.0.x
2023-07-12 21:41:40 -03:00
Kim Alvefur
a2b211f847 Expand workaround for zero errno to OpenSSL 3.0.x
Encountered the bug in  after upgrading to OpenSSL 3.0.9, so it
appears to still be present.

Occurs when writing to a connection that has been closed by the remote.
2023-07-05 13:21:49 +02:00
Bruno Silvestre
769ac528e2
Merge pull request from barracuda156/darwin
usocket.c: place EAI_OVERFLOW inside macro, unbreak build on <10.7
2023-05-09 10:25:21 -03:00
Sergey Fedorov
0f0e07eb41 usocket.c: place EAI_OVERFLOW inside macro, unbreak build on <10.7 2023-04-09 20:20:36 +08:00
Bruno Silvestre
fddde111f7 Release 1.3.1 2023-03-19 11:55:08 -03:00
Bruno Silvestre
6405645155 Check if PSK is available 2023-03-19 11:48:56 -03:00
Bruno Silvestre
e01c6e63cd Fix: check if PSK is available 2023-03-19 11:43:09 -03:00
24 changed files with 77 additions and 37 deletions

@ -1,3 +1,19 @@
--------------------------------------------------------------------------------
LuaSec 1.3.2
---------------
This version includes:
* Fix: place EAI_OVERFLOW inside macro, unbreak build on <10.7 (Sergey Fedorov)
* Fix: Expand workaround for zero errno to OpenSSL 3.0.x (Kim Alvefur)
* Fix: reset block timeout at send or receive (MartinDahlberg)
--------------------------------------------------------------------------------
LuaSec 1.3.1
---------------
This version includes:
* Fix: check if PSK is available
--------------------------------------------------------------------------------
LuaSec 1.3.0
---------------

@ -1,4 +1,4 @@
LuaSec 1.3.0
LuaSec 1.3.2
------------
* OpenSSL options:

@ -1,4 +1,4 @@
LuaSec 1.3.0 license
LuaSec 1.3.2 license
Copyright (C) 2006-2023 Bruno Silvestre, UFG
Permission is hereby granted, free of charge, to any person obtaining

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

@ -1,8 +1,8 @@
package = "LuaSec"
version = "1.3.0-1"
version = "1.3.2-1"
source = {
url = "git+https://github.com/brunoos/luasec",
tag = "v1.3.0",
tag = "v1.3.2",
}
description = {
summary = "A binding for OpenSSL library to provide TLS/SSL communication over LuaSocket.",

@ -4,6 +4,11 @@
local socket = require("socket")
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 max_identity_len (number)
-- @param max_psk_len (number)

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

@ -1,5 +1,5 @@
/*--------------------------------------------------------------------------
* LuaSec 1.3.0
* LuaSec 1.3.2
*
* Copyright (C) 2006-2023 Bruno Silvestre
*
@ -48,8 +48,14 @@
//------------------------------------------------------------------------------
#if !defined(LIBRESSL_VERSION_NUMBER) && ((OPENSSL_VERSION_NUMBER & 0xFFFFF000L) == 0x10101000L)
#define LSEC_OPENSSL_1_1_1
#if !defined(LIBRESSL_VERSION_NUMBER) && ((OPENSSL_VERSION_NUMBER & 0xFFFFF000L) == 0x10101000L || (OPENSSL_VERSION_NUMBER & 0xFFFFF000L) == 0x30000000L)
#define LSEC_OPENSSL_ERRNO_BUG
#endif
//------------------------------------------------------------------------------
#if !defined(LIBRESSL_VERSION_NUMBER) && !defined(OPENSSL_NO_PSK)
#define LSEC_ENABLE_PSK
#endif
//------------------------------------------------------------------------------

@ -1,5 +1,5 @@
/*--------------------------------------------------------------------------
* LuaSec 1.3.0
* LuaSec 1.3.2
*
* Copyright (C) 2006-2023 Bruno Silvestre
*
@ -74,6 +74,12 @@ LSEC_API int luaopen_ssl_config(lua_State *L)
lua_pushboolean(L, 1);
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
// DANE
lua_pushstring(L, "dane");

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

@ -2,7 +2,7 @@
#define LSEC_CONTEXT_H
/*--------------------------------------------------------------------------
* LuaSec 1.3.0
* LuaSec 1.3.2
*
* Copyright (C) 2006-2023 Bruno Silvestre
*

@ -1,5 +1,5 @@
/*--------------------------------------------------------------------------
* LuaSec 1.3.0
* LuaSec 1.3.2
*
* Copyright (C) 2006-2023 Bruno Silvestre
*

@ -1,5 +1,5 @@
/*--------------------------------------------------------------------------
* LuaSec 1.3.0
* LuaSec 1.3.2
*
* Copyright (C) 2006-2023 Bruno Silvestre
*

@ -1,5 +1,5 @@
----------------------------------------------------------------------------
-- LuaSec 1.3.0
-- LuaSec 1.3.2
--
-- Copyright (C) 2009-2023 PUC-Rio
--
@ -19,8 +19,8 @@ local try = socket.try
-- Module
--
local _M = {
_VERSION = "1.3.0",
_COPYRIGHT = "LuaSec 1.3.0 - Copyright (C) 2009-2023 PUC-Rio",
_VERSION = "1.3.2",
_COPYRIGHT = "LuaSec 1.3.2 - Copyright (C) 2009-2023 PUC-Rio",
PORT = 443,
TIMEOUT = 60
}

@ -78,9 +78,7 @@ int buffer_meth_send(lua_State *L, p_buffer buf) {
const char *data = luaL_checklstring(L, 2, &size);
long start = (long) luaL_optnumber(L, 3, 1);
long end = (long) luaL_optnumber(L, 4, -1);
#ifdef LUASOCKET_DEBUG
p_timeout tm = timeout_markstart(buf->tm);
#endif
timeout_markstart(buf->tm);
if (start < 0) start = (long) (size+start+1);
if (end < 0) end = (long) (size+end+1);
if (start < 1) start = (long) 1;
@ -98,7 +96,7 @@ int buffer_meth_send(lua_State *L, p_buffer buf) {
}
#ifdef LUASOCKET_DEBUG
/* push time elapsed during operation as the last return value */
lua_pushnumber(L, timeout_gettime() - timeout_getstart(tm));
lua_pushnumber(L, timeout_gettime() - timeout_getstart(buf->tm));
#endif
return lua_gettop(L) - top;
}
@ -117,9 +115,7 @@ int buffer_meth_receive(lua_State *L, p_buffer buf) {
top = 3;
}
part = luaL_optlstring(L, 3, "", &size);
#ifdef LUASOCKET_DEBUG
p_timeout tm = timeout_markstart(buf->tm);
#endif
timeout_markstart(buf->tm);
/* initialize buffer with optional extra prefix
* (useful for concatenating previous partial results) */
luaL_buffinit(L, &b);
@ -155,7 +151,7 @@ int buffer_meth_receive(lua_State *L, p_buffer buf) {
}
#ifdef LUASOCKET_DEBUG
/* push time elapsed during operation as the last return value */
lua_pushnumber(L, timeout_gettime() - timeout_getstart(tm));
lua_pushnumber(L, timeout_gettime() - timeout_getstart(buf->tm));
#endif
return lua_gettop(L) - top;
}

@ -426,7 +426,9 @@ const char *socket_gaistrerror(int err) {
case EAI_MEMORY: return "memory allocation failure";
case EAI_NONAME:
return "host or service not provided, or not known";
#ifdef EAI_OVERFLOW
case EAI_OVERFLOW: return "argument buffer overflow";
#endif
#ifdef EAI_PROTOCOL
case EAI_PROTOCOL: return "resolved protocol is unknown";
#endif

@ -1,5 +1,5 @@
/*--------------------------------------------------------------------------
* LuaSec 1.3.0
* LuaSec 1.3.2
*
* Copyright (C) 2006-2023 Bruno Silvestre
*

@ -2,7 +2,7 @@
#define LSEC_OPTIONS_H
/*--------------------------------------------------------------------------
* LuaSec 1.3.0
* LuaSec 1.3.2
*
* Copyright (C) 2006-2023 Bruno Silvestre
*

@ -18,7 +18,7 @@ end
local function generate(options, version)
print([[
/*--------------------------------------------------------------------------
* LuaSec 1.3.0
* LuaSec 1.3.2
*
* Copyright (C) 2006-2023 Bruno Silvestre
*

@ -1,5 +1,5 @@
/*--------------------------------------------------------------------------
* LuaSec 1.3.0
* LuaSec 1.3.2
*
* Copyright (C) 2014-2023 Kim Alvefur, Paul Aurich, Tobias Markmann, Matthew Wild
* Copyright (C) 2006-2023 Bruno Silvestre
@ -47,8 +47,8 @@ static int lsec_socket_error()
#if defined(WIN32)
return WSAGetLastError();
#else
#if defined(LSEC_OPENSSL_1_1_1)
// Bug in OpenSSL 1.1.1
#if defined(LSEC_OPENSSL_ERRNO_BUG)
// Bug in OpenSSL
if (errno == 0)
return LSEC_IO_SSL;
#endif
@ -947,7 +947,7 @@ static int meth_getalpn(lua_State *L)
static int meth_copyright(lua_State *L)
{
lua_pushstring(L, "LuaSec 1.3.0 - Copyright (C) 2006-2023 Bruno Silvestre, UFG"
lua_pushstring(L, "LuaSec 1.3.2 - Copyright (C) 2006-2023 Bruno Silvestre, UFG"
#if defined(WITH_LUASOCKET)
"\nLuaSocket 3.0-RC1 - Copyright (C) 2004-2013 Diego Nehab"
#endif

@ -2,7 +2,7 @@
#define LSEC_SSL_H
/*--------------------------------------------------------------------------
* LuaSec 1.3.0
* LuaSec 1.3.2
*
* Copyright (C) 2006-2023 Bruno Silvestre
*

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

@ -1,5 +1,5 @@
/*--------------------------------------------------------------------------
* LuaSec 1.3.0
* LuaSec 1.3.2
*
* Copyright (C) 2014-2023 Kim Alvefur, Paul Aurich, Tobias Markmann, Matthew Wild
* Copyright (C) 2014-2023 Bruno Silvestre

@ -1,5 +1,5 @@
/*--------------------------------------------------------------------------
* LuaSec 1.3.0
* LuaSec 1.3.2
*
* Copyright (C) 2014-2023 Kim Alvefur, Paul Aurich, Tobias Markmann, Matthew Wild
* Copyright (C) 2013-2023 Bruno Silvestre