diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2021-11-21 15:55:52 -0800 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2021-11-21 15:55:52 -0800 |
commit | 5a484efe8c72a929382c96555a31129f8d2a55c8 (patch) | |
tree | 60f6b76e3c06dbc1bfb9fe9e978475256e8a8f6d /src/luasec/config.c | |
parent | 3b44b9827d5e9c6554c5600c45d832d4e6eb50f8 (diff) | |
download | teliva-5a484efe8c72a929382c96555a31129f8d2a55c8.tar.gz |
https now working!
Still extremely ugly: - I've inlined all the namespaces under ssl, so you need to know that context and config are related to ssl. - luasec comes with its own copy of luasocket. I haven't deduped that yet.
Diffstat (limited to 'src/luasec/config.c')
-rw-r--r-- | src/luasec/config.c | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/src/luasec/config.c b/src/luasec/config.c new file mode 100644 index 0000000..eef7120 --- /dev/null +++ b/src/luasec/config.c @@ -0,0 +1,97 @@ +/*-------------------------------------------------------------------------- + * LuaSec 1.0.2 + * + * Copyright (C) 2006-2021 Bruno Silvestre. + * + *--------------------------------------------------------------------------*/ + +#include "compat.h" +#include "options.h" +#include "ec.h" + +/** + * Registre the module. + */ +LSEC_API int luaopen_ssl_config(lua_State *L) +{ + lsec_ssl_option_t *opt; + + lua_newtable(L); + lua_pushvalue(L, -1); + lua_setglobal(L, "config"); + + // Options + lua_pushstring(L, "options"); + lua_newtable(L); + for (opt = lsec_get_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); + + lua_pushstring(L, "tlsv1"); + lua_pushboolean(L, 1); + lua_rawset(L, -3); + 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); +#ifdef TLS1_3_VERSION + lua_pushstring(L, "tlsv1_3"); + 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); + + // ALPN + lua_pushstring(L, "alpn"); + lua_pushboolean(L, 1); + lua_rawset(L, -3); + +#ifdef LSEC_ENABLE_DANE + // DANE + lua_pushstring(L, "dane"); + lua_pushboolean(L, 1); + lua_rawset(L, -3); +#endif + +#ifndef OPENSSL_NO_EC + lua_pushstring(L, "curves_list"); + lua_pushboolean(L, 1); + lua_rawset(L, -3); + lua_pushstring(L, "ecdh_auto"); + lua_pushboolean(L, 1); + lua_rawset(L, -3); +#endif + lua_rawset(L, -3); + + return 1; +} |