mirror of
https://github.com/brunoos/luasec.git
synced 2024-12-27 12:58:21 +01:00
Export configuration (protocols, options, curves, algorithms, capabilities)
This commit is contained in:
parent
0b99832ec7
commit
db42a5084a
88
src/config.c
Normal file
88
src/config.c
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
/*--------------------------------------------------------------------------
|
||||||
|
* 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;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user