mirror of
https://github.com/brunoos/luasec.git
synced 2024-11-14 01:18:24 +01:00
89 lines
1.8 KiB
C
89 lines
1.8 KiB
C
|
/*--------------------------------------------------------------------------
|
||
|
* LuaSec 0.6
|
||
|
*
|
||
|
* Copyright (C) 2006-2017 Bruno Silvestre.
|
||
|
*
|
||
|
*--------------------------------------------------------------------------*/
|
||
|
|
||
|
#include "compat.h"
|
||
|
#include "options.h"
|
||
|
#include "ec.h"
|
||
|
|
||
|
/**
|
||
|
* Registre the module.
|
||
|
*/
|
||
|
LSEC_API int luaopen_ssl_config(lua_State *L)
|
||
|
{
|
||
|
ssl_option_t *opt;
|
||
|
|
||
|
lua_newtable(L);
|
||
|
|
||
|
// Options
|
||
|
lua_pushstring(L, "options");
|
||
|
lua_newtable(L);
|
||
|
for (opt = ssl_options; opt->name; opt++) {
|
||
|
lua_pushstring(L, opt->name);
|
||
|
lua_pushboolean(L, 1);
|
||
|
lua_rawset(L, -3);
|
||
|
}
|
||
|
lua_rawset(L, -3);
|
||
|
|
||
|
// Protocols
|
||
|
lua_pushstring(L, "protocols");
|
||
|
lua_newtable(L);
|
||
|
|
||
|
#ifndef OPENSSL_NO_SSL3
|
||
|
lua_pushstring(L, "sslv3");
|
||
|
lua_pushboolean(L, 1);
|
||
|
lua_rawset(L, -3);
|
||
|
#endif
|
||
|
lua_pushstring(L, "tlsv1");
|
||
|
lua_pushboolean(L, 1);
|
||
|
lua_rawset(L, -3);
|
||
|
#if (OPENSSL_VERSION_NUMBER >= 0x1000100fL)
|
||
|
lua_pushstring(L, "tlsv1_1");
|
||
|
lua_pushboolean(L, 1);
|
||
|
lua_rawset(L, -3);
|
||
|
lua_pushstring(L, "tlsv1_2");
|
||
|
lua_pushboolean(L, 1);
|
||
|
lua_rawset(L, -3);
|
||
|
#endif
|
||
|
lua_rawset(L, -3);
|
||
|
|
||
|
// Algorithms
|
||
|
lua_pushstring(L, "algorithms");
|
||
|
lua_newtable(L);
|
||
|
|
||
|
#ifndef OPENSSL_NO_EC
|
||
|
lua_pushstring(L, "ec");
|
||
|
lua_pushboolean(L, 1);
|
||
|
lua_rawset(L, -3);
|
||
|
#endif
|
||
|
lua_rawset(L, -3);
|
||
|
|
||
|
// Curves
|
||
|
lua_pushstring(L, "curves");
|
||
|
lsec_get_curves(L);
|
||
|
lua_rawset(L, -3);
|
||
|
|
||
|
// Capabilities
|
||
|
lua_pushstring(L, "capabilities");
|
||
|
lua_newtable(L);
|
||
|
|
||
|
#ifndef OPENSSL_NO_EC
|
||
|
#if defined(SSL_CTRL_SET_ECDH_AUTO) || defined(SSL_CTRL_SET_CURVES_LIST) || defined(SSL_CTX_set1_curves_list)
|
||
|
lua_pushstring(L, "curves_list");
|
||
|
lua_pushboolean(L, 1);
|
||
|
lua_rawset(L, -3);
|
||
|
#ifdef SSL_CTRL_SET_ECDH_AUTO
|
||
|
lua_pushstring(L, "ecdh_auto");
|
||
|
lua_pushboolean(L, 1);
|
||
|
lua_rawset(L, -3);
|
||
|
#endif
|
||
|
#endif
|
||
|
#endif
|
||
|
lua_rawset(L, -3);
|
||
|
|
||
|
return 1;
|
||
|
}
|