Compare commits
6 Commits
60e2ada142
...
9737e7a057
Author | SHA1 | Date | |
---|---|---|---|
9737e7a057 | |||
b183301a62 | |||
1561ceaa97 | |||
1c79b9c879 | |||
39afc6e0a2 | |||
5f14705f4c |
@ -11,6 +11,20 @@
|
||||
* [`lua_handler`](mod_lua.html#mod_lua__action_lua-handler): without locking, and every worker has its own `lua_State` (and they cannot share their global context).
|
||||
</markdown></description>
|
||||
|
||||
<section title="Lua global environment">
|
||||
<markdown>
|
||||
To prevent accidental pollution of the global environment a limited environment is provided:
|
||||
|
||||
* Outside of request handling the limited environment will forget any globals you set
|
||||
* Within request handling globals will persist per context (i.e. a handler) and request; also the `REQ` global will provide access to persistent state per request (across handlers).
|
||||
* Objects already present in the global environment will be accessible and can be modified.
|
||||
* The global environment can be accessed explicitly via `_G`.
|
||||
* Also everything in the environment is confined to the `lua_State` (see above), as data can't be shared between different `lua_State`s.
|
||||
|
||||
This should mostly work just fine; you only need to be careful when providing data to your handlers from a parent block; those variables should be declared `local` or your handler won't see them.
|
||||
</markdown>
|
||||
</section>
|
||||
|
||||
<section title="Lua Config">
|
||||
<markdown>
|
||||
This section describe how to translate concepts from the main config to Lua. You can write the whole config in Lua or only parts and include them (for example with [`include_lua`](core_config.html#core_config__includes)).
|
||||
@ -22,7 +36,7 @@
|
||||
]]></markdown></description>
|
||||
|
||||
<config><![CDATA[
|
||||
function mydebug(vr)
|
||||
local function mydebug(vr)
|
||||
local url_fields = { "raw", "raw_path", "raw_orig_path", "scheme", "authority", "path", "query", "host" }
|
||||
local phys_fields = { "path", "doc_root", "pathinfo" }
|
||||
if vr:handle_direct() then
|
||||
|
@ -12,6 +12,8 @@ struct lua_State;
|
||||
struct liLuaState {
|
||||
struct lua_State* L; /** NULL if compiled without Lua */
|
||||
GStaticRecMutex lualock;
|
||||
int li_env_ref;
|
||||
int li_env_default_metatable_ref;
|
||||
};
|
||||
|
||||
LI_API void li_lua_init(liLuaState* LL, liServer* srv, liWorker* wrk);
|
||||
|
@ -9,6 +9,6 @@ LI_API void li_lua_init_condition_mt(liServer *srv, lua_State *L);
|
||||
LI_API liCondition* li_lua_get_condition(lua_State *L, int ndx);
|
||||
LI_API int li_lua_push_condition(liServer *srv, lua_State *L, liCondition *c);
|
||||
|
||||
LI_API void li_lua_push_lvalues_dict(liServer *srv, lua_State *L);
|
||||
LI_API void li_lua_set_global_condition_lvalues(liServer *srv, lua_State *L);
|
||||
|
||||
#endif
|
||||
|
@ -77,7 +77,9 @@ LI_API struct stat* li_lua_get_stat(lua_State *L, int ndx);
|
||||
LI_API int li_lua_push_stat(lua_State *L, struct stat *st);
|
||||
|
||||
/* subrequest_lua.c */
|
||||
/* DISABLED FOR NOW
|
||||
LI_API void li_lua_init_subrequest_mt(lua_State *L);
|
||||
*/
|
||||
|
||||
/* virtualrequest_lua.c */
|
||||
LI_API void li_lua_init_virtualrequest_mt(lua_State *L);
|
||||
@ -109,8 +111,42 @@ LI_API int li_lua_push_traceback(lua_State *L, int nargs);
|
||||
*/
|
||||
LI_API gboolean li_lua_call_object(liServer *srv, liVRequest *vr, lua_State *L, const char* method, int nargs, int nresults, gboolean optional);
|
||||
|
||||
LI_API void li_lua_restore_globals(lua_State *L);
|
||||
LI_API void li_lua_new_globals(lua_State *L);
|
||||
/* Manage environment ("globals", `_ENV`, ...)
|
||||
* - by default globals shouldn't survive across requests (and not from initial execution either)
|
||||
* - globals set during a request should be "local" to request and context (per handler, filter, ...)
|
||||
* - only overwrite environment "locally" for our code
|
||||
* - inherit normal environment through metatables (just setting globals is "local")
|
||||
* - `_G` is inherited and can be used for persistent state.
|
||||
* - `REQ` in request context points to a "request-global" table (per lua state of course)
|
||||
* - lua5.2+: can use _ENV.x to make access to global "x" explicit
|
||||
*
|
||||
* modifying existing objects in environment (inherited from "main" global environment)
|
||||
* are persisted though (per lua state).
|
||||
*
|
||||
* Implementation:
|
||||
* - remember initial GLOBALS in liLuaState
|
||||
* - single instance of "our environment" table LI_ENV; "empty" userdata with (initial) metatable LI_ENV_MT_DEFAULT={__index=GLOBALS}
|
||||
* * creating new globals would fail - not designed for actual use
|
||||
* - "ephemeral" environment for code running outside of requests:
|
||||
* change LI_ENV metatable to {__index=__newindex={} with metatable LI_ENV_MT_DEFAULT }
|
||||
* globals lost once environment is "restored"
|
||||
* - "request" environment for code running during a requests:
|
||||
* create REQ_CTX table with metatable LI_ENV_MT_DEFAULT for lifetime of request
|
||||
* change LI_ENV metatable to {__index=__newindex=REQ_CTX }
|
||||
* globals lost once request is cleaned up
|
||||
* - restoring environment:
|
||||
restore LI_ENV metatable to previous meta table (index returned by active methods)
|
||||
*/
|
||||
LI_API void li_lua_environment_activate_ephemeral(liLuaState *LL); /* +1 */
|
||||
LI_API int li_lua_environment_create(liLuaState *LL, liVRequest *vr); /* returns env (metatable) ref */
|
||||
INLINE void li_lua_environment_free(lua_State *L, int env_mt_ref);
|
||||
LI_API void li_lua_environment_activate(liLuaState *LL, int env_mt_ref); /* +1 */
|
||||
LI_API void li_lua_environment_restore(liLuaState *LL); /* -1 */
|
||||
|
||||
/* make LI_ENV the current global environment (backup old environment on stack) */
|
||||
LI_API void li_lua_environment_use_globals(liLuaState *LL); /* +1 */
|
||||
/* restore previous global environment from stack */
|
||||
LI_API void li_lua_environment_restore_globals(lua_State *L); /* -1 */
|
||||
|
||||
/* joinWith " " (map tostring parameter[from..to]) */
|
||||
LI_API GString* li_lua_print_get_string(lua_State *L, int from, int to);
|
||||
@ -125,11 +161,10 @@ LI_API GString* li_lua_print_get_string(lua_State *L, int from, int to);
|
||||
*/
|
||||
LI_API int li_lua_ghashtable_gstring_pairs(lua_State *L, GHashTable *ht);
|
||||
|
||||
LI_API void li_lua_setfenv(lua_State *L, int funcindex); /* -1 */
|
||||
|
||||
/* internal: subrequests (vrequest metamethod) */
|
||||
/* DISABLED FOR NOW
|
||||
LI_API int li_lua_vrequest_subrequest(lua_State *L);
|
||||
|
||||
*/
|
||||
|
||||
/* inline implementations */
|
||||
|
||||
@ -158,6 +193,20 @@ INLINE int li_lua_new_protected_metatable(lua_State *L, const char *tname) {
|
||||
return r;
|
||||
}
|
||||
|
||||
/* create "stable" stack index from negative offsets like -1 and -2 (but not pseudo-indices) */
|
||||
INLINE int li_lua_stable_index(lua_State *L, int index) {
|
||||
if (index < 0) {
|
||||
int top = lua_gettop(L);
|
||||
/* valid iff: 1 <= abs(index) = -index <= top; "-index" might overflow, so check `index >= -top` instead */
|
||||
if (index >= -top) return (top + index) + 1;
|
||||
}
|
||||
return index;
|
||||
}
|
||||
|
||||
INLINE void li_lua_environment_free(lua_State *L, int env_mt_ref) {
|
||||
luaL_unref(L, LUA_REGISTRYINDEX, env_mt_ref);
|
||||
}
|
||||
|
||||
INLINE void li_lua_setfuncs(lua_State *L, const luaL_Reg *l) {
|
||||
#if LUA_VERSION_NUM == 501
|
||||
luaL_register(L, NULL, l);
|
||||
|
@ -93,6 +93,9 @@ struct liVRequest {
|
||||
|
||||
/* environment entries will be passed to the backends */
|
||||
liEnvironment env;
|
||||
/* request specific table; `REQ` global in lua */
|
||||
int lua_server_env_ref; /* for srv->LL */
|
||||
int lua_worker_env_ref; /* for wrk->LL */
|
||||
|
||||
/* -> vr_in -> filters_in -> in_memory ->(buffer_on_disk) -> in -> handle -> out -> filters_out -> vr_out -> */
|
||||
GPtrArray *filters;
|
||||
|
@ -68,7 +68,6 @@ int li_lua_push_action(liServer *srv, lua_State *L, liAction *a) {
|
||||
typedef struct lua_action_param lua_action_param;
|
||||
struct lua_action_param {
|
||||
int func_ref;
|
||||
int env_ref;
|
||||
liLuaState *LL;
|
||||
};
|
||||
|
||||
@ -87,24 +86,17 @@ static liHandlerResult lua_action_func(liVRequest *vr, gpointer param, gpointer
|
||||
|
||||
li_lua_lock(par->LL);
|
||||
|
||||
/* set _G in environment to request specific table */
|
||||
lua_rawgeti(L, LUA_REGISTRYINDEX, par->env_ref); /* +1 */
|
||||
if (!ctx) {
|
||||
*context = ctx = g_slice_new0(lua_action_ctx);
|
||||
lua_newtable(L); /* +1 */
|
||||
lua_pushvalue(L, -1); /* +1 */
|
||||
ctx->g_ref = luaL_ref(L, LUA_REGISTRYINDEX); /* -1 */
|
||||
} else {
|
||||
lua_rawgeti(L, LUA_REGISTRYINDEX, ctx->g_ref); /* +1 */
|
||||
ctx->g_ref = li_lua_environment_create(par->LL, vr);
|
||||
}
|
||||
lua_setfield(L, -2, "_G"); /* -1 (pops request context table) */
|
||||
lua_pop(L, 1); /* -1 (pop env) */
|
||||
li_lua_environment_activate(par->LL, ctx->g_ref); /* +1 */
|
||||
|
||||
lua_rawgeti(L, LUA_REGISTRYINDEX, par->func_ref); /* +1 */
|
||||
li_lua_push_vrequest(L, vr); /* +1 */
|
||||
|
||||
errfunc = li_lua_push_traceback(L, 1); /* +1, but inserted before `1` args */
|
||||
if (lua_pcall(L, 1, 1, errfunc)) {
|
||||
if (lua_pcall(L, 1, 1, errfunc)) { /* -2 (func + arg), +1 (result / error) */
|
||||
ERROR(srv, "lua_pcall(): %s", lua_tostring(L, -1));
|
||||
lua_pop(L, 1); /* -1 (pop error) */
|
||||
res = LI_HANDLER_ERROR;
|
||||
@ -126,11 +118,7 @@ static liHandlerResult lua_action_func(liVRequest *vr, gpointer param, gpointer
|
||||
}
|
||||
lua_remove(L, errfunc); /* -1 (should be at the top of the stack) */
|
||||
|
||||
/* clear _G */
|
||||
lua_rawgeti(L, LUA_REGISTRYINDEX, par->env_ref); /* +1 */
|
||||
lua_pushnil(L); /* +1 */
|
||||
lua_setfield(L, -2, "_G"); /* -1 (pops value nil) */
|
||||
lua_pop(L, 1); /* -1 (pop env) */
|
||||
li_lua_environment_restore(par->LL); /* -1 */
|
||||
|
||||
li_lua_unlock(par->LL);
|
||||
|
||||
@ -162,7 +150,6 @@ static void lua_action_free(liServer *srv, gpointer param) {
|
||||
L = par->LL->L;
|
||||
|
||||
li_lua_lock(par->LL);
|
||||
luaL_unref(L, LUA_REGISTRYINDEX, par->env_ref);
|
||||
luaL_unref(L, LUA_REGISTRYINDEX, par->func_ref);
|
||||
lua_gc(L, LUA_GCCOLLECT, 0);
|
||||
li_lua_unlock(par->LL);
|
||||
@ -172,36 +159,11 @@ static void lua_action_free(liServer *srv, gpointer param) {
|
||||
|
||||
liAction* li_lua_make_action(lua_State *L, int ndx) {
|
||||
lua_action_param *par = g_slice_new0(lua_action_param);
|
||||
liWorker *wrk;
|
||||
|
||||
lua_getfield(L, LUA_REGISTRYINDEX, LI_LUA_REGISTRY_WORKER);
|
||||
wrk = lua_touserdata(L, -1);
|
||||
lua_pop(L, 1);
|
||||
|
||||
lua_pushvalue(L, ndx); /* +1 */
|
||||
par->func_ref = luaL_ref(L, LUA_REGISTRYINDEX); /* -1 */
|
||||
par->LL = li_lua_state_get(L);
|
||||
|
||||
/* new environment for function */
|
||||
lua_pushvalue(L, ndx); /* +1 */
|
||||
lua_newtable(L); /* +1 */
|
||||
/* new mt */
|
||||
lua_newtable(L); /* +1 */
|
||||
/* TODO: protect metatable? */
|
||||
lua_getfield(L, LUA_REGISTRYINDEX, LI_LUA_REGISTRY_GLOBALS); /* +1 */
|
||||
lua_setfield(L, -2, "__index"); /* -1 */
|
||||
lua_setmetatable(L, -2); /* -1 */
|
||||
if (NULL != wrk) {
|
||||
li_lua_push_action_table(wrk->srv, wrk, L); /* +1 */
|
||||
lua_setfield(L, -2, "action"); /* -1 */
|
||||
}
|
||||
/* remember environment */
|
||||
lua_pushvalue(L, -1); /* +1 */
|
||||
par->env_ref = luaL_ref(L, LUA_REGISTRYINDEX); /* -1 */
|
||||
/* set environment for function */
|
||||
li_lua_setfenv(L, -2); /* -1 */
|
||||
lua_pop(L, 1); /* -1 */
|
||||
|
||||
return li_action_new_function(lua_action_func, lua_action_cleanup, lua_action_free, par);
|
||||
}
|
||||
|
||||
|
@ -299,10 +299,7 @@ static int lua_push_cond_lvalue_t(liServer *srv, lua_State *L, liCondLValue t) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void li_lua_push_lvalues_dict(liServer *srv, lua_State *L) {
|
||||
void li_lua_set_global_condition_lvalues(liServer *srv, lua_State *L) {
|
||||
size_t i;
|
||||
|
||||
for (i = 0; i < LI_COND_LVALUE_FIRST_WITH_KEY; i++) {
|
||||
|
@ -106,6 +106,7 @@ static int li_lua_config_handle_server_action(liServer *srv, liWorker *wrk, lua_
|
||||
|
||||
li_lua_unlock(LL);
|
||||
|
||||
if (!wrk) wrk = srv->main_worker;
|
||||
a = li_plugin_config_action(srv, wrk, key, val);
|
||||
|
||||
li_lua_lock(LL);
|
||||
@ -159,10 +160,10 @@ gboolean li_config_lua_load(liLuaState *LL, liServer *srv, liWorker *wrk, const
|
||||
|
||||
li_lua_lock(LL);
|
||||
|
||||
li_lua_environment_use_globals(LL); /* +1 */
|
||||
li_lua_environment_activate_ephemeral(LL); /* +1 */
|
||||
lua_stack_top = lua_gettop(L);
|
||||
|
||||
li_lua_new_globals(L);
|
||||
|
||||
if (0 != luaL_loadfile(L, filename)) {
|
||||
_ERROR(srv, wrk, NULL, "Loading script '%s' failed: %s", filename, lua_tostring(L, -1));
|
||||
return FALSE;
|
||||
@ -176,19 +177,14 @@ gboolean li_config_lua_load(liLuaState *LL, liServer *srv, liWorker *wrk, const
|
||||
lua_setglobal(L, "setup");
|
||||
}
|
||||
|
||||
li_lua_push_action_table(srv, wrk, L);
|
||||
lua_setglobal(L, "action");
|
||||
|
||||
li_lua_push_lvalues_dict(srv, L);
|
||||
|
||||
/* arguments for config: local filename, args = ... */
|
||||
/* 1. filename */
|
||||
lua_pushstring(L, filename);
|
||||
lua_pushstring(L, filename); /* +1 */
|
||||
/* 2. args */
|
||||
li_lua_push_value(L, args);
|
||||
li_lua_push_value(L, args); /* +1 */
|
||||
|
||||
errfunc = li_lua_push_traceback(L, 2);
|
||||
if (lua_pcall(L, 2, 0, errfunc)) {
|
||||
errfunc = li_lua_push_traceback(L, 2); /* +1, but before args */
|
||||
if (lua_pcall(L, 2, 0, errfunc)) { /* -3 (func + args), 0 results (but 1 error) */
|
||||
_ERROR(srv, wrk, NULL, "lua_pcall(): %s", lua_tostring(L, -1));
|
||||
|
||||
/* cleanup stack */
|
||||
@ -196,7 +192,8 @@ gboolean li_config_lua_load(liLuaState *LL, liServer *srv, liWorker *wrk, const
|
||||
lua_pop(L, lua_gettop(L) - lua_stack_top);
|
||||
}
|
||||
|
||||
li_lua_restore_globals(L);
|
||||
li_lua_environment_restore(LL); /* -1 */
|
||||
li_lua_environment_restore_globals(L); /* -1 */
|
||||
|
||||
li_lua_unlock(LL);
|
||||
|
||||
@ -210,7 +207,8 @@ gboolean li_config_lua_load(liLuaState *LL, liServer *srv, liWorker *wrk, const
|
||||
|
||||
LI_FORCE_ASSERT(lua_gettop(L) == lua_stack_top);
|
||||
|
||||
li_lua_restore_globals(L);
|
||||
li_lua_environment_restore(LL); /* -1 */
|
||||
li_lua_environment_restore_globals(L); /* -1 */
|
||||
|
||||
lua_gc(L, LUA_GCCOLLECT, 0);
|
||||
|
||||
|
@ -2,6 +2,7 @@
|
||||
#include <lighttpd/core_lua.h>
|
||||
#include <lighttpd/actions_lua.h>
|
||||
#include <lighttpd/condition_lua.h>
|
||||
#include <lighttpd/config_lua.h>
|
||||
#include <lighttpd/value_lua.h>
|
||||
|
||||
liLuaState *li_lua_state_get(lua_State *L) {
|
||||
@ -106,33 +107,101 @@ static void li_lua_push_globals(lua_State *L) { /* +1 */
|
||||
|
||||
static void li_lua_set_globals(lua_State *L) { /* -1 */
|
||||
#if LUA_VERSION_NUM == 501
|
||||
LI_FORCE_ASSERT(lua_istable(L, -1) && "LUA_GLOBALSINDEX must contain a table in lua5.1");
|
||||
lua_replace(L, LUA_GLOBALSINDEX); /* -1 */
|
||||
#else
|
||||
lua_rawseti(L, LUA_REGISTRYINDEX, LUA_RIDX_GLOBALS); /* -1 */
|
||||
#endif
|
||||
}
|
||||
|
||||
static void li_lua_store_globals(lua_State *L) {
|
||||
/* backup global table reference */
|
||||
li_lua_push_globals(L); /* +1 */
|
||||
lua_setfield(L, LUA_REGISTRYINDEX, LI_LUA_REGISTRY_GLOBALS); /* -1 */
|
||||
static void create_environment(liLuaState *LL) /* +1 (a new LI_ENV metatable) */ {
|
||||
lua_State *L = LL->L;
|
||||
|
||||
lua_createtable(L, 0, 2); /* +1 LI_ENV metatable (return value) */
|
||||
|
||||
lua_newtable(L); /* +1 storage table */
|
||||
|
||||
/* setup storage metatable */
|
||||
lua_rawgeti(L, LUA_REGISTRYINDEX, LL->li_env_default_metatable_ref); /* +1 */
|
||||
lua_setmetatable(L, -2); /* -1 set default metatable as metatable storage table */
|
||||
|
||||
/* use storage in new ENV metatable */
|
||||
lua_pushvalue(L, -1); /* +1, duplicate storage table */
|
||||
lua_setfield(L, -3, "__index"); /* -1, __index=storage */
|
||||
lua_setfield(L, -2, "__newindex"); /* -1, __newindex=storage */
|
||||
}
|
||||
|
||||
void li_lua_restore_globals(lua_State *L) {
|
||||
lua_getfield(L, LUA_REGISTRYINDEX, LI_LUA_REGISTRY_GLOBALS); /* +1 */
|
||||
void li_lua_environment_activate_ephemeral(liLuaState *LL) /* +1 (leaves backup of old metatable to restore with) */ {
|
||||
lua_State *L = LL->L;
|
||||
|
||||
lua_rawgeti(L, LUA_REGISTRYINDEX, LL->li_env_ref); /* +1 */
|
||||
LI_FORCE_ASSERT(lua_getmetatable(L, -1)); /* +1 remember old metatable */
|
||||
lua_insert(L, -2); /* swap top two stack elements */
|
||||
|
||||
create_environment(LL); /* +1 */
|
||||
lua_setmetatable(L, -2); /* -1 set new environment metatable for LI_ENV */
|
||||
lua_pop(L, 1); /* -1 pop LI_ENV */
|
||||
}
|
||||
|
||||
int li_lua_environment_create(liLuaState *LL, liVRequest *vr) /* returns env ref */ {
|
||||
lua_State *L = LL->L;
|
||||
int *req_ref = NULL;
|
||||
|
||||
create_environment(LL);
|
||||
|
||||
if (NULL != vr) {
|
||||
if (LL == &vr->wrk->LL) {
|
||||
req_ref = &vr->lua_worker_env_ref;
|
||||
} else if (LL == &vr->wrk->srv->LL) {
|
||||
req_ref = &vr->lua_server_env_ref;
|
||||
}
|
||||
|
||||
if (NULL != req_ref) {
|
||||
lua_getfield(L, -1, "__newindex"); /* +1 get storage table */
|
||||
if (*req_ref == LUA_NOREF) {
|
||||
lua_newtable(L); /* +1 */
|
||||
lua_pushvalue(L, -1); /* +1 */
|
||||
*req_ref = luaL_ref(L, LUA_REGISTRYINDEX); /* -1 */
|
||||
} else {
|
||||
lua_rawgeti(L, LUA_REGISTRYINDEX, *req_ref); /* +1 */
|
||||
}
|
||||
lua_setfield(L, -2, "REQ"); /* -1 set REQ in storage table */
|
||||
lua_pop(L, 1); /* -1 pop storage table */
|
||||
}
|
||||
}
|
||||
|
||||
return luaL_ref(L, LUA_REGISTRYINDEX);
|
||||
}
|
||||
|
||||
void li_lua_environment_activate(liLuaState *LL, int env_mt_ref) /* +1 */ {
|
||||
lua_State *L = LL->L;
|
||||
|
||||
lua_rawgeti(L, LUA_REGISTRYINDEX, LL->li_env_ref); /* +1 */
|
||||
LI_FORCE_ASSERT(lua_getmetatable(L, -1)); /* +1 remember old metatable */
|
||||
lua_insert(L, -2); /* swap top two stack elements */
|
||||
lua_rawgeti(L, LUA_REGISTRYINDEX, env_mt_ref); /* +1 */
|
||||
lua_setmetatable(L, -2); /* -1 set env_mt for LI_ENV */
|
||||
lua_pop(L, 1); /* -1 pop LI_ENV */
|
||||
}
|
||||
|
||||
void li_lua_environment_restore(liLuaState *LL) /* -1 (expects previous metatable to restore on top) */ {
|
||||
lua_State *L = LL->L;
|
||||
|
||||
lua_rawgeti(L, LUA_REGISTRYINDEX, LL->li_env_ref); /* +1 */
|
||||
lua_pushvalue(L, -2); /* +1 */
|
||||
lua_setmetatable(L, -2); /* -1 restore prev mt for LI_ENV */
|
||||
lua_pop(L, 1); /* -2 */
|
||||
}
|
||||
|
||||
void li_lua_environment_use_globals(liLuaState *LL) /* +1 */ {
|
||||
lua_State *L = LL->L;
|
||||
|
||||
li_lua_push_globals(L); /* +1 backup previous GLOBALS on stack */
|
||||
lua_rawgeti(L, LUA_REGISTRYINDEX, LL->li_env_ref); /* +1 */
|
||||
li_lua_set_globals(L); /* -1 */
|
||||
}
|
||||
|
||||
void li_lua_new_globals(lua_State *L) {
|
||||
lua_newtable(L); /* +1 */
|
||||
|
||||
/* metatable for new global env, link old globals as readonly */
|
||||
lua_newtable(L); /* +1 */
|
||||
/* TODO: protect metatable? */
|
||||
li_lua_push_globals(L); /* +1 */
|
||||
lua_setfield(L, -2, "__index"); /* -1 */
|
||||
lua_setmetatable(L, -2); /* -1 */
|
||||
|
||||
void li_lua_environment_restore_globals(lua_State *L) /* -1 */ {
|
||||
li_lua_set_globals(L); /* -1 */
|
||||
}
|
||||
|
||||
@ -365,6 +434,30 @@ static void li_lua_push_lighty_constants(lua_State *L, int ndx) {
|
||||
void li_lua_init2(liLuaState *LL, liServer *srv, liWorker *wrk) {
|
||||
lua_State *L = LL->L;
|
||||
|
||||
/* setup refs (won't need cleanup when we free the lua_State) */
|
||||
lua_createtable(L, 0, 1); /* +1 LI_ENV default metatable */
|
||||
li_lua_push_globals(L); /* +1 GLOBALS */
|
||||
lua_setfield(L, -2, "__index"); /* -1, __index=GLOBALS */
|
||||
LL->li_env_default_metatable_ref = luaL_ref(L, LUA_REGISTRYINDEX); /* -1 */
|
||||
|
||||
#if LUA_VERSION_NUM == 501
|
||||
/* in lua 5.1 the "fenv" / global must be an actual table */
|
||||
lua_newtable(L); /* +1 LI_ENV */
|
||||
/* as we have a "real" table we prevent new globals through a broken __newindex metatable entry;
|
||||
* build a special metatable for this.
|
||||
*/
|
||||
lua_createtable(L, 0, 2); /* +1 LI_ENV special metatable */
|
||||
li_lua_push_globals(L); /* +1 GLOBALS */
|
||||
lua_setfield(L, -2, "__index"); /* -1, __index=GLOBALS */
|
||||
lua_newuserdata(L, 0); /* +1 */
|
||||
lua_setfield(L, -2, "__newindex"); /* -1, __newindex=EMPTYUSERDATA */
|
||||
#else
|
||||
lua_newuserdata(L, 0); /* +1 LI_ENV */
|
||||
lua_rawgeti(L, LUA_REGISTRYINDEX, LL->li_env_default_metatable_ref); /* +1 */
|
||||
#endif
|
||||
lua_setmetatable(L, -2); /* -1 (pops LI_ENV metatable) */
|
||||
LL->li_env_ref = luaL_ref(L, LUA_REGISTRYINDEX); /* -1 */
|
||||
|
||||
li_lua_init_chunk_mt(L);
|
||||
li_lua_init_environment_mt(L);
|
||||
li_lua_init_filter_mt(L);
|
||||
@ -373,7 +466,9 @@ void li_lua_init2(liLuaState *LL, liServer *srv, liWorker *wrk) {
|
||||
li_lua_init_request_mt(L);
|
||||
li_lua_init_response_mt(L);
|
||||
li_lua_init_stat_mt(L);
|
||||
/* DISABLED FOR NOW
|
||||
li_lua_init_subrequest_mt(L);
|
||||
*/
|
||||
li_lua_init_virtualrequest_mt(L);
|
||||
|
||||
if (NULL == wrk) {
|
||||
@ -449,7 +544,10 @@ void li_lua_init2(liLuaState *LL, liServer *srv, liWorker *wrk) {
|
||||
/* store "lighty" object in globals */
|
||||
lua_setglobal(L, "lighty");
|
||||
|
||||
li_lua_store_globals(L);
|
||||
li_lua_push_action_table(srv, wrk, L);
|
||||
lua_setglobal(L, "action");
|
||||
|
||||
li_lua_set_global_condition_lvalues(srv, L);
|
||||
|
||||
li_plugins_init_lua(LL, srv, wrk);
|
||||
}
|
||||
@ -476,29 +574,3 @@ int li_lua_ghashtable_gstring_pairs(lua_State *L, GHashTable *ht) {
|
||||
lua_pushnil(L); lua_pushnil(L); /* +2 */
|
||||
return 3;
|
||||
}
|
||||
|
||||
void li_lua_setfenv(lua_State *L, int funcindex) /* -1 */ {
|
||||
/* set _ENV upvalue of lua function */
|
||||
#if LUA_VERSION_NUM == 501
|
||||
lua_setfenv(L, funcindex); /* -1 */
|
||||
#else
|
||||
int n;
|
||||
|
||||
lua_pushvalue(L, funcindex); /* +1, for consistent index */
|
||||
for (n = 0; n < 10; ++n) {
|
||||
const char *name = lua_getupvalue(L, -1, n); /* +1 unless name == NULL */
|
||||
if (!name) break; /* last upvalue or a C function (empty upvalue names) */
|
||||
lua_pop(L, 1); /* -1, drop upvalue value */
|
||||
if (!name[0]) break; /* C function (empty upvalue names) */
|
||||
if (0 == strcmp(name, "_ENV")) {
|
||||
lua_pushvalue(L, -2);
|
||||
if (NULL == lua_setupvalue(L, -2, n)) {
|
||||
/* shouldn't happen - upvalue index `n` was valid above */
|
||||
lua_pop(L, 1); /* -1 */
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
lua_pop(L, 2); /* -2: copy of function and env */
|
||||
#endif
|
||||
}
|
||||
|
@ -162,6 +162,7 @@ struct filter_lua_config {
|
||||
typedef struct filter_lua_state filter_lua_state;
|
||||
struct filter_lua_state {
|
||||
liLuaState *LL;
|
||||
int env_ref;
|
||||
int object_ref;
|
||||
};
|
||||
|
||||
@ -169,8 +170,11 @@ static filter_lua_state* filter_lua_state_new(liVRequest *vr, filter_lua_config
|
||||
int object_ref = LUA_NOREF;
|
||||
liServer *srv = vr->wrk->srv;
|
||||
lua_State *L = config->LL->L;
|
||||
int env_ref;
|
||||
|
||||
li_lua_lock(config->LL);
|
||||
env_ref = li_lua_environment_create(config->LL, vr);
|
||||
li_lua_environment_activate(config->LL, env_ref); /* +1 */
|
||||
|
||||
lua_rawgeti(L, LUA_REGISTRYINDEX, config->class_ref); /* +1 */
|
||||
li_lua_push_vrequest(L, vr); /* +1 */
|
||||
@ -186,12 +190,19 @@ static filter_lua_state* filter_lua_state_new(liVRequest *vr, filter_lua_config
|
||||
li_vrequest_error(vr);
|
||||
}
|
||||
|
||||
li_lua_environment_restore(config->LL); /* -1 */
|
||||
if (LUA_NOREF == object_ref) {
|
||||
li_lua_environment_free(L, env_ref);
|
||||
env_ref = LUA_NOREF;
|
||||
}
|
||||
|
||||
li_lua_unlock(config->LL);
|
||||
|
||||
if (LUA_NOREF != object_ref) {
|
||||
filter_lua_state *state = g_slice_new0(filter_lua_state);
|
||||
state->LL = config->LL;
|
||||
state->object_ref = object_ref;
|
||||
state->env_ref = env_ref;
|
||||
|
||||
return state;
|
||||
} else {
|
||||
@ -204,12 +215,15 @@ static void filter_lua_state_free(liVRequest *vr, filter_lua_state *state) {
|
||||
lua_State *L = state->LL->L;
|
||||
|
||||
li_lua_lock(state->LL);
|
||||
li_lua_environment_activate(state->LL, state->env_ref); /* +1 */
|
||||
|
||||
lua_rawgeti(L, LUA_REGISTRYINDEX, state->object_ref); /* +1 */
|
||||
li_lua_push_vrequest(L, vr); /* +1 */
|
||||
li_lua_call_object(srv, vr, L, "finished", 2, 0, TRUE); /* -2 */
|
||||
li_lua_environment_restore(state->LL); /* -1 */
|
||||
|
||||
luaL_unref(L, LUA_REGISTRYINDEX, state->object_ref);
|
||||
li_lua_environment_free(L, state->env_ref);
|
||||
|
||||
li_lua_unlock(state->LL);
|
||||
|
||||
@ -229,6 +243,7 @@ static liHandlerResult filter_lua_handle(liVRequest *vr, liFilter *f) {
|
||||
liHandlerResult res;
|
||||
|
||||
li_lua_lock(state->LL);
|
||||
li_lua_environment_activate(state->LL, state->env_ref); /* +1 */
|
||||
|
||||
lua_rawgeti(L, LUA_REGISTRYINDEX, state->object_ref); /* +1 */
|
||||
li_lua_push_vrequest(L, vr); /* +1 */
|
||||
@ -255,6 +270,7 @@ static liHandlerResult filter_lua_handle(liVRequest *vr, liFilter *f) {
|
||||
res = LI_HANDLER_ERROR;
|
||||
}
|
||||
|
||||
li_lua_environment_restore(state->LL); /* -1 */
|
||||
li_lua_unlock(state->LL);
|
||||
|
||||
return res;
|
||||
|
@ -65,7 +65,7 @@ if get_option('lua')
|
||||
'request_lua.c',
|
||||
'response_lua.c',
|
||||
'stat_lua.c',
|
||||
'subrequest_lua.c',
|
||||
# 'subrequest_lua.c',
|
||||
'virtualrequest_lua.c',
|
||||
]
|
||||
endif
|
||||
|
@ -4,6 +4,10 @@
|
||||
#include <lighttpd/plugin_core.h>
|
||||
#include <lighttpd/filter_buffer_on_disk.h>
|
||||
|
||||
#ifdef HAVE_LUA_H
|
||||
# include <lighttpd/core_lua.h>
|
||||
#endif
|
||||
|
||||
static void vrequest_job_cb(liJob *job) {
|
||||
liVRequest *vr = LI_CONTAINER_OF(job, liVRequest, job);
|
||||
li_vrequest_state_machine(vr);
|
||||
@ -40,6 +44,9 @@ liVRequest* li_vrequest_new(liWorker *wrk, liConInfo *coninfo) {
|
||||
li_response_init(&vr->response);
|
||||
li_environment_init(&vr->env);
|
||||
|
||||
vr->lua_server_env_ref = LUA_NOREF;
|
||||
vr->lua_worker_env_ref = LUA_NOREF;
|
||||
|
||||
li_vrequest_filters_init(vr);
|
||||
|
||||
li_action_stack_init(&vr->action_stack);
|
||||
@ -76,6 +83,21 @@ void li_vrequest_free(liVRequest* vr) {
|
||||
li_response_clear(&vr->response);
|
||||
li_environment_clear(&vr->env);
|
||||
|
||||
#ifdef HAVE_LUA_H
|
||||
if (vr->lua_server_env_ref != LUA_NOREF) {
|
||||
li_lua_lock(&srv->LL);
|
||||
luaL_unref(srv->LL.L, LUA_REGISTRYINDEX, vr->lua_server_env_ref);
|
||||
li_lua_unlock(&srv->LL);
|
||||
vr->lua_server_env_ref = LUA_NOREF;
|
||||
}
|
||||
if (vr->lua_worker_env_ref != LUA_NOREF) {
|
||||
li_lua_lock(&vr->wrk->LL);
|
||||
luaL_unref(vr->wrk->LL.L, LUA_REGISTRYINDEX, vr->lua_worker_env_ref);
|
||||
li_lua_unlock(&vr->wrk->LL);
|
||||
vr->lua_worker_env_ref = LUA_NOREF;
|
||||
}
|
||||
#endif
|
||||
|
||||
li_vrequest_filters_clear(vr);
|
||||
|
||||
li_job_clear(&vr->job);
|
||||
@ -130,6 +152,21 @@ void li_vrequest_reset(liVRequest *vr, gboolean keepalive) {
|
||||
li_response_reset(&vr->response);
|
||||
li_environment_reset(&vr->env);
|
||||
|
||||
#ifdef HAVE_LUA_H
|
||||
if (vr->lua_server_env_ref != LUA_NOREF) {
|
||||
li_lua_lock(&srv->LL);
|
||||
luaL_unref(srv->LL.L, LUA_REGISTRYINDEX, vr->lua_server_env_ref);
|
||||
li_lua_unlock(&srv->LL);
|
||||
vr->lua_server_env_ref = LUA_NOREF;
|
||||
}
|
||||
if (vr->lua_worker_env_ref != LUA_NOREF) {
|
||||
li_lua_lock(&vr->wrk->LL);
|
||||
luaL_unref(vr->wrk->LL.L, LUA_REGISTRYINDEX, vr->lua_worker_env_ref);
|
||||
li_lua_unlock(&vr->wrk->LL);
|
||||
vr->lua_worker_env_ref = LUA_NOREF;
|
||||
}
|
||||
#endif
|
||||
|
||||
li_vrequest_filters_reset(vr);
|
||||
|
||||
li_job_reset(&vr->job);
|
||||
|
@ -332,8 +332,9 @@ static const luaL_Reg vrequest_mt[] = {
|
||||
{ "add_filter_in", lua_vrequest_add_filter_in },
|
||||
{ "add_filter_out", lua_vrequest_add_filter_out },
|
||||
|
||||
/* DISABLED FOR NOW
|
||||
{ "subrequest", li_lua_vrequest_subrequest },
|
||||
|
||||
*/
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
|
@ -266,13 +266,19 @@ static gboolean lua_plugin_handle_setup(liServer *srv, liPlugin *p, liValue *val
|
||||
|
||||
li_lua_lock(&srv->LL);
|
||||
|
||||
lua_rawgeti(L, LUA_REGISTRYINDEX, lua_ref);
|
||||
nargs = push_args(L, val);
|
||||
li_lua_environment_use_globals(&srv->LL); /* +1 */
|
||||
li_lua_environment_activate_ephemeral(&srv->LL); /* +1 */
|
||||
|
||||
errfunc = li_lua_push_traceback(L, 0);
|
||||
if (lua_pcall(L, nargs, 1, errfunc)) {
|
||||
li_lua_push_setup_table(srv, srv->main_worker, L);
|
||||
lua_setglobal(L, "setup");
|
||||
|
||||
lua_rawgeti(L, LUA_REGISTRYINDEX, lua_ref); /* +1: setup function */
|
||||
nargs = push_args(L, val); /* +nargs: variable number of args */
|
||||
|
||||
errfunc = li_lua_push_traceback(L, nargs); /* +1, but before nargs */
|
||||
if (lua_pcall(L, nargs, 1, errfunc)) { /* -1-nargs, +1*/
|
||||
ERROR(srv, "lua_pcall(): %s", lua_tostring(L, -1));
|
||||
lua_pop(L, 1);
|
||||
lua_pop(L, 1); /* -1 */
|
||||
res = FALSE;
|
||||
} else {
|
||||
res = TRUE;
|
||||
@ -280,9 +286,12 @@ static gboolean lua_plugin_handle_setup(liServer *srv, liPlugin *p, liValue *val
|
||||
if (!lua_isnil(L, -1) && (!lua_isboolean(L, -1) || !lua_toboolean(L, -1))) {
|
||||
res = FALSE;
|
||||
}
|
||||
lua_pop(L, 1);
|
||||
lua_pop(L, 1); /* -1 */
|
||||
}
|
||||
lua_remove(L, errfunc);
|
||||
lua_remove(L, errfunc); /* -1 */
|
||||
|
||||
li_lua_environment_restore(&srv->LL); /* -1 */
|
||||
li_lua_environment_restore_globals(L); /* -1 */
|
||||
|
||||
lua_gc(L, LUA_GCCOLLECT, 0);
|
||||
li_lua_unlock(&srv->LL);
|
||||
@ -300,21 +309,30 @@ static liAction* lua_plugin_handle_action(liServer *srv, liWorker *wrk, liPlugin
|
||||
|
||||
li_lua_lock(&srv->LL);
|
||||
|
||||
lua_rawgeti(L, LUA_REGISTRYINDEX, lua_ref);
|
||||
nargs = push_args(L, val);
|
||||
li_lua_environment_use_globals(&srv->LL); /* +1 */
|
||||
li_lua_environment_activate_ephemeral(&srv->LL); /* +1 */
|
||||
|
||||
errfunc = li_lua_push_traceback(L, nargs);
|
||||
if (lua_pcall(L, nargs, 1, errfunc)) {
|
||||
li_lua_push_setup_table(srv, wrk, L);
|
||||
lua_setglobal(L, "setup");
|
||||
|
||||
lua_rawgeti(L, LUA_REGISTRYINDEX, lua_ref); /* +1 */
|
||||
nargs = push_args(L, val); /* +nargs: variable number of args */
|
||||
|
||||
errfunc = li_lua_push_traceback(L, nargs); /* +1, but before nargs */
|
||||
if (lua_pcall(L, nargs, 1, errfunc)) { /* -1-nargs, +1 */
|
||||
ERROR(srv, "lua_pcall(): %s", lua_tostring(L, -1));
|
||||
lua_pop(L, 1);
|
||||
lua_pop(L, 1); /* -1 */
|
||||
} else {
|
||||
res = li_lua_get_action_ref(L, -1);
|
||||
if (res == NULL) {
|
||||
ERROR(srv, "%s", "lua plugin action-create callback didn't return an action");
|
||||
}
|
||||
lua_pop(L, 1);
|
||||
lua_pop(L, 1); /* -1 */
|
||||
}
|
||||
lua_remove(L, errfunc);
|
||||
lua_remove(L, errfunc); /* -1 */
|
||||
|
||||
li_lua_environment_restore(&srv->LL); /* -1 */
|
||||
li_lua_environment_restore_globals(L); /* -1 */
|
||||
|
||||
lua_gc(L, LUA_GCCOLLECT, 0);
|
||||
li_lua_unlock(&srv->LL);
|
||||
@ -429,7 +447,7 @@ static void lua_plugin_init(liServer *srv, liPlugin *p, gpointer userdata) {
|
||||
|
||||
p->options = lp_options;
|
||||
p->actions = &g_array_index(lp->actions, liPluginAction, 0);
|
||||
p->setups = &g_array_index(lp->setups, liPluginSetup, 0);;
|
||||
p->setups = &g_array_index(lp->setups, liPluginSetup, 0);
|
||||
|
||||
p->data = lp;
|
||||
p->free = lua_plugin_free;
|
||||
@ -443,14 +461,15 @@ static gboolean lua_plugin_load(liServer *srv, liPlugin *p, GString *filename, l
|
||||
module_config *mc = p->data;
|
||||
liPlugin *newp;
|
||||
|
||||
lua_find_file(filename);
|
||||
|
||||
li_lua_lock(&srv->LL);
|
||||
|
||||
li_lua_environment_use_globals(&srv->LL); /* +1 */
|
||||
li_lua_environment_activate_ephemeral(&srv->LL); /* +1 */
|
||||
|
||||
lua_stack_top = lua_gettop(L);
|
||||
|
||||
li_lua_new_globals(L);
|
||||
|
||||
lua_find_file(filename);
|
||||
|
||||
if (0 != luaL_loadfile(L, filename->str)) {
|
||||
ERROR(srv, "Loading lua plugin '%s' failed: %s", filename->str, lua_tostring(L, -1));
|
||||
goto failed_unlock_lua;
|
||||
@ -459,23 +478,18 @@ static gboolean lua_plugin_load(liServer *srv, liPlugin *p, GString *filename, l
|
||||
li_lua_push_setup_table(srv, srv->main_worker, L);
|
||||
lua_setglobal(L, "setup");
|
||||
|
||||
li_lua_push_action_table(srv, srv->main_worker, L);
|
||||
lua_setglobal(L, "action");
|
||||
|
||||
li_lua_push_lvalues_dict(srv, L);
|
||||
|
||||
/* arguments for plugin: local filename, args = ... */
|
||||
/* 1. filename */
|
||||
lua_pushlstring(L, GSTR_LEN(filename));
|
||||
lua_pushlstring(L, GSTR_LEN(filename)); /* +1 */
|
||||
/* 2. args */
|
||||
li_lua_push_value(L, args);
|
||||
li_lua_push_value(L, args); /* +1 */
|
||||
|
||||
errfunc = li_lua_push_traceback(L, 2);
|
||||
if (lua_pcall(L, 2, 0, errfunc)) {
|
||||
errfunc = li_lua_push_traceback(L, 2); /* +1, but before fn args */
|
||||
if (lua_pcall(L, 2, 0, errfunc)) { /* -3 (fn + args), 0 results (but 1 error)*/
|
||||
ERROR(srv, "lua_pcall(): %s", lua_tostring(L, -1));
|
||||
goto failed_unlock_lua;
|
||||
}
|
||||
lua_remove(L, errfunc);
|
||||
lua_remove(L, errfunc); /* -1 */
|
||||
|
||||
if (NULL == (lp = lua_plugin_create_data(srv, L))) {
|
||||
ERROR(srv, "failed to create plugin data for lua plugin '%s'", filename->str);
|
||||
@ -490,7 +504,10 @@ static gboolean lua_plugin_load(liServer *srv, liPlugin *p, GString *filename, l
|
||||
|
||||
g_ptr_array_add(mc->lua_plugins, newp);
|
||||
|
||||
li_lua_restore_globals(L);
|
||||
LI_FORCE_ASSERT(lua_gettop(L) == lua_stack_top);
|
||||
|
||||
li_lua_environment_restore(&srv->LL); /* -1 */
|
||||
li_lua_environment_restore_globals(L); /* -1 */
|
||||
lua_gc(L, LUA_GCCOLLECT, 0);
|
||||
li_lua_unlock(&srv->LL);
|
||||
|
||||
@ -501,8 +518,9 @@ static gboolean lua_plugin_load(liServer *srv, liPlugin *p, GString *filename, l
|
||||
return TRUE;
|
||||
|
||||
failed_unlock_lua:
|
||||
lua_pop(L, lua_gettop(L) - lua_stack_top);
|
||||
li_lua_restore_globals(L);
|
||||
lua_pop(L, lua_gettop(L) - lua_stack_top); /* reset stack */
|
||||
li_lua_environment_restore(&srv->LL); /* -1 */
|
||||
li_lua_environment_restore_globals(L); /* -1 */
|
||||
lua_gc(L, LUA_GCCOLLECT, 0);
|
||||
li_lua_unlock(&srv->LL);
|
||||
|
||||
|
@ -1,26 +1,13 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEUzCCArugAwIBAgIBATANBgkqhkiG9w0BAQ0FADBLMScwJQYDVQQDEx5saWdo
|
||||
dHRwZDIgdGVzdCBzdWl0ZSBBdXRob3JpdHkxIDAeBgNVBAsTF2xpZ2h0dHBkMiB0
|
||||
ZXN0IHN1aXRlIENBMB4XDTI0MTIyNTIyNTIzMVoXDTM0MTIyMzIyNTIzMVowSzEn
|
||||
MCUGA1UEAxMebGlnaHR0cGQyIHRlc3Qgc3VpdGUgQXV0aG9yaXR5MSAwHgYDVQQL
|
||||
ExdsaWdodHRwZDIgdGVzdCBzdWl0ZSBDQTCCAaIwDQYJKoZIhvcNAQEBBQADggGP
|
||||
ADCCAYoCggGBANiY4hXiOZkyx1Oz5qcFZUA4i8OCaZH4y1EYdJg5l+PwkzjR9Jib
|
||||
a8zWee56XLsn1OeOM29nWu2rex9n7FjjOhIJOr7E+VTxorEHhGYdp+8fA5x+WnSQ
|
||||
NBkrk+SUZi096/aZ32OZFDJKzgnmkY5BMuzxvcuI3/En/sAtM3Zv4MPHefAjnz2a
|
||||
7nqmNWcxcR982DGeJ9ggE+G0BxdlG3HZVUUrU3y0qx9lH3LU+NJANVDkDTthvVyJ
|
||||
MFe3q8ssANxoe+h2tKlu18KMCUNFrUjL2zGxfn/SNJ0baklMpEnpOcttRQbYL943
|
||||
/+x6pmLc55FAKb8RtAoJWoaXcMFEuXq2osuXS3EoUnWODa7CWJOCcldU6EymSgka
|
||||
I+sknyYyV3WaumT7yWpc42XIBMp5YeLKu7UwccPGzg5COJmOK/NbTX7mxKKf9U37
|
||||
4D/F9cPSZ51TjHHO4XnMAfeuG8h7vZoN99kvzS9/zhd9BWfZJFVsB2cEZ+wTkXKw
|
||||
xK3kTy3qVmE/vwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE
|
||||
AwIBBjAdBgNVHQ4EFgQUeCorT1z8K+qFb3++SNJRuXcNOsIwDQYJKoZIhvcNAQEN
|
||||
BQADggGBAFtorzGNsNLWzEUoKtzWtkNS8n9yzfSU4FmNMh+fHgDuC57mjd46Wls7
|
||||
8aJnrNhqakNs2DLQBHiiPSx3qDaNyPDw/6vNnB0FUQkZTcW8xa2NxnvdliuO7Y0S
|
||||
cxSHEI2K+yhzYGyBlXBtegE5B6firfT07JI/6FT34hhjSNAgdyde2yMvUUGLdcqz
|
||||
onxtCS8OjkWcClKcyzr2ILsyoqsicjFek9w/SZAFcDpRwGQuohB/3cDKTf7JIgTP
|
||||
liVS+kX9Wout16pcj8EyNZEKNm3AdnlktM7lqOIXAER+1A6gun9eGNZqT383x+xe
|
||||
I96yCczv02OK2JpUzv9xuUonSY4FI5PGf8DQ3uh3Qe11KkM3NDhkrADSk8tzICb9
|
||||
unL8GBFjpsnUhZU77TPNPSSDJYlx8weWqDtfKp5XyySiqeZiNimM+EHZbMfwgkzr
|
||||
n+WFlzBU6QEI9/EpYoY3dtutGyvkaKSVLCyae4BIls/sH3qzJB9QeW77+JjzaZod
|
||||
CSfaP0YJIA==
|
||||
MIICAzCCAYqgAwIBAgIBATAKBggqhkjOPQQDBDBLMScwJQYDVQQDEx5saWdodHRw
|
||||
ZDIgdGVzdCBzdWl0ZSBBdXRob3JpdHkxIDAeBgNVBAsTF2xpZ2h0dHBkMiB0ZXN0
|
||||
IHN1aXRlIENBMB4XDTI1MDEwMTEzMzIyNloXDTM0MTIzMDEzMzIyNlowSzEnMCUG
|
||||
A1UEAxMebGlnaHR0cGQyIHRlc3Qgc3VpdGUgQXV0aG9yaXR5MSAwHgYDVQQLExds
|
||||
aWdodHRwZDIgdGVzdCBzdWl0ZSBDQTB2MBAGByqGSM49AgEGBSuBBAAiA2IABELi
|
||||
eTNiaScZ2eF/OkuczjC2L2iHw3KtzsiLNxMiBlxhBH0/Lsw96s1pf/FZ5+NR+CTe
|
||||
5AnHCizcIdOK7ZUgs4de3jXNsEmuADvc5WAgIhAMewLsbROkCDdMwmN9/8Xnu6NC
|
||||
MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMEz
|
||||
tottTkpfEMdgJyKaXwKTAIJrMAoGCCqGSM49BAMEA2cAMGQCMEOSIX2o5l64UiJ1
|
||||
desOcopAzZYEcQJvEIXwn0OAPLZ2eYBJ7n2tJMpBJALT6gV70wIwd3kFAXMbyC9J
|
||||
B2kD93IzgHJUaHTUCOCgixVCyuuhcEkH+sosx/3g05oV0yV1zSGR
|
||||
-----END CERTIFICATE-----
|
||||
|
194
tests/ca/ca.key
194
tests/ca/ca.key
@ -1,182 +1,36 @@
|
||||
Public Key Info:
|
||||
Public Key Algorithm: RSA
|
||||
Key Security Level: High (3072 bits)
|
||||
Public Key Algorithm: EC/ECDSA
|
||||
Key Security Level: Ultra (384 bits)
|
||||
|
||||
modulus:
|
||||
00:d8:98:e2:15:e2:39:99:32:c7:53:b3:e6:a7:05:65
|
||||
40:38:8b:c3:82:69:91:f8:cb:51:18:74:98:39:97:e3
|
||||
f0:93:38:d1:f4:98:9b:6b:cc:d6:79:ee:7a:5c:bb:27
|
||||
d4:e7:8e:33:6f:67:5a:ed:ab:7b:1f:67:ec:58:e3:3a
|
||||
12:09:3a:be:c4:f9:54:f1:a2:b1:07:84:66:1d:a7:ef
|
||||
1f:03:9c:7e:5a:74:90:34:19:2b:93:e4:94:66:2d:3d
|
||||
eb:f6:99:df:63:99:14:32:4a:ce:09:e6:91:8e:41:32
|
||||
ec:f1:bd:cb:88:df:f1:27:fe:c0:2d:33:76:6f:e0:c3
|
||||
c7:79:f0:23:9f:3d:9a:ee:7a:a6:35:67:31:71:1f:7c
|
||||
d8:31:9e:27:d8:20:13:e1:b4:07:17:65:1b:71:d9:55
|
||||
45:2b:53:7c:b4:ab:1f:65:1f:72:d4:f8:d2:40:35:50
|
||||
e4:0d:3b:61:bd:5c:89:30:57:b7:ab:cb:2c:00:dc:68
|
||||
7b:e8:76:b4:a9:6e:d7:c2:8c:09:43:45:ad:48:cb:db
|
||||
31:b1:7e:7f:d2:34:9d:1b:6a:49:4c:a4:49:e9:39:cb
|
||||
6d:45:06:d8:2f:de:37:ff:ec:7a:a6:62:dc:e7:91:40
|
||||
29:bf:11:b4:0a:09:5a:86:97:70:c1:44:b9:7a:b6:a2
|
||||
cb:97:4b:71:28:52:75:8e:0d:ae:c2:58:93:82:72:57
|
||||
54:e8:4c:a6:4a:09:1a:23:eb:24:9f:26:32:57:75:9a
|
||||
ba:64:fb:c9:6a:5c:e3:65:c8:04:ca:79:61:e2:ca:bb
|
||||
b5:30:71:c3:c6:ce:0e:42:38:99:8e:2b:f3:5b:4d:7e
|
||||
e6:c4:a2:9f:f5:4d:fb:e0:3f:c5:f5:c3:d2:67:9d:53
|
||||
8c:71:ce:e1:79:cc:01:f7:ae:1b:c8:7b:bd:9a:0d:f7
|
||||
d9:2f:cd:2f:7f:ce:17:7d:05:67:d9:24:55:6c:07:67
|
||||
04:67:ec:13:91:72:b0:c4:ad:e4:4f:2d:ea:56:61:3f
|
||||
bf:
|
||||
|
||||
public exponent:
|
||||
01:00:01:
|
||||
|
||||
private exponent:
|
||||
62:5c:bb:7f:78:a6:f3:9d:8d:cb:c3:4d:21:d8:5f:6c
|
||||
d4:c1:13:de:6b:96:f0:c7:54:62:a8:c0:60:97:4b:da
|
||||
7a:e1:38:e7:bd:4e:07:9c:94:61:f7:1c:f6:73:bf:d8
|
||||
fd:f7:24:00:99:8d:3f:95:ba:6a:3e:c5:a4:70:3c:74
|
||||
e8:60:17:36:58:8c:6c:d7:97:51:74:9c:f3:26:ca:7e
|
||||
e9:22:ee:76:a1:ac:c3:1c:13:20:2c:93:ff:fa:d7:be
|
||||
0a:d5:42:0f:76:fb:27:03:b5:a1:e5:65:80:96:b7:4b
|
||||
c7:54:8b:d3:f2:ef:0f:5c:af:65:57:93:97:a7:19:01
|
||||
c3:ac:7c:60:da:97:3b:69:d3:85:39:01:c8:ff:a5:b0
|
||||
80:87:f4:4c:3f:f5:07:70:bc:2f:b1:a8:cf:01:05:aa
|
||||
4d:cc:b2:3b:51:e3:06:07:4c:1c:cf:8a:9b:c2:1a:a4
|
||||
16:26:3b:72:c5:4d:3f:f8:f5:de:3c:7c:15:40:02:ea
|
||||
3b:cc:ae:8c:6c:37:ba:0f:52:54:b3:7e:82:ad:68:46
|
||||
ee:22:bd:4a:81:a2:f4:a6:4e:dd:04:0b:b0:6b:80:69
|
||||
36:8d:bb:9a:f3:d2:07:c7:24:35:ba:59:0b:c7:20:6d
|
||||
91:71:ef:af:d0:e7:2b:ea:ea:d4:1f:73:5e:7c:5b:af
|
||||
c2:74:f6:fe:9c:ba:03:54:92:50:02:72:67:37:5b:59
|
||||
88:85:7c:17:11:d8:0f:b9:ef:49:0b:f4:6d:10:3e:1a
|
||||
ab:ef:9a:d1:7e:65:cf:e1:2c:bc:fd:80:54:ae:8f:4e
|
||||
04:b2:b3:38:ec:73:cb:7b:50:b1:54:2d:59:70:1e:f3
|
||||
e1:da:cb:ae:2d:3f:eb:c5:d6:82:93:6f:69:a5:63:b2
|
||||
9b:a5:21:5b:b7:e2:76:72:3a:5b:0b:77:4e:b6:0d:e9
|
||||
c2:d6:4e:3d:20:05:25:90:fa:c6:e7:39:fd:ea:c1:c4
|
||||
6e:a5:8d:af:55:46:b7:9e:7d:e7:f3:5b:d4:b9:80:e1
|
||||
curve: SECP384R1
|
||||
private key:
|
||||
5e:ca:7f:3a:1f:16:b3:1e:7d:e9:e3:b5:cc:0e:fa:74
|
||||
8b:2d:46:e7:f1:93:84:73:b7:dd:19:d5:71:ef:b2:89
|
||||
06:16:22:b9:73:35:ff:f3:0e:82:4e:56:fd:99:df:31
|
||||
|
||||
|
||||
prime1:
|
||||
00:ff:2f:99:73:82:d7:81:8c:0e:8b:ac:53:60:4c:38
|
||||
e4:78:c9:52:16:cc:bd:18:66:48:01:f6:ad:4c:15:14
|
||||
48:93:2e:c7:9d:86:b3:12:6e:94:6c:b5:87:9c:0f:8f
|
||||
e0:59:2f:12:39:4a:ee:2d:39:44:76:df:f6:f2:8c:6c
|
||||
c9:32:e3:d8:83:d2:0c:7d:f7:3d:5a:7a:4f:bf:da:73
|
||||
e2:f6:28:66:53:ad:0a:68:34:30:ef:b4:72:f3:f1:61
|
||||
78:8c:01:06:48:28:fd:2c:73:d9:5f:d3:59:80:e9:ea
|
||||
50:42:61:b5:27:b0:1c:8b:f3:af:37:0a:e9:a0:7c:fa
|
||||
f3:4b:ac:27:62:c8:64:57:b4:63:5c:39:1d:88:87:95
|
||||
76:fc:68:88:77:df:da:83:56:5a:00:a6:7f:59:7c:8c
|
||||
3b:50:02:72:ea:71:cc:88:19:f6:6d:b9:01:a6:7c:4b
|
||||
31:60:28:66:6d:cc:20:14:26:f8:14:f8:57:d7:b4:17
|
||||
67:
|
||||
|
||||
prime2:
|
||||
00:d9:49:c5:10:a2:d5:b0:e1:51:eb:73:68:68:b2:76
|
||||
08:f9:1c:4c:99:da:05:c5:2d:3a:5c:40:80:dc:75:3c
|
||||
76:29:16:8b:91:78:2d:f8:21:65:ea:b1:51:51:e7:99
|
||||
28:e2:98:5b:3b:a8:04:28:e7:e5:1c:bb:ea:57:2c:34
|
||||
7e:94:9a:05:fd:4a:18:3d:f2:3b:c2:e6:96:63:c5:8a
|
||||
6d:a9:d3:f9:87:24:50:44:15:82:46:14:e3:ba:ef:e7
|
||||
c2:0f:f0:f3:30:92:f8:48:ec:6d:e7:c3:d5:9d:41:7b
|
||||
87:44:73:63:85:b5:f1:eb:43:35:f5:b7:a5:4d:14:88
|
||||
86:ee:51:19:e5:23:fa:fe:40:1e:74:5d:c5:a2:9b:e5
|
||||
f5:f2:b5:b2:79:48:cf:07:07:30:0f:1b:6d:d1:40:82
|
||||
34:bd:43:c0:63:e6:35:44:61:43:b1:d4:e9:95:81:7a
|
||||
46:cd:ce:9d:5b:39:ca:0d:e9:9a:a5:71:5a:e4:bf:95
|
||||
e9:
|
||||
|
||||
coefficient:
|
||||
00:c3:6f:52:ff:f0:94:d8:cc:44:d9:06:ee:7b:0b:8f
|
||||
12:cd:91:a9:5d:01:2f:a1:f9:45:34:8b:df:b5:44:68
|
||||
e3:d1:e9:5f:c7:dc:f1:48:f1:05:da:fe:18:63:51:d3
|
||||
b8:70:c3:af:5e:91:5c:aa:42:88:23:76:4b:ac:f4:93
|
||||
a7:23:e1:6b:db:37:0d:04:5e:cc:cc:1b:85:87:d0:1a
|
||||
59:f2:9c:70:b0:b2:5e:01:27:2f:11:e1:62:92:04:fd
|
||||
c4:5b:5b:60:d1:a6:04:28:35:65:6a:e9:6b:a6:bc:d9
|
||||
d5:87:7e:ee:48:42:df:d6:df:09:5d:18:53:34:dc:ca
|
||||
6d:5a:2f:06:a4:5f:2a:2b:60:c1:fe:03:c6:ba:8a:5e
|
||||
7c:b9:5b:88:fd:4f:17:67:c4:03:23:69:67:ae:3b:53
|
||||
7e:8a:75:3c:cf:d8:ae:5a:16:ac:94:29:6b:32:f1:4b
|
||||
f1:12:7b:fc:07:3c:af:07:52:4d:b4:8a:e9:da:ed:1d
|
||||
b1:
|
||||
|
||||
exp1:
|
||||
3a:6b:10:2b:04:6a:07:6b:23:ad:4f:ee:ea:5d:a8:ac
|
||||
8d:06:31:77:ac:b9:21:4b:d0:f2:3a:21:64:08:73:53
|
||||
45:f6:70:96:1c:4f:04:4a:32:4a:4c:a8:55:ce:ae:36
|
||||
42:d4:66:cc:9c:dd:b7:96:a3:98:bf:1e:ce:59:dd:51
|
||||
96:07:d8:fa:1c:6c:e5:ad:62:eb:42:92:dd:2d:ca:57
|
||||
cb:d8:65:cc:84:11:9c:d7:4d:d8:a2:2b:aa:b2:b8:88
|
||||
9b:2c:64:de:c2:1b:6b:40:be:23:94:c3:a9:a2:63:14
|
||||
aa:8d:a9:a6:03:48:15:b5:dc:87:b2:44:d7:8b:a4:fb
|
||||
6b:78:66:af:d3:86:3d:19:bb:a1:52:25:f3:aa:6e:4a
|
||||
05:f0:7c:45:4d:06:be:08:57:a4:4c:79:5c:e8:09:46
|
||||
4e:c3:b0:c1:00:fa:3c:b2:0c:db:03:7e:60:39:96:11
|
||||
20:9d:3f:0d:a5:ac:36:50:d1:7c:23:7a:20:94:46:c3
|
||||
x:
|
||||
42:e2:79:33:62:69:27:19:d9:e1:7f:3a:4b:9c:ce:30
|
||||
b6:2f:68:87:c3:72:ad:ce:c8:8b:37:13:22:06:5c:61
|
||||
04:7d:3f:2e:cc:3d:ea:cd:69:7f:f1:59:e7:e3:51:f8
|
||||
|
||||
|
||||
exp2:
|
||||
27:3e:07:75:25:b3:6a:2a:87:5c:fa:8e:d4:b9:c6:4f
|
||||
80:8d:f7:d7:a1:64:81:63:d5:b2:6b:83:da:4c:e2:0a
|
||||
85:09:29:53:b0:5c:bc:ff:6b:24:a3:b9:88:0d:47:bf
|
||||
f6:8c:85:8d:94:9e:8b:b4:b5:d0:26:af:ff:e6:5f:e4
|
||||
ac:79:d4:b3:15:fa:a2:d5:68:ad:9e:6f:72:bd:6e:6e
|
||||
b7:c9:2c:bb:97:77:57:94:7a:de:a5:4f:2b:a7:c0:37
|
||||
70:21:98:0a:21:c0:ed:8a:a5:9e:c1:e3:86:6f:19:1c
|
||||
28:e4:9e:08:bb:ff:60:f9:d6:78:f6:1d:c8:79:f8:de
|
||||
45:94:28:15:16:16:72:6c:aa:13:62:0c:1b:7e:04:5e
|
||||
12:e3:75:c4:29:be:1a:0a:d6:47:24:31:05:25:9d:5e
|
||||
61:00:27:72:e3:54:a3:70:dd:84:f4:6a:eb:31:63:1f
|
||||
fe:73:5e:3f:e7:83:f2:57:4a:32:ae:f2:37:75:d2:61
|
||||
y:
|
||||
24:de:e4:09:c7:0a:2c:dc:21:d3:8a:ed:95:20:b3:87
|
||||
5e:de:35:cd:b0:49:ae:00:3b:dc:e5:60:20:22:10:0c
|
||||
7b:02:ec:6d:13:a4:08:37:4c:c2:63:7d:ff:c5:e7:bb
|
||||
|
||||
|
||||
|
||||
Public Key PIN:
|
||||
pin-sha256:vjVDop8uOVaqTw6GK4qv6IeJAv9FtpdVbvx5+2BssSU=
|
||||
pin-sha256:lMWzBgixjgubOuTReiygfOlYjtIjm+GpneEegi92kAM=
|
||||
Public Key ID:
|
||||
sha256:be3543a29f2e3956aa4f0e862b8aafe8878902ff45b697556efc79fb606cb125
|
||||
sha1:782a2b4f5cfc2bea856f7fbe48d251b9770d3ac2
|
||||
sha256:94c5b30608b18e0b9b3ae4d17a2ca07ce9588ed2239be1a99de11e822f769003
|
||||
sha1:c133b68b6d4e4a5f10c76027229a5f029300826b
|
||||
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
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
|
||||
-----END RSA PRIVATE KEY-----
|
||||
-----BEGIN EC PRIVATE KEY-----
|
||||
MIGkAgEBBDBeyn86HxazHn3p47XMDvp0iy1G5/GThHO33RnVce+yiQYWIrlzNf/z
|
||||
DoJOVv2Z3zGgBwYFK4EEACKhZANiAARC4nkzYmknGdnhfzpLnM4wti9oh8Nyrc7I
|
||||
izcTIgZcYQR9Py7MPerNaX/xWefjUfgk3uQJxwos3CHTiu2VILOHXt41zbBJrgA7
|
||||
3OVgICIQDHsC7G0TpAg3TMJjff/F57s=
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
@ -1,50 +1,25 @@
|
||||
Public Key Information:
|
||||
Public Key Algorithm: RSA
|
||||
Algorithm Security Level: High (3072 bits)
|
||||
Modulus (bits 3072):
|
||||
00:d8:98:e2:15:e2:39:99:32:c7:53:b3:e6:a7:05:65
|
||||
40:38:8b:c3:82:69:91:f8:cb:51:18:74:98:39:97:e3
|
||||
f0:93:38:d1:f4:98:9b:6b:cc:d6:79:ee:7a:5c:bb:27
|
||||
d4:e7:8e:33:6f:67:5a:ed:ab:7b:1f:67:ec:58:e3:3a
|
||||
12:09:3a:be:c4:f9:54:f1:a2:b1:07:84:66:1d:a7:ef
|
||||
1f:03:9c:7e:5a:74:90:34:19:2b:93:e4:94:66:2d:3d
|
||||
eb:f6:99:df:63:99:14:32:4a:ce:09:e6:91:8e:41:32
|
||||
ec:f1:bd:cb:88:df:f1:27:fe:c0:2d:33:76:6f:e0:c3
|
||||
c7:79:f0:23:9f:3d:9a:ee:7a:a6:35:67:31:71:1f:7c
|
||||
d8:31:9e:27:d8:20:13:e1:b4:07:17:65:1b:71:d9:55
|
||||
45:2b:53:7c:b4:ab:1f:65:1f:72:d4:f8:d2:40:35:50
|
||||
e4:0d:3b:61:bd:5c:89:30:57:b7:ab:cb:2c:00:dc:68
|
||||
7b:e8:76:b4:a9:6e:d7:c2:8c:09:43:45:ad:48:cb:db
|
||||
31:b1:7e:7f:d2:34:9d:1b:6a:49:4c:a4:49:e9:39:cb
|
||||
6d:45:06:d8:2f:de:37:ff:ec:7a:a6:62:dc:e7:91:40
|
||||
29:bf:11:b4:0a:09:5a:86:97:70:c1:44:b9:7a:b6:a2
|
||||
cb:97:4b:71:28:52:75:8e:0d:ae:c2:58:93:82:72:57
|
||||
54:e8:4c:a6:4a:09:1a:23:eb:24:9f:26:32:57:75:9a
|
||||
ba:64:fb:c9:6a:5c:e3:65:c8:04:ca:79:61:e2:ca:bb
|
||||
b5:30:71:c3:c6:ce:0e:42:38:99:8e:2b:f3:5b:4d:7e
|
||||
e6:c4:a2:9f:f5:4d:fb:e0:3f:c5:f5:c3:d2:67:9d:53
|
||||
8c:71:ce:e1:79:cc:01:f7:ae:1b:c8:7b:bd:9a:0d:f7
|
||||
d9:2f:cd:2f:7f:ce:17:7d:05:67:d9:24:55:6c:07:67
|
||||
04:67:ec:13:91:72:b0:c4:ad:e4:4f:2d:ea:56:61:3f
|
||||
bf
|
||||
Exponent (bits 24):
|
||||
01:00:01
|
||||
Public Key Algorithm: EC/ECDSA
|
||||
Algorithm Security Level: Ultra (384 bits)
|
||||
Curve: SECP384R1
|
||||
X:
|
||||
42:e2:79:33:62:69:27:19:d9:e1:7f:3a:4b:9c:ce:30
|
||||
b6:2f:68:87:c3:72:ad:ce:c8:8b:37:13:22:06:5c:61
|
||||
04:7d:3f:2e:cc:3d:ea:cd:69:7f:f1:59:e7:e3:51:f8
|
||||
Y:
|
||||
24:de:e4:09:c7:0a:2c:dc:21:d3:8a:ed:95:20:b3:87
|
||||
5e:de:35:cd:b0:49:ae:00:3b:dc:e5:60:20:22:10:0c
|
||||
7b:02:ec:6d:13:a4:08:37:4c:c2:63:7d:ff:c5:e7:bb
|
||||
|
||||
Public Key ID:
|
||||
sha1:782a2b4f5cfc2bea856f7fbe48d251b9770d3ac2
|
||||
sha256:be3543a29f2e3956aa4f0e862b8aafe8878902ff45b697556efc79fb606cb125
|
||||
sha1:c133b68b6d4e4a5f10c76027229a5f029300826b
|
||||
sha256:94c5b30608b18e0b9b3ae4d17a2ca07ce9588ed2239be1a99de11e822f769003
|
||||
Public Key PIN:
|
||||
pin-sha256:vjVDop8uOVaqTw6GK4qv6IeJAv9FtpdVbvx5+2BssSU=
|
||||
pin-sha256:lMWzBgixjgubOuTReiygfOlYjtIjm+GpneEegi92kAM=
|
||||
|
||||
|
||||
-----BEGIN PUBLIC KEY-----
|
||||
MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA2JjiFeI5mTLHU7PmpwVl
|
||||
QDiLw4JpkfjLURh0mDmX4/CTONH0mJtrzNZ57npcuyfU544zb2da7at7H2fsWOM6
|
||||
Egk6vsT5VPGisQeEZh2n7x8DnH5adJA0GSuT5JRmLT3r9pnfY5kUMkrOCeaRjkEy
|
||||
7PG9y4jf8Sf+wC0zdm/gw8d58COfPZrueqY1ZzFxH3zYMZ4n2CAT4bQHF2UbcdlV
|
||||
RStTfLSrH2UfctT40kA1UOQNO2G9XIkwV7eryywA3Gh76Ha0qW7XwowJQ0WtSMvb
|
||||
MbF+f9I0nRtqSUykSek5y21FBtgv3jf/7HqmYtznkUApvxG0CglahpdwwUS5erai
|
||||
y5dLcShSdY4NrsJYk4JyV1ToTKZKCRoj6ySfJjJXdZq6ZPvJalzjZcgEynlh4sq7
|
||||
tTBxw8bODkI4mY4r81tNfubEop/1TfvgP8X1w9JnnVOMcc7hecwB964byHu9mg33
|
||||
2S/NL3/OF30FZ9kkVWwHZwRn7BORcrDEreRPLepWYT+/AgMBAAE=
|
||||
MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEQuJ5M2JpJxnZ4X86S5zOMLYvaIfDcq3O
|
||||
yIs3EyIGXGEEfT8uzD3qzWl/8Vnn41H4JN7kCccKLNwh04rtlSCzh17eNc2wSa4A
|
||||
O9zlYCAiEAx7AuxtE6QIN0zCY33/xee7
|
||||
-----END PUBLIC KEY-----
|
||||
|
15
tests/ca/client1.crt
Normal file
15
tests/ca/client1.crt
Normal file
@ -0,0 +1,15 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICRzCCAc6gAwIBAgIUTXuH5LA/Ee7GxPU8psTxrsOB3nMwCgYIKoZIzj0EAwQw
|
||||
WTEuMCwGA1UEAxMlbGlnaHR0cGQyIHRlc3Qgc3VpdGUgQ2xpZW50IEF1dGhvcml0
|
||||
eTEnMCUGA1UECxMebGlnaHR0cGQyIHRlc3Qgc3VpdGUgQ2xpZW50IENBMB4XDTI1
|
||||
MDEwMTEzMzIyNloXDTM0MTIzMDEzMzIyNlowOzEQMA4GA1UEAxMHY2xpZW50MTEn
|
||||
MCUGA1UECxMebGlnaHR0cGQyIHRlc3Qgc3VpdGUgQ2xpZW50IENBMHYwEAYHKoZI
|
||||
zj0CAQYFK4EEACIDYgAED0VUvV0QW1TY0qxDrkTsln6WGJcifQdFB+uLXzBCfTwV
|
||||
SbCXhdY0EdowT2uVZjlDI2xHTAkSdqfSGcrkPJDhSpJYIanX8MbiNSMxQ3kY3ZyF
|
||||
oGpZ40PhD5O97jX3uvRLo3UwczAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoGCCsG
|
||||
AQUFBwMCMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQU5L/1A0rcCn/DHaFHJnPl
|
||||
8hgX8GcwHwYDVR0jBBgwFoAU2hsHrFdo+I7ndox2VLpzaSW3Ws4wCgYIKoZIzj0E
|
||||
AwQDZwAwZAIwBf9uuyS+5V0f3EROHCcXc73lPHv8BhmPt+u/5yJJhl7PqzRuFRsT
|
||||
t8BwnRbkm95tAjBpStZOKGgl10T4nk0VBvap7Y8rjcIzVgM5g2ppLkaLUMwmI+tu
|
||||
aSuQ6gOp73Yshes=
|
||||
-----END CERTIFICATE-----
|
36
tests/ca/client1.key
Normal file
36
tests/ca/client1.key
Normal file
@ -0,0 +1,36 @@
|
||||
Public Key Info:
|
||||
Public Key Algorithm: EC/ECDSA
|
||||
Key Security Level: Ultra (384 bits)
|
||||
|
||||
curve: SECP384R1
|
||||
private key:
|
||||
00:a9:ce:10:df:bc:99:a8:5b:89:00:e6:16:5c:cc:52
|
||||
09:3f:49:07:74:95:21:35:4d:00:25:b8:a4:64:0e:64
|
||||
15:f6:52:29:fa:39:77:27:a9:65:90:e7:ec:de:a7:3e
|
||||
00:
|
||||
|
||||
x:
|
||||
0f:45:54:bd:5d:10:5b:54:d8:d2:ac:43:ae:44:ec:96
|
||||
7e:96:18:97:22:7d:07:45:07:eb:8b:5f:30:42:7d:3c
|
||||
15:49:b0:97:85:d6:34:11:da:30:4f:6b:95:66:39:43
|
||||
|
||||
|
||||
y:
|
||||
23:6c:47:4c:09:12:76:a7:d2:19:ca:e4:3c:90:e1:4a
|
||||
92:58:21:a9:d7:f0:c6:e2:35:23:31:43:79:18:dd:9c
|
||||
85:a0:6a:59:e3:43:e1:0f:93:bd:ee:35:f7:ba:f4:4b
|
||||
|
||||
|
||||
|
||||
Public Key PIN:
|
||||
pin-sha256:tiP++hy/M1YPIiNHrKyqWySy8mpf+mrPCwGyI/HOTrs=
|
||||
Public Key ID:
|
||||
sha256:b623fefa1cbf33560f222347acacaa5b24b2f26a5ffa6acf0b01b223f1ce4ebb
|
||||
sha1:e4bff5034adc0a7fc31da1472673e5f21817f067
|
||||
|
||||
-----BEGIN EC PRIVATE KEY-----
|
||||
MIGlAgEBBDEAqc4Q37yZqFuJAOYWXMxSCT9JB3SVITVNACW4pGQOZBX2Uin6OXcn
|
||||
qWWQ5+zepz4AoAcGBSuBBAAioWQDYgAED0VUvV0QW1TY0qxDrkTsln6WGJcifQdF
|
||||
B+uLXzBCfTwVSbCXhdY0EdowT2uVZjlDI2xHTAkSdqfSGcrkPJDhSpJYIanX8Mbi
|
||||
NSMxQ3kY3ZyFoGpZ40PhD5O97jX3uvRL
|
||||
-----END EC PRIVATE KEY-----
|
25
tests/ca/client1.pub
Normal file
25
tests/ca/client1.pub
Normal file
@ -0,0 +1,25 @@
|
||||
Public Key Information:
|
||||
Public Key Algorithm: EC/ECDSA
|
||||
Algorithm Security Level: Ultra (384 bits)
|
||||
Curve: SECP384R1
|
||||
X:
|
||||
0f:45:54:bd:5d:10:5b:54:d8:d2:ac:43:ae:44:ec:96
|
||||
7e:96:18:97:22:7d:07:45:07:eb:8b:5f:30:42:7d:3c
|
||||
15:49:b0:97:85:d6:34:11:da:30:4f:6b:95:66:39:43
|
||||
Y:
|
||||
23:6c:47:4c:09:12:76:a7:d2:19:ca:e4:3c:90:e1:4a
|
||||
92:58:21:a9:d7:f0:c6:e2:35:23:31:43:79:18:dd:9c
|
||||
85:a0:6a:59:e3:43:e1:0f:93:bd:ee:35:f7:ba:f4:4b
|
||||
|
||||
Public Key ID:
|
||||
sha1:e4bff5034adc0a7fc31da1472673e5f21817f067
|
||||
sha256:b623fefa1cbf33560f222347acacaa5b24b2f26a5ffa6acf0b01b223f1ce4ebb
|
||||
Public Key PIN:
|
||||
pin-sha256:tiP++hy/M1YPIiNHrKyqWySy8mpf+mrPCwGyI/HOTrs=
|
||||
|
||||
|
||||
-----BEGIN PUBLIC KEY-----
|
||||
MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAED0VUvV0QW1TY0qxDrkTsln6WGJcifQdF
|
||||
B+uLXzBCfTwVSbCXhdY0EdowT2uVZjlDI2xHTAkSdqfSGcrkPJDhSpJYIanX8Mbi
|
||||
NSMxQ3kY3ZyFoGpZ40PhD5O97jX3uvRL
|
||||
-----END PUBLIC KEY-----
|
7
tests/ca/client1.template
Normal file
7
tests/ca/client1.template
Normal file
@ -0,0 +1,7 @@
|
||||
|
||||
dn = "OU=lighttpd2 test suite Client CA,CN=client1"
|
||||
|
||||
expiration_days = 3650
|
||||
|
||||
tls_www_client
|
||||
signing_key
|
14
tests/ca/client_ca.crt
Normal file
14
tests/ca/client_ca.crt
Normal file
@ -0,0 +1,14 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICIDCCAaagAwIBAgIBATAKBggqhkjOPQQDBDBZMS4wLAYDVQQDEyVsaWdodHRw
|
||||
ZDIgdGVzdCBzdWl0ZSBDbGllbnQgQXV0aG9yaXR5MScwJQYDVQQLEx5saWdodHRw
|
||||
ZDIgdGVzdCBzdWl0ZSBDbGllbnQgQ0EwHhcNMjUwMTAxMTMzMjI2WhcNMzQxMjMw
|
||||
MTMzMjI2WjBZMS4wLAYDVQQDEyVsaWdodHRwZDIgdGVzdCBzdWl0ZSBDbGllbnQg
|
||||
QXV0aG9yaXR5MScwJQYDVQQLEx5saWdodHRwZDIgdGVzdCBzdWl0ZSBDbGllbnQg
|
||||
Q0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASS3dTmmtjhKfTQw33jA8vGC9LJkGh1
|
||||
hMH5N2kmE52C46cZFZwH6wZMVkcLmp3EpyASiCfuOi3RvIzUPRkrlXbvY7aL3NkT
|
||||
/7WhZZtn7cwFaD/NiBO5YWN5zbA6ERatOF6jQjBAMA8GA1UdEwEB/wQFMAMBAf8w
|
||||
DgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTaGwesV2j4jud2jHZUunNpJbdazjAK
|
||||
BggqhkjOPQQDBANoADBlAjAsUDPUAQQTNXMCNmxIQ3qba9ZrJSfMIVhZlDO/mUSJ
|
||||
Vp7nku/3lUdg6VOCCyEnv1kCMQCONCYvNaTMsn7wn6I5Euxyn++S/zwZ+eY3NrCD
|
||||
xSj8IeL4vDXzU39pNc9Z0nYWKzs=
|
||||
-----END CERTIFICATE-----
|
36
tests/ca/client_ca.key
Normal file
36
tests/ca/client_ca.key
Normal file
@ -0,0 +1,36 @@
|
||||
Public Key Info:
|
||||
Public Key Algorithm: EC/ECDSA
|
||||
Key Security Level: Ultra (384 bits)
|
||||
|
||||
curve: SECP384R1
|
||||
private key:
|
||||
48:92:1f:d3:2a:81:6b:7e:08:c7:de:99:26:6a:c2:c2
|
||||
f5:28:53:01:c5:9d:ae:b7:6a:2d:db:3c:a9:b7:04:f1
|
||||
20:5a:0a:35:11:09:90:eb:0c:e3:6a:45:f7:3a:f1:dd
|
||||
|
||||
|
||||
x:
|
||||
00:92:dd:d4:e6:9a:d8:e1:29:f4:d0:c3:7d:e3:03:cb
|
||||
c6:0b:d2:c9:90:68:75:84:c1:f9:37:69:26:13:9d:82
|
||||
e3:a7:19:15:9c:07:eb:06:4c:56:47:0b:9a:9d:c4:a7
|
||||
20:
|
||||
|
||||
y:
|
||||
12:88:27:ee:3a:2d:d1:bc:8c:d4:3d:19:2b:95:76:ef
|
||||
63:b6:8b:dc:d9:13:ff:b5:a1:65:9b:67:ed:cc:05:68
|
||||
3f:cd:88:13:b9:61:63:79:cd:b0:3a:11:16:ad:38:5e
|
||||
|
||||
|
||||
|
||||
Public Key PIN:
|
||||
pin-sha256:ClC41VsR43G8CaiRcPuncIR9mdMdf8aTr3b2aZKV5Ec=
|
||||
Public Key ID:
|
||||
sha256:0a50b8d55b11e371bc09a89170fba770847d99d31d7fc693af76f6699295e447
|
||||
sha1:da1b07ac5768f88ee7768c7654ba736925b75ace
|
||||
|
||||
-----BEGIN EC PRIVATE KEY-----
|
||||
MIGkAgEBBDBIkh/TKoFrfgjH3pkmasLC9ShTAcWdrrdqLds8qbcE8SBaCjURCZDr
|
||||
DONqRfc68d2gBwYFK4EEACKhZANiAASS3dTmmtjhKfTQw33jA8vGC9LJkGh1hMH5
|
||||
N2kmE52C46cZFZwH6wZMVkcLmp3EpyASiCfuOi3RvIzUPRkrlXbvY7aL3NkT/7Wh
|
||||
ZZtn7cwFaD/NiBO5YWN5zbA6ERatOF4=
|
||||
-----END EC PRIVATE KEY-----
|
26
tests/ca/client_ca.pub
Normal file
26
tests/ca/client_ca.pub
Normal file
@ -0,0 +1,26 @@
|
||||
Public Key Information:
|
||||
Public Key Algorithm: EC/ECDSA
|
||||
Algorithm Security Level: Ultra (384 bits)
|
||||
Curve: SECP384R1
|
||||
X:
|
||||
00:92:dd:d4:e6:9a:d8:e1:29:f4:d0:c3:7d:e3:03:cb
|
||||
c6:0b:d2:c9:90:68:75:84:c1:f9:37:69:26:13:9d:82
|
||||
e3:a7:19:15:9c:07:eb:06:4c:56:47:0b:9a:9d:c4:a7
|
||||
20
|
||||
Y:
|
||||
12:88:27:ee:3a:2d:d1:bc:8c:d4:3d:19:2b:95:76:ef
|
||||
63:b6:8b:dc:d9:13:ff:b5:a1:65:9b:67:ed:cc:05:68
|
||||
3f:cd:88:13:b9:61:63:79:cd:b0:3a:11:16:ad:38:5e
|
||||
|
||||
Public Key ID:
|
||||
sha1:da1b07ac5768f88ee7768c7654ba736925b75ace
|
||||
sha256:0a50b8d55b11e371bc09a89170fba770847d99d31d7fc693af76f6699295e447
|
||||
Public Key PIN:
|
||||
pin-sha256:ClC41VsR43G8CaiRcPuncIR9mdMdf8aTr3b2aZKV5Ec=
|
||||
|
||||
|
||||
-----BEGIN PUBLIC KEY-----
|
||||
MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEkt3U5prY4Sn00MN94wPLxgvSyZBodYTB
|
||||
+TdpJhOdguOnGRWcB+sGTFZHC5qdxKcgEogn7jot0byM1D0ZK5V272O2i9zZE/+1
|
||||
oWWbZ+3MBWg/zYgTuWFjec2wOhEWrThe
|
||||
-----END PUBLIC KEY-----
|
11
tests/ca/client_ca.template
Normal file
11
tests/ca/client_ca.template
Normal file
@ -0,0 +1,11 @@
|
||||
|
||||
dn = "OU=lighttpd2 test suite Client CA,CN=lighttpd2 test suite Client Authority"
|
||||
|
||||
serial = 01
|
||||
|
||||
expiration_days = 3650
|
||||
|
||||
ca
|
||||
cert_signing_key
|
||||
crl_signing_key
|
||||
|
@ -4,7 +4,7 @@ set -e
|
||||
|
||||
# (requires gnutls >= 3.2.7 (or >= 3.1.17 and < 3.2.0))
|
||||
|
||||
KEY_TYPE="${KEY_TYPE:-rsa}"
|
||||
KEY_TYPE="${KEY_TYPE:-ecc}"
|
||||
HASH_ALG="${HASH_ALG:-SHA512}"
|
||||
|
||||
function gen_rsa_key() {
|
||||
@ -55,9 +55,12 @@ function ca_sign() {
|
||||
gen_key "ca"
|
||||
gen_key "intermediate"
|
||||
gen_key "server"
|
||||
gen_key "client_ca"
|
||||
gen_key "client1"
|
||||
|
||||
ca_sign_self "ca"
|
||||
ca_sign "ca" "intermediate"
|
||||
ca_sign_self "client_ca"
|
||||
|
||||
for name in test1.ssl test2.ssl; do
|
||||
ca_sign "intermediate" "server_${name}" "server"
|
||||
@ -65,3 +68,5 @@ for name in test1.ssl test2.ssl; do
|
||||
echo "Generate server_${name}.pem"
|
||||
cat "server.key" "server_${name}.crt" "intermediate.crt" > "server_${name}.pem"
|
||||
done
|
||||
|
||||
ca_sign "client_ca" "client1"
|
||||
|
@ -1,27 +1,14 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEjDCCAvSgAwIBAgIUR8LOiig3v6yY4ZTxxwwg3LIUqMswDQYJKoZIhvcNAQEN
|
||||
BQAwSzEnMCUGA1UEAxMebGlnaHR0cGQyIHRlc3Qgc3VpdGUgQXV0aG9yaXR5MSAw
|
||||
HgYDVQQLExdsaWdodHRwZDIgdGVzdCBzdWl0ZSBDQTAeFw0yNDEyMjUyMjUyMzFa
|
||||
Fw0zNDEyMjMyMjUyMzFaMFAxLDAqBgNVBAMTI2xpZ2h0dHBkMiB0ZXN0IHN1aXRl
|
||||
IEludGVybWVkaWF0ZSAxMSAwHgYDVQQLExdsaWdodHRwZDIgdGVzdCBzdWl0ZSBD
|
||||
QTCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBANR6yGaTgbwvTxUxtnh4
|
||||
7r8uUj1+FGY+yDr6PN7QlMkdO6maHy5JgDs/Qg2dY5wE/CoF4bFnmdglioInKeYX
|
||||
bNj5i3GBrNfHnsoBRMjKVTBIRptytfTXm3JK7YxQ9LzjpOkHuyswhapT0PL3W7kc
|
||||
qaFjiThch1Exj7gOWswZxL5voH39MJXzhjQuqSknjxDHjNbiJB07q/vz7XVA9BSq
|
||||
Qqr2itBQAv0kFekGL9ZWDlbd0SVqAMKVof5y6eZcOvfqZ/1xAPfoAKRcIT1qrs73
|
||||
78ycJcarUgy1kSg9KhVPn6uetDja6J7K4MNqBFKqBJR0b5409rJ+XoJ+b8lX5dns
|
||||
IobL3QfoV+z6auxv80+aIGYQ7XWwfIG7qX8WNrFyMHS8coqQcKdH2ivL+NYK/+uB
|
||||
ZP+cif0cukoxOPQ5wRbbo6QeYLE8lMJSqkdIRHwXQnqHrDIOJWNkpOfTx37YyDCf
|
||||
vz0H1R10j6JYter8R9GPhgaXMkH1GHihe46/W0QpfxPPpwIDAQABo2MwYTAPBgNV
|
||||
HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUO0dFwXCG+RvI
|
||||
O08NsA8rtlkv8dUwHwYDVR0jBBgwFoAUeCorT1z8K+qFb3++SNJRuXcNOsIwDQYJ
|
||||
KoZIhvcNAQENBQADggGBAG+LHFmCflCOWmWN4VOgi5pVoRNyV3r1hHZL0drmonsw
|
||||
5h8VOdj6fOj23nzh2b7SpX9hLTcukPRMSt0HIQEcC9YTMB4LooNl9FJsoMBTmW1Z
|
||||
CiiFapxwYEMOhrDP5KNo3TA6eB5GsUc1CfnJ3/2loivQo/2jMHoP2LcCUjSG0tMS
|
||||
+WAHSzdlGGVDEh7WQMs7be3lAQev1YBrvmSY+HyP3EZmk1i0D0ZZ9MPcW3C/9Qvr
|
||||
x5r7lwBq7rIkMjRMKg7XK36eCMs/Xb3crOCR0Tg6LzUm2MAj4m8RVDoSN31FCAFe
|
||||
ZUvxaj8goU4GquCq+RmxXfL+DQT1UapwHmvsnhTPC9w5y1+4YK8Aq28FIquGkPbE
|
||||
zIG+mpzgJmpt8GHHiGQjpCo1XHE81m8g/DumvuuAezISIDYIBBvW2Kz8O2xVf8l1
|
||||
Cs3XBbjD3zx3G8KHZdlSgnNIwDme6r1VUZP/u0YHMnIhl6Bv/M4KiRO5rAYIjoex
|
||||
Ze0HkL+w6EPzNiJ6DUL9VA==
|
||||
MIICPDCCAcOgAwIBAgIURcjH78CmuAoNZVwLZka0+BmM17wwCgYIKoZIzj0EAwQw
|
||||
SzEnMCUGA1UEAxMebGlnaHR0cGQyIHRlc3Qgc3VpdGUgQXV0aG9yaXR5MSAwHgYD
|
||||
VQQLExdsaWdodHRwZDIgdGVzdCBzdWl0ZSBDQTAeFw0yNTAxMDExMzMyMjZaFw0z
|
||||
NDEyMzAxMzMyMjZaMFAxLDAqBgNVBAMTI2xpZ2h0dHBkMiB0ZXN0IHN1aXRlIElu
|
||||
dGVybWVkaWF0ZSAxMSAwHgYDVQQLExdsaWdodHRwZDIgdGVzdCBzdWl0ZSBDQTB2
|
||||
MBAGByqGSM49AgEGBSuBBAAiA2IABGAMLbh3AitDqsKwtO3b1qOwve2RzGWGs7z8
|
||||
qsi4Nye9+r9l6VQTnK0TUxrr/WdYOLdNmeMVtMl3tXb+m6XKnBVH442q8pipYbM7
|
||||
xSRLTuPDRSpKoJqZTTJcoLC/uhpLu6NjMGEwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
|
||||
HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFIdYZEGTpLS+h8WsSGr4m/7tnnetMB8GA1Ud
|
||||
IwQYMBaAFMEztottTkpfEMdgJyKaXwKTAIJrMAoGCCqGSM49BAMEA2cAMGQCMDUJ
|
||||
y41eYkjLnj1x9T1xvy4LPLjhQE4ZdpJ2BwNNnn/+lHgfZtxf8thQtoXbx9uHMgIw
|
||||
H8cWKviP+rrBLUW4JdnSvv+8voRJYpNswi+EJoee53hShIWsETixdwGM1hRGQtdB
|
||||
-----END CERTIFICATE-----
|
||||
|
@ -1,182 +1,36 @@
|
||||
Public Key Info:
|
||||
Public Key Algorithm: RSA
|
||||
Key Security Level: High (3072 bits)
|
||||
Public Key Algorithm: EC/ECDSA
|
||||
Key Security Level: Ultra (384 bits)
|
||||
|
||||
modulus:
|
||||
00:d4:7a:c8:66:93:81:bc:2f:4f:15:31:b6:78:78:ee
|
||||
bf:2e:52:3d:7e:14:66:3e:c8:3a:fa:3c:de:d0:94:c9
|
||||
1d:3b:a9:9a:1f:2e:49:80:3b:3f:42:0d:9d:63:9c:04
|
||||
fc:2a:05:e1:b1:67:99:d8:25:8a:82:27:29:e6:17:6c
|
||||
d8:f9:8b:71:81:ac:d7:c7:9e:ca:01:44:c8:ca:55:30
|
||||
48:46:9b:72:b5:f4:d7:9b:72:4a:ed:8c:50:f4:bc:e3
|
||||
a4:e9:07:bb:2b:30:85:aa:53:d0:f2:f7:5b:b9:1c:a9
|
||||
a1:63:89:38:5c:87:51:31:8f:b8:0e:5a:cc:19:c4:be
|
||||
6f:a0:7d:fd:30:95:f3:86:34:2e:a9:29:27:8f:10:c7
|
||||
8c:d6:e2:24:1d:3b:ab:fb:f3:ed:75:40:f4:14:aa:42
|
||||
aa:f6:8a:d0:50:02:fd:24:15:e9:06:2f:d6:56:0e:56
|
||||
dd:d1:25:6a:00:c2:95:a1:fe:72:e9:e6:5c:3a:f7:ea
|
||||
67:fd:71:00:f7:e8:00:a4:5c:21:3d:6a:ae:ce:f7:ef
|
||||
cc:9c:25:c6:ab:52:0c:b5:91:28:3d:2a:15:4f:9f:ab
|
||||
9e:b4:38:da:e8:9e:ca:e0:c3:6a:04:52:aa:04:94:74
|
||||
6f:9e:34:f6:b2:7e:5e:82:7e:6f:c9:57:e5:d9:ec:22
|
||||
86:cb:dd:07:e8:57:ec:fa:6a:ec:6f:f3:4f:9a:20:66
|
||||
10:ed:75:b0:7c:81:bb:a9:7f:16:36:b1:72:30:74:bc
|
||||
72:8a:90:70:a7:47:da:2b:cb:f8:d6:0a:ff:eb:81:64
|
||||
ff:9c:89:fd:1c:ba:4a:31:38:f4:39:c1:16:db:a3:a4
|
||||
1e:60:b1:3c:94:c2:52:aa:47:48:44:7c:17:42:7a:87
|
||||
ac:32:0e:25:63:64:a4:e7:d3:c7:7e:d8:c8:30:9f:bf
|
||||
3d:07:d5:1d:74:8f:a2:58:b5:ea:fc:47:d1:8f:86:06
|
||||
97:32:41:f5:18:78:a1:7b:8e:bf:5b:44:29:7f:13:cf
|
||||
a7:
|
||||
|
||||
public exponent:
|
||||
01:00:01:
|
||||
|
||||
private exponent:
|
||||
76:3b:ec:8f:c7:bd:05:6e:7d:df:19:4e:a4:33:07:07
|
||||
33:4b:68:14:64:5d:90:c9:f2:a7:94:7f:98:29:72:cf
|
||||
e5:87:36:cf:ea:fd:d3:71:24:7e:28:fd:4f:94:5d:e1
|
||||
c3:b0:8a:2a:21:b0:25:ea:9d:ec:56:c6:a5:d6:9b:27
|
||||
11:95:5a:90:02:12:00:6e:87:91:b5:28:d6:0e:19:53
|
||||
de:96:59:7a:8e:c7:fb:23:da:35:dd:42:9f:2d:0c:af
|
||||
93:4c:4e:06:76:75:aa:96:01:4b:72:01:84:3c:42:d8
|
||||
1f:7f:17:f1:c5:0a:95:3d:97:f9:c4:e4:95:e2:38:e5
|
||||
fc:b4:9e:d3:0e:5d:f8:6b:c9:1b:30:5f:66:e8:bb:61
|
||||
cf:a0:fe:df:95:78:da:36:9e:08:05:20:cc:ef:01:32
|
||||
09:06:ad:6c:18:7d:ac:3a:d4:f4:30:62:60:78:92:35
|
||||
d4:4f:b1:70:c2:d6:68:d2:22:37:ad:8b:dc:f4:5f:66
|
||||
82:bd:2a:3e:20:a7:64:45:62:98:ac:52:32:11:51:f4
|
||||
7d:27:60:d5:39:b8:a9:44:8c:26:19:f3:cd:aa:1a:e8
|
||||
e1:83:8b:0f:0c:6d:d7:cb:5f:19:e5:52:2f:2d:f0:e2
|
||||
d5:fd:b3:09:9e:bc:06:42:a7:f7:cd:c7:30:89:bb:74
|
||||
18:66:ec:c3:c6:d7:47:62:65:80:45:76:c4:ad:52:6c
|
||||
bb:69:48:5d:63:8d:21:e7:dd:61:19:a3:7e:71:47:4a
|
||||
8e:9d:f0:f3:27:ff:24:a8:15:d3:d0:4c:89:c8:24:20
|
||||
62:4e:00:95:5e:54:d3:b4:8b:d6:0b:5d:eb:4a:4d:59
|
||||
de:2b:eb:25:6c:4d:28:7f:01:f7:9f:bc:2f:4d:a8:00
|
||||
03:3b:4d:86:cf:9c:8f:88:0f:b4:80:b2:3b:40:5e:b4
|
||||
a7:3b:a0:ca:61:b1:e4:20:33:c6:ef:ec:2b:ed:da:53
|
||||
46:0e:f5:2b:28:24:19:09:ac:d6:b8:b7:18:16:a4:c1
|
||||
curve: SECP384R1
|
||||
private key:
|
||||
6c:80:9c:eb:20:30:f0:e5:2e:22:73:0b:32:6f:46:95
|
||||
64:9e:fd:14:b6:32:c4:3d:58:24:0f:2c:cf:1f:98:ad
|
||||
f1:6c:ac:a0:ff:f0:e4:20:66:81:35:fa:f3:f9:50:95
|
||||
|
||||
|
||||
prime1:
|
||||
00:e8:f2:90:f0:42:a9:66:be:9b:15:64:fb:59:56:dc
|
||||
d2:ad:2b:ad:f7:7c:9f:ef:3b:70:ae:ec:b9:bb:66:54
|
||||
2f:9a:6a:37:19:6b:37:61:f2:75:c5:ec:18:c6:dc:5d
|
||||
0b:3d:f2:6f:90:3e:60:6a:b2:3f:db:c4:96:97:27:9a
|
||||
7f:21:bd:fe:a7:7f:6a:9a:d5:2c:f9:9e:39:76:72:69
|
||||
63:64:36:a1:59:91:c6:f4:79:85:c3:fc:0b:5c:10:a1
|
||||
f6:93:fe:87:2a:2d:b2:2e:4b:cd:81:f6:d7:d6:3f:22
|
||||
4b:13:36:42:cb:df:15:3f:70:d7:ef:e5:f1:c9:99:96
|
||||
c2:61:f5:1a:a4:63:b9:c1:32:72:96:49:97:a1:86:ac
|
||||
87:6a:31:77:6a:19:a1:52:a3:15:83:27:9f:db:63:74
|
||||
5f:8a:c7:7a:07:33:c5:eb:ba:ad:2d:2c:cd:89:a9:8f
|
||||
28:69:65:21:df:98:96:f3:7e:ae:f0:cf:21:79:10:60
|
||||
6f:
|
||||
|
||||
prime2:
|
||||
00:e9:81:b0:1c:af:61:ee:b4:ec:11:f5:9e:94:68:5a
|
||||
82:8b:cd:27:ce:11:ec:3b:fa:a5:41:e0:83:89:e7:cb
|
||||
7e:49:ee:ac:aa:0e:56:2b:1a:5c:85:94:39:52:28:f8
|
||||
5b:e0:36:c8:90:47:df:0e:e7:db:9d:ca:20:b0:5a:ec
|
||||
bc:eb:0c:36:f9:c7:8e:51:d0:74:ab:04:40:aa:26:bc
|
||||
1b:e0:14:f1:0b:6f:79:91:94:19:b1:87:75:a7:ae:e5
|
||||
14:0e:52:57:e3:a4:3c:0f:fb:7a:01:f5:a8:ec:c3:77
|
||||
f7:da:92:77:0a:bf:e5:f1:59:d1:5a:bc:c3:5d:10:de
|
||||
f8:91:b7:d3:c1:a6:35:b3:47:b2:81:ad:ef:de:6e:fd
|
||||
38:69:e2:92:29:0c:51:2c:15:a8:fe:69:b4:4f:26:f0
|
||||
37:b8:dc:46:4d:3f:22:46:45:f6:20:d8:c8:5a:ed:77
|
||||
82:53:40:17:5b:26:a3:54:d5:5d:6f:55:02:10:a4:b0
|
||||
49:
|
||||
|
||||
coefficient:
|
||||
20:ee:cc:66:51:fb:a3:82:e4:55:02:7a:98:de:f1:d1
|
||||
83:d1:0a:26:5e:bf:78:5a:ca:cf:87:2b:19:97:20:ad
|
||||
29:4c:7c:d3:44:5e:94:ee:6c:68:a9:05:d7:25:6a:60
|
||||
1e:46:0b:94:f3:f9:5a:d6:27:fc:1d:de:e5:21:9b:47
|
||||
8d:1f:a4:7a:12:42:95:46:0e:9c:a0:9b:34:51:ba:71
|
||||
b9:fb:a9:02:2c:1d:a6:69:b5:57:89:ba:7c:47:e0:f5
|
||||
1a:9a:c0:71:de:e6:b1:52:7e:e6:1d:48:17:d7:22:50
|
||||
ed:23:d7:b9:6c:d4:6f:c9:d5:cb:13:ca:c0:f5:0c:74
|
||||
a9:12:ad:03:e1:24:97:07:73:1f:32:40:6f:6a:f9:52
|
||||
cb:fe:0a:d6:eb:7e:a9:c6:a6:13:c4:bb:55:65:6a:9a
|
||||
8d:25:a5:c7:1c:12:e8:3b:70:37:ba:a6:a9:1d:16:ba
|
||||
79:ed:9e:8b:11:0e:25:ca:e3:e3:ab:66:03:e6:7b:1d
|
||||
x:
|
||||
60:0c:2d:b8:77:02:2b:43:aa:c2:b0:b4:ed:db:d6:a3
|
||||
b0:bd:ed:91:cc:65:86:b3:bc:fc:aa:c8:b8:37:27:bd
|
||||
fa:bf:65:e9:54:13:9c:ad:13:53:1a:eb:fd:67:58:38
|
||||
|
||||
|
||||
exp1:
|
||||
02:11:95:63:ec:d3:a0:4b:f5:08:9d:9a:f5:d2:25:a7
|
||||
e1:4d:cf:ff:b0:a5:a2:f4:3e:2d:ef:80:3e:bf:cb:e3
|
||||
98:55:75:23:ce:a5:f1:42:bb:f5:04:01:bc:52:5c:a9
|
||||
2a:e5:aa:43:f7:a9:d7:88:b9:b4:73:ec:7a:6f:29:9a
|
||||
13:6c:a2:84:4e:47:5e:14:a2:8f:9c:ee:19:b5:2e:66
|
||||
69:8f:6a:a3:66:fe:03:51:c8:f4:52:9a:af:38:9e:97
|
||||
97:fc:dc:aa:6d:39:75:db:ca:79:6a:fd:c3:b3:4f:d4
|
||||
a6:d9:06:82:d4:fa:55:53:e5:37:06:2d:bd:82:95:aa
|
||||
28:40:8a:fa:06:c0:b1:8c:87:23:fa:87:54:31:e3:fa
|
||||
57:e1:14:94:66:a1:de:20:00:a2:e7:89:2d:e3:96:36
|
||||
fa:fe:86:80:e5:de:ce:17:1c:4e:98:65:42:e1:b4:99
|
||||
c1:45:da:a5:27:af:bf:7d:d2:83:e4:f3:01:26:3a:15
|
||||
|
||||
|
||||
exp2:
|
||||
00:af:82:2d:c7:f1:be:cf:37:a7:74:7c:44:1c:52:2f
|
||||
2d:8e:3c:be:5d:72:35:38:83:d5:30:a5:ba:d8:ad:a3
|
||||
d3:21:68:c6:d8:ee:fb:af:5c:1a:0c:c0:f3:30:a0:e0
|
||||
c3:d5:cb:f7:86:12:af:42:b9:dc:e5:45:a6:ba:47:2d
|
||||
47:75:f7:f1:5e:5e:b2:c7:25:c2:7b:44:30:02:74:28
|
||||
d1:5e:e4:fe:a4:54:be:70:40:7b:eb:66:e0:75:0f:cc
|
||||
d8:fd:46:c1:0e:b6:43:fa:d3:4e:ca:28:46:36:e7:58
|
||||
c5:af:c0:84:bf:4c:ab:5d:73:e0:1a:ae:64:bd:0f:d0
|
||||
37:ce:f6:f7:af:c6:e8:f7:fe:bc:da:21:cd:78:47:be
|
||||
06:67:f7:c7:5a:19:0a:ed:f2:bd:d9:b3:c3:b5:f6:93
|
||||
79:9e:75:da:55:77:4d:a0:ba:37:1c:4b:34:94:bb:86
|
||||
27:2b:c1:b1:8c:6e:87:37:5d:43:e4:49:65:ca:f2:ae
|
||||
19:
|
||||
y:
|
||||
00:b7:4d:99:e3:15:b4:c9:77:b5:76:fe:9b:a5:ca:9c
|
||||
15:47:e3:8d:aa:f2:98:a9:61:b3:3b:c5:24:4b:4e:e3
|
||||
c3:45:2a:4a:a0:9a:99:4d:32:5c:a0:b0:bf:ba:1a:4b
|
||||
bb:
|
||||
|
||||
|
||||
Public Key PIN:
|
||||
pin-sha256:dOiH1Olylhi9fx5sH1F6m7p4IEq/VIq2qdBR2negK60=
|
||||
pin-sha256:81OEBDrqLrlq9D3S34OiNpfVp9N9tQyR0O+6KPeXiFs=
|
||||
Public Key ID:
|
||||
sha256:74e887d4e9729618bd7f1e6c1f517a9bba78204abf548ab6a9d051da77a02bad
|
||||
sha1:3b4745c17086f91bc83b4f0db00f2bb6592ff1d5
|
||||
sha256:f35384043aea2eb96af43dd2df83a23697d5a7d37db50c91d0efba28f797885b
|
||||
sha1:8758644193a4b4be87c5ac486af89bfeed9e77ad
|
||||
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
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
|
||||
-----END RSA PRIVATE KEY-----
|
||||
-----BEGIN EC PRIVATE KEY-----
|
||||
MIGkAgEBBDBsgJzrIDDw5S4icwsyb0aVZJ79FLYyxD1YJA8szx+YrfFsrKD/8OQg
|
||||
ZoE1+vP5UJWgBwYFK4EEACKhZANiAARgDC24dwIrQ6rCsLTt29ajsL3tkcxlhrO8
|
||||
/KrIuDcnvfq/ZelUE5ytE1Ma6/1nWDi3TZnjFbTJd7V2/pulypwVR+ONqvKYqWGz
|
||||
O8UkS07jw0UqSqCamU0yXKCwv7oaS7s=
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
@ -1,50 +1,26 @@
|
||||
Public Key Information:
|
||||
Public Key Algorithm: RSA
|
||||
Algorithm Security Level: High (3072 bits)
|
||||
Modulus (bits 3072):
|
||||
00:d4:7a:c8:66:93:81:bc:2f:4f:15:31:b6:78:78:ee
|
||||
bf:2e:52:3d:7e:14:66:3e:c8:3a:fa:3c:de:d0:94:c9
|
||||
1d:3b:a9:9a:1f:2e:49:80:3b:3f:42:0d:9d:63:9c:04
|
||||
fc:2a:05:e1:b1:67:99:d8:25:8a:82:27:29:e6:17:6c
|
||||
d8:f9:8b:71:81:ac:d7:c7:9e:ca:01:44:c8:ca:55:30
|
||||
48:46:9b:72:b5:f4:d7:9b:72:4a:ed:8c:50:f4:bc:e3
|
||||
a4:e9:07:bb:2b:30:85:aa:53:d0:f2:f7:5b:b9:1c:a9
|
||||
a1:63:89:38:5c:87:51:31:8f:b8:0e:5a:cc:19:c4:be
|
||||
6f:a0:7d:fd:30:95:f3:86:34:2e:a9:29:27:8f:10:c7
|
||||
8c:d6:e2:24:1d:3b:ab:fb:f3:ed:75:40:f4:14:aa:42
|
||||
aa:f6:8a:d0:50:02:fd:24:15:e9:06:2f:d6:56:0e:56
|
||||
dd:d1:25:6a:00:c2:95:a1:fe:72:e9:e6:5c:3a:f7:ea
|
||||
67:fd:71:00:f7:e8:00:a4:5c:21:3d:6a:ae:ce:f7:ef
|
||||
cc:9c:25:c6:ab:52:0c:b5:91:28:3d:2a:15:4f:9f:ab
|
||||
9e:b4:38:da:e8:9e:ca:e0:c3:6a:04:52:aa:04:94:74
|
||||
6f:9e:34:f6:b2:7e:5e:82:7e:6f:c9:57:e5:d9:ec:22
|
||||
86:cb:dd:07:e8:57:ec:fa:6a:ec:6f:f3:4f:9a:20:66
|
||||
10:ed:75:b0:7c:81:bb:a9:7f:16:36:b1:72:30:74:bc
|
||||
72:8a:90:70:a7:47:da:2b:cb:f8:d6:0a:ff:eb:81:64
|
||||
ff:9c:89:fd:1c:ba:4a:31:38:f4:39:c1:16:db:a3:a4
|
||||
1e:60:b1:3c:94:c2:52:aa:47:48:44:7c:17:42:7a:87
|
||||
ac:32:0e:25:63:64:a4:e7:d3:c7:7e:d8:c8:30:9f:bf
|
||||
3d:07:d5:1d:74:8f:a2:58:b5:ea:fc:47:d1:8f:86:06
|
||||
97:32:41:f5:18:78:a1:7b:8e:bf:5b:44:29:7f:13:cf
|
||||
a7
|
||||
Exponent (bits 24):
|
||||
01:00:01
|
||||
Public Key Algorithm: EC/ECDSA
|
||||
Algorithm Security Level: Ultra (384 bits)
|
||||
Curve: SECP384R1
|
||||
X:
|
||||
60:0c:2d:b8:77:02:2b:43:aa:c2:b0:b4:ed:db:d6:a3
|
||||
b0:bd:ed:91:cc:65:86:b3:bc:fc:aa:c8:b8:37:27:bd
|
||||
fa:bf:65:e9:54:13:9c:ad:13:53:1a:eb:fd:67:58:38
|
||||
Y:
|
||||
00:b7:4d:99:e3:15:b4:c9:77:b5:76:fe:9b:a5:ca:9c
|
||||
15:47:e3:8d:aa:f2:98:a9:61:b3:3b:c5:24:4b:4e:e3
|
||||
c3:45:2a:4a:a0:9a:99:4d:32:5c:a0:b0:bf:ba:1a:4b
|
||||
bb
|
||||
|
||||
Public Key ID:
|
||||
sha1:3b4745c17086f91bc83b4f0db00f2bb6592ff1d5
|
||||
sha256:74e887d4e9729618bd7f1e6c1f517a9bba78204abf548ab6a9d051da77a02bad
|
||||
sha1:8758644193a4b4be87c5ac486af89bfeed9e77ad
|
||||
sha256:f35384043aea2eb96af43dd2df83a23697d5a7d37db50c91d0efba28f797885b
|
||||
Public Key PIN:
|
||||
pin-sha256:dOiH1Olylhi9fx5sH1F6m7p4IEq/VIq2qdBR2negK60=
|
||||
pin-sha256:81OEBDrqLrlq9D3S34OiNpfVp9N9tQyR0O+6KPeXiFs=
|
||||
|
||||
|
||||
-----BEGIN PUBLIC KEY-----
|
||||
MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA1HrIZpOBvC9PFTG2eHju
|
||||
vy5SPX4UZj7IOvo83tCUyR07qZofLkmAOz9CDZ1jnAT8KgXhsWeZ2CWKgicp5hds
|
||||
2PmLcYGs18eeygFEyMpVMEhGm3K19NebckrtjFD0vOOk6Qe7KzCFqlPQ8vdbuRyp
|
||||
oWOJOFyHUTGPuA5azBnEvm+gff0wlfOGNC6pKSePEMeM1uIkHTur+/PtdUD0FKpC
|
||||
qvaK0FAC/SQV6QYv1lYOVt3RJWoAwpWh/nLp5lw69+pn/XEA9+gApFwhPWquzvfv
|
||||
zJwlxqtSDLWRKD0qFU+fq560ONronsrgw2oEUqoElHRvnjT2sn5egn5vyVfl2ewi
|
||||
hsvdB+hX7Ppq7G/zT5ogZhDtdbB8gbupfxY2sXIwdLxyipBwp0faK8v41gr/64Fk
|
||||
/5yJ/Ry6SjE49DnBFtujpB5gsTyUwlKqR0hEfBdCeoesMg4lY2Sk59PHftjIMJ+/
|
||||
PQfVHXSPoli16vxH0Y+GBpcyQfUYeKF7jr9bRCl/E8+nAgMBAAE=
|
||||
MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEYAwtuHcCK0OqwrC07dvWo7C97ZHMZYaz
|
||||
vPyqyLg3J736v2XpVBOcrRNTGuv9Z1g4t02Z4xW0yXe1dv6bpcqcFUfjjarymKlh
|
||||
szvFJEtO48NFKkqgmplNMlygsL+6Gku7
|
||||
-----END PUBLIC KEY-----
|
||||
|
@ -1,182 +1,36 @@
|
||||
Public Key Info:
|
||||
Public Key Algorithm: RSA
|
||||
Key Security Level: High (3072 bits)
|
||||
Public Key Algorithm: EC/ECDSA
|
||||
Key Security Level: Ultra (384 bits)
|
||||
|
||||
modulus:
|
||||
00:d1:b4:9f:f9:7f:0b:52:17:51:64:e0:e8:06:d2:55
|
||||
ce:be:a8:3b:1f:d7:5c:8e:22:46:1b:03:60:e7:ec:bf
|
||||
ae:c2:7b:b7:c8:c8:7f:07:56:ae:a9:72:ea:a9:d7:fe
|
||||
98:0b:b7:72:27:5d:1c:65:4c:8f:d1:bb:c3:97:e4:6a
|
||||
da:e3:98:c2:f2:12:bc:94:d2:c6:9a:c9:ae:f5:c3:eb
|
||||
88:34:e7:59:ec:fb:5f:a0:1b:11:0d:0b:7f:46:3a:a2
|
||||
4b:9a:ae:08:60:15:df:3a:14:49:3e:30:0b:03:25:12
|
||||
29:d2:82:5c:35:90:eb:0c:3f:db:b8:2c:d6:29:58:74
|
||||
21:f3:6b:08:d0:65:7c:ed:6e:71:0c:65:36:82:1b:97
|
||||
fe:11:48:4c:af:67:28:da:55:09:67:08:47:ed:d3:c5
|
||||
f1:3c:95:6a:3e:49:36:45:35:f6:cd:38:f7:ef:8c:74
|
||||
5a:f3:3e:42:13:d5:38:53:11:0c:2c:b0:8d:b4:8b:3c
|
||||
49:8b:2a:0e:b2:ce:f7:d1:8a:f3:bc:f3:99:e9:99:00
|
||||
50:48:6b:1b:0b:cc:e8:73:a3:bc:f2:76:98:ab:bc:35
|
||||
22:21:81:53:8b:58:e7:97:3a:f5:05:37:e4:13:5f:1f
|
||||
c7:3f:01:59:f8:b6:92:d6:71:95:68:5e:21:6f:5b:de
|
||||
7f:8d:99:d8:57:6d:7e:72:d4:d1:89:9f:f0:5f:2d:9b
|
||||
66:a7:ac:c4:8b:09:c8:57:96:73:63:f5:d7:57:4c:fe
|
||||
81:78:dc:8f:fb:ae:67:ca:bf:31:7d:49:b2:93:5d:e7
|
||||
fd:60:46:38:9a:cf:5c:ea:7d:76:3e:d8:b2:c0:6b:89
|
||||
67:f0:f5:e2:69:07:03:8b:35:59:08:cf:0d:74:b3:b5
|
||||
5e:bd:cf:3e:2f:ba:16:88:3a:d1:b8:0c:bc:bc:d1:9c
|
||||
0c:b0:be:9a:76:5f:11:bc:8c:1a:7d:a6:8a:db:d8:6b
|
||||
d6:c4:fb:7a:9e:7b:e6:2a:e6:fd:c7:f2:8d:33:5f:76
|
||||
19:
|
||||
curve: SECP384R1
|
||||
private key:
|
||||
00:c9:a2:25:88:02:2c:62:f6:11:76:bd:b1:bf:ff:1c
|
||||
b8:19:5e:49:a3:df:72:d9:d0:2a:83:cc:b0:90:5e:13
|
||||
f2:29:59:b0:66:07:32:dd:a1:67:12:8d:91:84:9f:64
|
||||
ca:
|
||||
|
||||
public exponent:
|
||||
01:00:01:
|
||||
|
||||
private exponent:
|
||||
16:a7:94:c0:b7:60:d9:b5:7b:2d:92:be:7e:3e:2a:d6
|
||||
f2:f1:e9:b1:3e:ea:d8:d0:0b:12:d0:02:a0:0b:8b:89
|
||||
ad:a8:ff:e9:c8:ff:30:23:c5:2a:b9:27:70:c1:cc:d7
|
||||
50:2c:b9:40:57:66:c1:ea:cb:7e:b4:f2:24:6e:a0:bc
|
||||
94:e9:e3:e5:92:f0:9c:83:48:c1:60:18:6e:a4:83:c5
|
||||
6b:31:b3:1d:4e:ea:bd:b9:2e:d6:61:ef:95:fe:af:99
|
||||
cb:54:11:c3:8f:99:56:04:eb:04:b4:db:fb:b2:fd:8b
|
||||
57:1a:8e:2b:9b:44:49:46:7c:ce:20:c9:e2:1d:94:2e
|
||||
36:c5:d1:65:f2:10:d4:f5:a1:70:dd:5e:4e:1f:fd:03
|
||||
8d:8a:69:fe:68:fe:98:d7:a6:f4:62:88:a2:c0:c6:19
|
||||
91:99:f2:a8:57:f0:6c:f9:af:77:ec:37:9c:c1:67:b0
|
||||
8b:a6:a6:2c:ce:54:0f:65:40:13:73:df:5b:29:cf:91
|
||||
50:32:74:7f:35:08:48:f8:d9:0b:b6:7a:f0:16:99:2f
|
||||
a7:01:f9:14:84:10:65:8b:5e:0b:52:34:ca:09:e6:ba
|
||||
fc:05:91:e0:2e:55:6a:14:a1:77:84:0a:48:1c:c8:68
|
||||
27:93:66:f2:a0:54:e9:47:97:5d:4f:58:01:50:b7:84
|
||||
e6:89:af:49:76:87:58:d9:21:2d:3a:39:1e:61:5d:6a
|
||||
e4:5f:ef:b2:30:2e:28:b0:de:a2:8d:63:04:cf:61:00
|
||||
ad:db:15:d1:77:11:97:de:aa:36:b1:0c:76:7d:63:f5
|
||||
93:b0:81:bf:53:c4:c1:09:4c:1a:8e:27:99:57:db:a0
|
||||
60:68:fc:67:d7:26:b2:fd:1c:35:53:60:97:50:bb:25
|
||||
e5:68:93:e3:79:90:45:47:7e:c1:55:ad:aa:84:9d:54
|
||||
91:33:c1:61:90:33:3a:46:a8:ad:c3:91:75:a8:50:90
|
||||
5a:b1:a7:65:9c:88:67:05:83:13:96:2d:ef:44:72:81
|
||||
|
||||
|
||||
prime1:
|
||||
00:f7:da:97:ad:69:3a:7d:5c:52:b0:22:f6:c6:6e:c9
|
||||
0d:58:a9:bf:aa:3a:de:52:ee:bf:aa:f7:53:f7:8a:cc
|
||||
e8:e3:c8:12:1d:70:9c:99:81:54:6c:ab:c0:c9:5f:3d
|
||||
7e:d1:bc:f6:dc:c8:e2:ad:98:6e:f3:45:c7:a2:51:95
|
||||
51:75:1e:14:ec:ea:2e:0e:4b:5a:51:ad:8b:a4:45:b8
|
||||
47:26:40:06:af:24:b9:97:e4:d2:6e:75:2f:b9:cc:b7
|
||||
1a:e6:7c:84:5c:cf:ab:18:0d:49:b9:b0:b0:ee:eb:c9
|
||||
44:fe:24:f8:b8:74:c3:85:6e:a0:b8:89:e7:4e:a6:41
|
||||
11:d2:5f:5d:0d:9f:5b:2b:7b:64:22:60:fd:cb:24:6c
|
||||
48:71:0d:9c:d7:24:42:d2:e0:01:fc:f9:84:36:49:37
|
||||
97:c9:dd:74:66:9d:51:0c:d7:fa:8a:db:cd:e8:9f:4f
|
||||
f4:c6:9a:36:d3:33:54:4d:e4:e3:5e:46:07:fe:38:fb
|
||||
f5:
|
||||
|
||||
prime2:
|
||||
00:d8:99:0e:d3:4c:97:81:d8:5a:e2:05:55:16:61:b5
|
||||
71:ca:61:9b:5d:0b:a4:89:93:03:fa:d5:2d:1e:b0:a7
|
||||
f9:80:d0:2e:ff:66:7f:e9:67:0e:f2:05:46:6d:e6:fd
|
||||
01:8e:b1:7e:5f:10:6a:ad:75:54:90:0b:24:43:52:dc
|
||||
80:9b:48:5a:4c:82:20:af:ba:91:4f:d5:3c:ca:25:a7
|
||||
17:57:61:06:19:39:38:a9:2a:90:ec:f7:eb:83:61:68
|
||||
15:e8:70:b0:a0:6d:d0:1e:00:cc:ab:2e:71:50:c7:f1
|
||||
7c:ce:ac:7a:9c:71:03:ab:b5:8d:ef:ce:dc:87:7c:35
|
||||
3c:84:a6:41:a3:97:ba:85:31:73:cc:b3:45:5e:4d:88
|
||||
7c:63:f3:ea:62:39:20:67:d7:0c:bc:5c:70:ec:d9:ae
|
||||
77:44:e1:0e:26:43:2b:a0:03:da:f1:7b:37:d7:f7:cc
|
||||
99:8f:3a:b7:86:df:ed:6e:95:8d:80:30:f2:ee:7b:bf
|
||||
15:
|
||||
|
||||
coefficient:
|
||||
66:ab:fd:30:7a:54:a9:20:93:56:ac:85:ba:4e:27:60
|
||||
4c:8b:a4:03:c3:62:d6:9f:66:ed:9b:ed:3d:47:39:49
|
||||
d4:0c:f2:65:57:ca:96:ef:26:3a:38:64:f4:e1:36:5f
|
||||
4c:ba:23:8a:d5:68:5e:63:6f:0a:a9:72:d3:0e:72:fd
|
||||
7a:04:6f:91:9b:40:77:6b:4b:50:2a:e2:53:9f:98:ff
|
||||
fe:92:dd:4f:e2:2e:ab:e8:40:0f:2e:f3:c1:b7:41:75
|
||||
16:d4:31:42:d8:0b:31:2d:95:14:a6:19:5c:c4:d4:04
|
||||
76:9f:70:01:3d:4a:a0:b0:d3:b8:9b:23:df:09:55:3d
|
||||
5e:aa:d7:06:9e:d6:18:69:d4:54:6e:13:70:6e:87:1e
|
||||
56:93:c2:99:fb:96:0b:61:46:61:ce:9b:c5:83:2f:dd
|
||||
c7:cd:5b:02:58:13:7d:5d:10:50:0c:75:62:01:9e:3a
|
||||
03:49:36:3b:b2:a6:48:a8:64:1b:cb:79:69:26:9d:4c
|
||||
|
||||
|
||||
exp1:
|
||||
02:bb:03:c4:c3:4e:03:a7:8a:b9:aa:08:f1:f2:b2:80
|
||||
55:23:b9:9a:d4:7f:32:86:b2:d1:dd:5b:ad:74:78:01
|
||||
70:d0:f9:72:1d:95:7c:13:72:ac:a7:cf:bd:e8:30:b3
|
||||
3e:f8:47:f7:f2:b6:9c:96:fb:51:ee:c8:de:3e:eb:d8
|
||||
33:e4:1a:f2:e9:39:8c:aa:c3:d9:f6:81:7d:53:cf:4d
|
||||
e9:5b:f7:36:e2:be:b0:af:b2:a9:c8:dc:b7:bd:4b:9f
|
||||
1e:3e:ec:ee:60:d3:4f:b6:85:c3:67:f0:eb:10:e9:ec
|
||||
ba:a8:09:9d:6e:9b:e0:d2:71:2e:d7:46:17:15:b9:cd
|
||||
ca:75:86:7e:e9:ec:85:34:1c:cc:4c:29:3f:9d:ad:1b
|
||||
b7:33:21:31:35:93:0e:e3:ac:e1:ee:95:c8:4b:52:33
|
||||
77:e3:da:ae:6e:b9:3f:dc:f9:43:a2:5c:48:5d:c8:f1
|
||||
b7:66:67:88:38:1e:8b:a5:23:e4:1b:fd:66:8d:96:29
|
||||
|
||||
|
||||
exp2:
|
||||
2e:2a:c9:a7:2e:2f:29:05:05:b2:21:72:d6:77:73:26
|
||||
52:fd:e5:10:bb:17:92:1f:5c:fc:cd:0d:75:fa:2f:83
|
||||
95:fa:49:da:34:6d:d5:41:1b:45:68:ec:6f:26:8a:0d
|
||||
17:ee:2b:42:76:0c:56:f6:a8:54:9f:9b:56:22:46:4f
|
||||
bf:49:77:bd:d1:0a:c8:8a:1a:c9:0a:69:8f:a8:e0:e9
|
||||
af:bd:45:80:80:da:db:eb:ef:c2:22:c1:f7:59:fe:c6
|
||||
94:a9:d8:6c:09:9c:0f:99:1a:06:ee:ba:46:7e:a7:b1
|
||||
73:97:fd:f6:74:7c:54:d0:38:f5:c1:80:ed:fc:02:98
|
||||
e8:a9:4b:5a:64:4f:e4:6d:fb:01:c9:c0:62:6e:62:46
|
||||
29:43:e7:54:92:5a:9e:e7:8e:96:63:99:ca:52:47:c6
|
||||
b2:4e:ca:26:4b:b0:f3:c5:7e:98:74:2c:1e:03:7a:7f
|
||||
cc:b0:b6:47:b0:59:3a:75:f4:18:3b:d6:bc:10:72:55
|
||||
x:
|
||||
00:fb:88:39:71:73:b5:7d:c1:17:c5:a3:17:9c:a0:48
|
||||
af:97:14:92:2e:9b:ff:fb:1b:16:7b:d6:d1:54:54:3e
|
||||
49:be:6a:89:3a:44:ef:13:33:6b:ca:84:02:67:6d:65
|
||||
16:
|
||||
|
||||
y:
|
||||
00:a9:8e:fd:01:17:a6:b7:2c:53:04:e4:d0:99:01:ce
|
||||
f2:50:43:43:00:66:50:e9:7d:95:c9:0d:55:54:14:93
|
||||
7f:63:b8:b7:c1:a5:d9:e4:b9:57:8b:93:96:78:5c:cd
|
||||
b0:
|
||||
|
||||
|
||||
Public Key PIN:
|
||||
pin-sha256:IegLX95VrhZ9V4+nRaDDOazbhoIeFTqx59KQ8wFNQF0=
|
||||
pin-sha256:7nnoskGn5ykPxCscQsd3tPYd2VWvmjZ5Da6yN4hLiBY=
|
||||
Public Key ID:
|
||||
sha256:21e80b5fde55ae167d578fa745a0c339acdb86821e153ab1e7d290f3014d405d
|
||||
sha1:493baecacb125e63db1015a2882c1e4e32d7ce90
|
||||
sha256:ee79e8b241a7e7290fc42b1c42c777b4f61dd955af9a36790daeb237884b8816
|
||||
sha1:34ffccbf6c5e5904d8534af3da79f201fddc733d
|
||||
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
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
|
||||
-----END RSA PRIVATE KEY-----
|
||||
-----BEGIN EC PRIVATE KEY-----
|
||||
MIGlAgEBBDEAyaIliAIsYvYRdr2xv/8cuBleSaPfctnQKoPMsJBeE/IpWbBmBzLd
|
||||
oWcSjZGEn2TKoAcGBSuBBAAioWQDYgAE+4g5cXO1fcEXxaMXnKBIr5cUki6b//sb
|
||||
FnvW0VRUPkm+aok6RO8TM2vKhAJnbWUWqY79ARemtyxTBOTQmQHO8lBDQwBmUOl9
|
||||
lckNVVQUk39juLfBpdnkuVeLk5Z4XM2w
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
@ -1,50 +1,27 @@
|
||||
Public Key Information:
|
||||
Public Key Algorithm: RSA
|
||||
Algorithm Security Level: High (3072 bits)
|
||||
Modulus (bits 3072):
|
||||
00:d1:b4:9f:f9:7f:0b:52:17:51:64:e0:e8:06:d2:55
|
||||
ce:be:a8:3b:1f:d7:5c:8e:22:46:1b:03:60:e7:ec:bf
|
||||
ae:c2:7b:b7:c8:c8:7f:07:56:ae:a9:72:ea:a9:d7:fe
|
||||
98:0b:b7:72:27:5d:1c:65:4c:8f:d1:bb:c3:97:e4:6a
|
||||
da:e3:98:c2:f2:12:bc:94:d2:c6:9a:c9:ae:f5:c3:eb
|
||||
88:34:e7:59:ec:fb:5f:a0:1b:11:0d:0b:7f:46:3a:a2
|
||||
4b:9a:ae:08:60:15:df:3a:14:49:3e:30:0b:03:25:12
|
||||
29:d2:82:5c:35:90:eb:0c:3f:db:b8:2c:d6:29:58:74
|
||||
21:f3:6b:08:d0:65:7c:ed:6e:71:0c:65:36:82:1b:97
|
||||
fe:11:48:4c:af:67:28:da:55:09:67:08:47:ed:d3:c5
|
||||
f1:3c:95:6a:3e:49:36:45:35:f6:cd:38:f7:ef:8c:74
|
||||
5a:f3:3e:42:13:d5:38:53:11:0c:2c:b0:8d:b4:8b:3c
|
||||
49:8b:2a:0e:b2:ce:f7:d1:8a:f3:bc:f3:99:e9:99:00
|
||||
50:48:6b:1b:0b:cc:e8:73:a3:bc:f2:76:98:ab:bc:35
|
||||
22:21:81:53:8b:58:e7:97:3a:f5:05:37:e4:13:5f:1f
|
||||
c7:3f:01:59:f8:b6:92:d6:71:95:68:5e:21:6f:5b:de
|
||||
7f:8d:99:d8:57:6d:7e:72:d4:d1:89:9f:f0:5f:2d:9b
|
||||
66:a7:ac:c4:8b:09:c8:57:96:73:63:f5:d7:57:4c:fe
|
||||
81:78:dc:8f:fb:ae:67:ca:bf:31:7d:49:b2:93:5d:e7
|
||||
fd:60:46:38:9a:cf:5c:ea:7d:76:3e:d8:b2:c0:6b:89
|
||||
67:f0:f5:e2:69:07:03:8b:35:59:08:cf:0d:74:b3:b5
|
||||
5e:bd:cf:3e:2f:ba:16:88:3a:d1:b8:0c:bc:bc:d1:9c
|
||||
0c:b0:be:9a:76:5f:11:bc:8c:1a:7d:a6:8a:db:d8:6b
|
||||
d6:c4:fb:7a:9e:7b:e6:2a:e6:fd:c7:f2:8d:33:5f:76
|
||||
19
|
||||
Exponent (bits 24):
|
||||
01:00:01
|
||||
Public Key Algorithm: EC/ECDSA
|
||||
Algorithm Security Level: Ultra (384 bits)
|
||||
Curve: SECP384R1
|
||||
X:
|
||||
00:fb:88:39:71:73:b5:7d:c1:17:c5:a3:17:9c:a0:48
|
||||
af:97:14:92:2e:9b:ff:fb:1b:16:7b:d6:d1:54:54:3e
|
||||
49:be:6a:89:3a:44:ef:13:33:6b:ca:84:02:67:6d:65
|
||||
16
|
||||
Y:
|
||||
00:a9:8e:fd:01:17:a6:b7:2c:53:04:e4:d0:99:01:ce
|
||||
f2:50:43:43:00:66:50:e9:7d:95:c9:0d:55:54:14:93
|
||||
7f:63:b8:b7:c1:a5:d9:e4:b9:57:8b:93:96:78:5c:cd
|
||||
b0
|
||||
|
||||
Public Key ID:
|
||||
sha1:493baecacb125e63db1015a2882c1e4e32d7ce90
|
||||
sha256:21e80b5fde55ae167d578fa745a0c339acdb86821e153ab1e7d290f3014d405d
|
||||
sha1:34ffccbf6c5e5904d8534af3da79f201fddc733d
|
||||
sha256:ee79e8b241a7e7290fc42b1c42c777b4f61dd955af9a36790daeb237884b8816
|
||||
Public Key PIN:
|
||||
pin-sha256:IegLX95VrhZ9V4+nRaDDOazbhoIeFTqx59KQ8wFNQF0=
|
||||
pin-sha256:7nnoskGn5ykPxCscQsd3tPYd2VWvmjZ5Da6yN4hLiBY=
|
||||
|
||||
|
||||
-----BEGIN PUBLIC KEY-----
|
||||
MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA0bSf+X8LUhdRZODoBtJV
|
||||
zr6oOx/XXI4iRhsDYOfsv67Ce7fIyH8HVq6pcuqp1/6YC7dyJ10cZUyP0bvDl+Rq
|
||||
2uOYwvISvJTSxprJrvXD64g051ns+1+gGxENC39GOqJLmq4IYBXfOhRJPjALAyUS
|
||||
KdKCXDWQ6ww/27gs1ilYdCHzawjQZXztbnEMZTaCG5f+EUhMr2co2lUJZwhH7dPF
|
||||
8TyVaj5JNkU19s049++MdFrzPkIT1ThTEQwssI20izxJiyoOss730YrzvPOZ6ZkA
|
||||
UEhrGwvM6HOjvPJ2mKu8NSIhgVOLWOeXOvUFN+QTXx/HPwFZ+LaS1nGVaF4hb1ve
|
||||
f42Z2FdtfnLU0Ymf8F8tm2anrMSLCchXlnNj9ddXTP6BeNyP+65nyr8xfUmyk13n
|
||||
/WBGOJrPXOp9dj7YssBriWfw9eJpBwOLNVkIzw10s7Vevc8+L7oWiDrRuAy8vNGc
|
||||
DLC+mnZfEbyMGn2mitvYa9bE+3qee+Yq5v3H8o0zX3YZAgMBAAE=
|
||||
MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE+4g5cXO1fcEXxaMXnKBIr5cUki6b//sb
|
||||
FnvW0VRUPkm+aok6RO8TM2vKhAJnbWUWqY79ARemtyxTBOTQmQHO8lBDQwBmUOl9
|
||||
lckNVVQUk39juLfBpdnkuVeLk5Z4XM2w
|
||||
-----END PUBLIC KEY-----
|
||||
|
@ -1,27 +1,16 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
UZM4P74V6PwR
|
||||
-----END CERTIFICATE-----
|
||||
|
@ -1,236 +1,66 @@
|
||||
Public Key Info:
|
||||
Public Key Algorithm: RSA
|
||||
Key Security Level: High (3072 bits)
|
||||
Public Key Algorithm: EC/ECDSA
|
||||
Key Security Level: Ultra (384 bits)
|
||||
|
||||
modulus:
|
||||
00:d1:b4:9f:f9:7f:0b:52:17:51:64:e0:e8:06:d2:55
|
||||
ce:be:a8:3b:1f:d7:5c:8e:22:46:1b:03:60:e7:ec:bf
|
||||
ae:c2:7b:b7:c8:c8:7f:07:56:ae:a9:72:ea:a9:d7:fe
|
||||
98:0b:b7:72:27:5d:1c:65:4c:8f:d1:bb:c3:97:e4:6a
|
||||
da:e3:98:c2:f2:12:bc:94:d2:c6:9a:c9:ae:f5:c3:eb
|
||||
88:34:e7:59:ec:fb:5f:a0:1b:11:0d:0b:7f:46:3a:a2
|
||||
4b:9a:ae:08:60:15:df:3a:14:49:3e:30:0b:03:25:12
|
||||
29:d2:82:5c:35:90:eb:0c:3f:db:b8:2c:d6:29:58:74
|
||||
21:f3:6b:08:d0:65:7c:ed:6e:71:0c:65:36:82:1b:97
|
||||
fe:11:48:4c:af:67:28:da:55:09:67:08:47:ed:d3:c5
|
||||
f1:3c:95:6a:3e:49:36:45:35:f6:cd:38:f7:ef:8c:74
|
||||
5a:f3:3e:42:13:d5:38:53:11:0c:2c:b0:8d:b4:8b:3c
|
||||
49:8b:2a:0e:b2:ce:f7:d1:8a:f3:bc:f3:99:e9:99:00
|
||||
50:48:6b:1b:0b:cc:e8:73:a3:bc:f2:76:98:ab:bc:35
|
||||
22:21:81:53:8b:58:e7:97:3a:f5:05:37:e4:13:5f:1f
|
||||
c7:3f:01:59:f8:b6:92:d6:71:95:68:5e:21:6f:5b:de
|
||||
7f:8d:99:d8:57:6d:7e:72:d4:d1:89:9f:f0:5f:2d:9b
|
||||
66:a7:ac:c4:8b:09:c8:57:96:73:63:f5:d7:57:4c:fe
|
||||
81:78:dc:8f:fb:ae:67:ca:bf:31:7d:49:b2:93:5d:e7
|
||||
fd:60:46:38:9a:cf:5c:ea:7d:76:3e:d8:b2:c0:6b:89
|
||||
67:f0:f5:e2:69:07:03:8b:35:59:08:cf:0d:74:b3:b5
|
||||
5e:bd:cf:3e:2f:ba:16:88:3a:d1:b8:0c:bc:bc:d1:9c
|
||||
0c:b0:be:9a:76:5f:11:bc:8c:1a:7d:a6:8a:db:d8:6b
|
||||
d6:c4:fb:7a:9e:7b:e6:2a:e6:fd:c7:f2:8d:33:5f:76
|
||||
19:
|
||||
curve: SECP384R1
|
||||
private key:
|
||||
00:c9:a2:25:88:02:2c:62:f6:11:76:bd:b1:bf:ff:1c
|
||||
b8:19:5e:49:a3:df:72:d9:d0:2a:83:cc:b0:90:5e:13
|
||||
f2:29:59:b0:66:07:32:dd:a1:67:12:8d:91:84:9f:64
|
||||
ca:
|
||||
|
||||
public exponent:
|
||||
01:00:01:
|
||||
|
||||
private exponent:
|
||||
16:a7:94:c0:b7:60:d9:b5:7b:2d:92:be:7e:3e:2a:d6
|
||||
f2:f1:e9:b1:3e:ea:d8:d0:0b:12:d0:02:a0:0b:8b:89
|
||||
ad:a8:ff:e9:c8:ff:30:23:c5:2a:b9:27:70:c1:cc:d7
|
||||
50:2c:b9:40:57:66:c1:ea:cb:7e:b4:f2:24:6e:a0:bc
|
||||
94:e9:e3:e5:92:f0:9c:83:48:c1:60:18:6e:a4:83:c5
|
||||
6b:31:b3:1d:4e:ea:bd:b9:2e:d6:61:ef:95:fe:af:99
|
||||
cb:54:11:c3:8f:99:56:04:eb:04:b4:db:fb:b2:fd:8b
|
||||
57:1a:8e:2b:9b:44:49:46:7c:ce:20:c9:e2:1d:94:2e
|
||||
36:c5:d1:65:f2:10:d4:f5:a1:70:dd:5e:4e:1f:fd:03
|
||||
8d:8a:69:fe:68:fe:98:d7:a6:f4:62:88:a2:c0:c6:19
|
||||
91:99:f2:a8:57:f0:6c:f9:af:77:ec:37:9c:c1:67:b0
|
||||
8b:a6:a6:2c:ce:54:0f:65:40:13:73:df:5b:29:cf:91
|
||||
50:32:74:7f:35:08:48:f8:d9:0b:b6:7a:f0:16:99:2f
|
||||
a7:01:f9:14:84:10:65:8b:5e:0b:52:34:ca:09:e6:ba
|
||||
fc:05:91:e0:2e:55:6a:14:a1:77:84:0a:48:1c:c8:68
|
||||
27:93:66:f2:a0:54:e9:47:97:5d:4f:58:01:50:b7:84
|
||||
e6:89:af:49:76:87:58:d9:21:2d:3a:39:1e:61:5d:6a
|
||||
e4:5f:ef:b2:30:2e:28:b0:de:a2:8d:63:04:cf:61:00
|
||||
ad:db:15:d1:77:11:97:de:aa:36:b1:0c:76:7d:63:f5
|
||||
93:b0:81:bf:53:c4:c1:09:4c:1a:8e:27:99:57:db:a0
|
||||
60:68:fc:67:d7:26:b2:fd:1c:35:53:60:97:50:bb:25
|
||||
e5:68:93:e3:79:90:45:47:7e:c1:55:ad:aa:84:9d:54
|
||||
91:33:c1:61:90:33:3a:46:a8:ad:c3:91:75:a8:50:90
|
||||
5a:b1:a7:65:9c:88:67:05:83:13:96:2d:ef:44:72:81
|
||||
|
||||
|
||||
prime1:
|
||||
00:f7:da:97:ad:69:3a:7d:5c:52:b0:22:f6:c6:6e:c9
|
||||
0d:58:a9:bf:aa:3a:de:52:ee:bf:aa:f7:53:f7:8a:cc
|
||||
e8:e3:c8:12:1d:70:9c:99:81:54:6c:ab:c0:c9:5f:3d
|
||||
7e:d1:bc:f6:dc:c8:e2:ad:98:6e:f3:45:c7:a2:51:95
|
||||
51:75:1e:14:ec:ea:2e:0e:4b:5a:51:ad:8b:a4:45:b8
|
||||
47:26:40:06:af:24:b9:97:e4:d2:6e:75:2f:b9:cc:b7
|
||||
1a:e6:7c:84:5c:cf:ab:18:0d:49:b9:b0:b0:ee:eb:c9
|
||||
44:fe:24:f8:b8:74:c3:85:6e:a0:b8:89:e7:4e:a6:41
|
||||
11:d2:5f:5d:0d:9f:5b:2b:7b:64:22:60:fd:cb:24:6c
|
||||
48:71:0d:9c:d7:24:42:d2:e0:01:fc:f9:84:36:49:37
|
||||
97:c9:dd:74:66:9d:51:0c:d7:fa:8a:db:cd:e8:9f:4f
|
||||
f4:c6:9a:36:d3:33:54:4d:e4:e3:5e:46:07:fe:38:fb
|
||||
f5:
|
||||
|
||||
prime2:
|
||||
00:d8:99:0e:d3:4c:97:81:d8:5a:e2:05:55:16:61:b5
|
||||
71:ca:61:9b:5d:0b:a4:89:93:03:fa:d5:2d:1e:b0:a7
|
||||
f9:80:d0:2e:ff:66:7f:e9:67:0e:f2:05:46:6d:e6:fd
|
||||
01:8e:b1:7e:5f:10:6a:ad:75:54:90:0b:24:43:52:dc
|
||||
80:9b:48:5a:4c:82:20:af:ba:91:4f:d5:3c:ca:25:a7
|
||||
17:57:61:06:19:39:38:a9:2a:90:ec:f7:eb:83:61:68
|
||||
15:e8:70:b0:a0:6d:d0:1e:00:cc:ab:2e:71:50:c7:f1
|
||||
7c:ce:ac:7a:9c:71:03:ab:b5:8d:ef:ce:dc:87:7c:35
|
||||
3c:84:a6:41:a3:97:ba:85:31:73:cc:b3:45:5e:4d:88
|
||||
7c:63:f3:ea:62:39:20:67:d7:0c:bc:5c:70:ec:d9:ae
|
||||
77:44:e1:0e:26:43:2b:a0:03:da:f1:7b:37:d7:f7:cc
|
||||
99:8f:3a:b7:86:df:ed:6e:95:8d:80:30:f2:ee:7b:bf
|
||||
15:
|
||||
|
||||
coefficient:
|
||||
66:ab:fd:30:7a:54:a9:20:93:56:ac:85:ba:4e:27:60
|
||||
4c:8b:a4:03:c3:62:d6:9f:66:ed:9b:ed:3d:47:39:49
|
||||
d4:0c:f2:65:57:ca:96:ef:26:3a:38:64:f4:e1:36:5f
|
||||
4c:ba:23:8a:d5:68:5e:63:6f:0a:a9:72:d3:0e:72:fd
|
||||
7a:04:6f:91:9b:40:77:6b:4b:50:2a:e2:53:9f:98:ff
|
||||
fe:92:dd:4f:e2:2e:ab:e8:40:0f:2e:f3:c1:b7:41:75
|
||||
16:d4:31:42:d8:0b:31:2d:95:14:a6:19:5c:c4:d4:04
|
||||
76:9f:70:01:3d:4a:a0:b0:d3:b8:9b:23:df:09:55:3d
|
||||
5e:aa:d7:06:9e:d6:18:69:d4:54:6e:13:70:6e:87:1e
|
||||
56:93:c2:99:fb:96:0b:61:46:61:ce:9b:c5:83:2f:dd
|
||||
c7:cd:5b:02:58:13:7d:5d:10:50:0c:75:62:01:9e:3a
|
||||
03:49:36:3b:b2:a6:48:a8:64:1b:cb:79:69:26:9d:4c
|
||||
|
||||
|
||||
exp1:
|
||||
02:bb:03:c4:c3:4e:03:a7:8a:b9:aa:08:f1:f2:b2:80
|
||||
55:23:b9:9a:d4:7f:32:86:b2:d1:dd:5b:ad:74:78:01
|
||||
70:d0:f9:72:1d:95:7c:13:72:ac:a7:cf:bd:e8:30:b3
|
||||
3e:f8:47:f7:f2:b6:9c:96:fb:51:ee:c8:de:3e:eb:d8
|
||||
33:e4:1a:f2:e9:39:8c:aa:c3:d9:f6:81:7d:53:cf:4d
|
||||
e9:5b:f7:36:e2:be:b0:af:b2:a9:c8:dc:b7:bd:4b:9f
|
||||
1e:3e:ec:ee:60:d3:4f:b6:85:c3:67:f0:eb:10:e9:ec
|
||||
ba:a8:09:9d:6e:9b:e0:d2:71:2e:d7:46:17:15:b9:cd
|
||||
ca:75:86:7e:e9:ec:85:34:1c:cc:4c:29:3f:9d:ad:1b
|
||||
b7:33:21:31:35:93:0e:e3:ac:e1:ee:95:c8:4b:52:33
|
||||
77:e3:da:ae:6e:b9:3f:dc:f9:43:a2:5c:48:5d:c8:f1
|
||||
b7:66:67:88:38:1e:8b:a5:23:e4:1b:fd:66:8d:96:29
|
||||
|
||||
|
||||
exp2:
|
||||
2e:2a:c9:a7:2e:2f:29:05:05:b2:21:72:d6:77:73:26
|
||||
52:fd:e5:10:bb:17:92:1f:5c:fc:cd:0d:75:fa:2f:83
|
||||
95:fa:49:da:34:6d:d5:41:1b:45:68:ec:6f:26:8a:0d
|
||||
17:ee:2b:42:76:0c:56:f6:a8:54:9f:9b:56:22:46:4f
|
||||
bf:49:77:bd:d1:0a:c8:8a:1a:c9:0a:69:8f:a8:e0:e9
|
||||
af:bd:45:80:80:da:db:eb:ef:c2:22:c1:f7:59:fe:c6
|
||||
94:a9:d8:6c:09:9c:0f:99:1a:06:ee:ba:46:7e:a7:b1
|
||||
73:97:fd:f6:74:7c:54:d0:38:f5:c1:80:ed:fc:02:98
|
||||
e8:a9:4b:5a:64:4f:e4:6d:fb:01:c9:c0:62:6e:62:46
|
||||
29:43:e7:54:92:5a:9e:e7:8e:96:63:99:ca:52:47:c6
|
||||
b2:4e:ca:26:4b:b0:f3:c5:7e:98:74:2c:1e:03:7a:7f
|
||||
cc:b0:b6:47:b0:59:3a:75:f4:18:3b:d6:bc:10:72:55
|
||||
x:
|
||||
00:fb:88:39:71:73:b5:7d:c1:17:c5:a3:17:9c:a0:48
|
||||
af:97:14:92:2e:9b:ff:fb:1b:16:7b:d6:d1:54:54:3e
|
||||
49:be:6a:89:3a:44:ef:13:33:6b:ca:84:02:67:6d:65
|
||||
16:
|
||||
|
||||
y:
|
||||
00:a9:8e:fd:01:17:a6:b7:2c:53:04:e4:d0:99:01:ce
|
||||
f2:50:43:43:00:66:50:e9:7d:95:c9:0d:55:54:14:93
|
||||
7f:63:b8:b7:c1:a5:d9:e4:b9:57:8b:93:96:78:5c:cd
|
||||
b0:
|
||||
|
||||
|
||||
Public Key PIN:
|
||||
pin-sha256:IegLX95VrhZ9V4+nRaDDOazbhoIeFTqx59KQ8wFNQF0=
|
||||
pin-sha256:7nnoskGn5ykPxCscQsd3tPYd2VWvmjZ5Da6yN4hLiBY=
|
||||
Public Key ID:
|
||||
sha256:21e80b5fde55ae167d578fa745a0c339acdb86821e153ab1e7d290f3014d405d
|
||||
sha1:493baecacb125e63db1015a2882c1e4e32d7ce90
|
||||
sha256:ee79e8b241a7e7290fc42b1c42c777b4f61dd955af9a36790daeb237884b8816
|
||||
sha1:34ffccbf6c5e5904d8534af3da79f201fddc733d
|
||||
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
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
|
||||
-----END RSA PRIVATE KEY-----
|
||||
-----BEGIN EC PRIVATE KEY-----
|
||||
MIGlAgEBBDEAyaIliAIsYvYRdr2xv/8cuBleSaPfctnQKoPMsJBeE/IpWbBmBzLd
|
||||
oWcSjZGEn2TKoAcGBSuBBAAioWQDYgAE+4g5cXO1fcEXxaMXnKBIr5cUki6b//sb
|
||||
FnvW0VRUPkm+aok6RO8TM2vKhAJnbWUWqY79ARemtyxTBOTQmQHO8lBDQwBmUOl9
|
||||
lckNVVQUk39juLfBpdnkuVeLk5Z4XM2w
|
||||
-----END EC PRIVATE KEY-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
UZM4P74V6PwR
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEjDCCAvSgAwIBAgIUR8LOiig3v6yY4ZTxxwwg3LIUqMswDQYJKoZIhvcNAQEN
|
||||
BQAwSzEnMCUGA1UEAxMebGlnaHR0cGQyIHRlc3Qgc3VpdGUgQXV0aG9yaXR5MSAw
|
||||
HgYDVQQLExdsaWdodHRwZDIgdGVzdCBzdWl0ZSBDQTAeFw0yNDEyMjUyMjUyMzFa
|
||||
Fw0zNDEyMjMyMjUyMzFaMFAxLDAqBgNVBAMTI2xpZ2h0dHBkMiB0ZXN0IHN1aXRl
|
||||
IEludGVybWVkaWF0ZSAxMSAwHgYDVQQLExdsaWdodHRwZDIgdGVzdCBzdWl0ZSBD
|
||||
QTCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBANR6yGaTgbwvTxUxtnh4
|
||||
7r8uUj1+FGY+yDr6PN7QlMkdO6maHy5JgDs/Qg2dY5wE/CoF4bFnmdglioInKeYX
|
||||
bNj5i3GBrNfHnsoBRMjKVTBIRptytfTXm3JK7YxQ9LzjpOkHuyswhapT0PL3W7kc
|
||||
qaFjiThch1Exj7gOWswZxL5voH39MJXzhjQuqSknjxDHjNbiJB07q/vz7XVA9BSq
|
||||
Qqr2itBQAv0kFekGL9ZWDlbd0SVqAMKVof5y6eZcOvfqZ/1xAPfoAKRcIT1qrs73
|
||||
78ycJcarUgy1kSg9KhVPn6uetDja6J7K4MNqBFKqBJR0b5409rJ+XoJ+b8lX5dns
|
||||
IobL3QfoV+z6auxv80+aIGYQ7XWwfIG7qX8WNrFyMHS8coqQcKdH2ivL+NYK/+uB
|
||||
ZP+cif0cukoxOPQ5wRbbo6QeYLE8lMJSqkdIRHwXQnqHrDIOJWNkpOfTx37YyDCf
|
||||
vz0H1R10j6JYter8R9GPhgaXMkH1GHihe46/W0QpfxPPpwIDAQABo2MwYTAPBgNV
|
||||
HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUO0dFwXCG+RvI
|
||||
O08NsA8rtlkv8dUwHwYDVR0jBBgwFoAUeCorT1z8K+qFb3++SNJRuXcNOsIwDQYJ
|
||||
KoZIhvcNAQENBQADggGBAG+LHFmCflCOWmWN4VOgi5pVoRNyV3r1hHZL0drmonsw
|
||||
5h8VOdj6fOj23nzh2b7SpX9hLTcukPRMSt0HIQEcC9YTMB4LooNl9FJsoMBTmW1Z
|
||||
CiiFapxwYEMOhrDP5KNo3TA6eB5GsUc1CfnJ3/2loivQo/2jMHoP2LcCUjSG0tMS
|
||||
+WAHSzdlGGVDEh7WQMs7be3lAQev1YBrvmSY+HyP3EZmk1i0D0ZZ9MPcW3C/9Qvr
|
||||
x5r7lwBq7rIkMjRMKg7XK36eCMs/Xb3crOCR0Tg6LzUm2MAj4m8RVDoSN31FCAFe
|
||||
ZUvxaj8goU4GquCq+RmxXfL+DQT1UapwHmvsnhTPC9w5y1+4YK8Aq28FIquGkPbE
|
||||
zIG+mpzgJmpt8GHHiGQjpCo1XHE81m8g/DumvuuAezISIDYIBBvW2Kz8O2xVf8l1
|
||||
Cs3XBbjD3zx3G8KHZdlSgnNIwDme6r1VUZP/u0YHMnIhl6Bv/M4KiRO5rAYIjoex
|
||||
Ze0HkL+w6EPzNiJ6DUL9VA==
|
||||
MIICPDCCAcOgAwIBAgIURcjH78CmuAoNZVwLZka0+BmM17wwCgYIKoZIzj0EAwQw
|
||||
SzEnMCUGA1UEAxMebGlnaHR0cGQyIHRlc3Qgc3VpdGUgQXV0aG9yaXR5MSAwHgYD
|
||||
VQQLExdsaWdodHRwZDIgdGVzdCBzdWl0ZSBDQTAeFw0yNTAxMDExMzMyMjZaFw0z
|
||||
NDEyMzAxMzMyMjZaMFAxLDAqBgNVBAMTI2xpZ2h0dHBkMiB0ZXN0IHN1aXRlIElu
|
||||
dGVybWVkaWF0ZSAxMSAwHgYDVQQLExdsaWdodHRwZDIgdGVzdCBzdWl0ZSBDQTB2
|
||||
MBAGByqGSM49AgEGBSuBBAAiA2IABGAMLbh3AitDqsKwtO3b1qOwve2RzGWGs7z8
|
||||
qsi4Nye9+r9l6VQTnK0TUxrr/WdYOLdNmeMVtMl3tXb+m6XKnBVH442q8pipYbM7
|
||||
xSRLTuPDRSpKoJqZTTJcoLC/uhpLu6NjMGEwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
|
||||
HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFIdYZEGTpLS+h8WsSGr4m/7tnnetMB8GA1Ud
|
||||
IwQYMBaAFMEztottTkpfEMdgJyKaXwKTAIJrMAoGCCqGSM49BAMEA2cAMGQCMDUJ
|
||||
y41eYkjLnj1x9T1xvy4LPLjhQE4ZdpJ2BwNNnn/+lHgfZtxf8thQtoXbx9uHMgIw
|
||||
H8cWKviP+rrBLUW4JdnSvv+8voRJYpNswi+EJoee53hShIWsETixdwGM1hRGQtdB
|
||||
-----END CERTIFICATE-----
|
||||
|
@ -1,6 +1,8 @@
|
||||
|
||||
dn = "OU=lighttpd2 test suite CA,CN=test1.ssl"
|
||||
dns_name = "test1.ssl"
|
||||
dns_name = "test1.ssl.test"
|
||||
dns_name = "*.openssl.test"
|
||||
dns_name = "*.gnutls.test"
|
||||
|
||||
expiration_days = 3650
|
||||
|
||||
|
@ -1,27 +1,16 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
daygZ2t/xp12vw==
|
||||
-----END CERTIFICATE-----
|
||||
|
@ -1,236 +1,66 @@
|
||||
Public Key Info:
|
||||
Public Key Algorithm: RSA
|
||||
Key Security Level: High (3072 bits)
|
||||
Public Key Algorithm: EC/ECDSA
|
||||
Key Security Level: Ultra (384 bits)
|
||||
|
||||
modulus:
|
||||
00:d1:b4:9f:f9:7f:0b:52:17:51:64:e0:e8:06:d2:55
|
||||
ce:be:a8:3b:1f:d7:5c:8e:22:46:1b:03:60:e7:ec:bf
|
||||
ae:c2:7b:b7:c8:c8:7f:07:56:ae:a9:72:ea:a9:d7:fe
|
||||
98:0b:b7:72:27:5d:1c:65:4c:8f:d1:bb:c3:97:e4:6a
|
||||
da:e3:98:c2:f2:12:bc:94:d2:c6:9a:c9:ae:f5:c3:eb
|
||||
88:34:e7:59:ec:fb:5f:a0:1b:11:0d:0b:7f:46:3a:a2
|
||||
4b:9a:ae:08:60:15:df:3a:14:49:3e:30:0b:03:25:12
|
||||
29:d2:82:5c:35:90:eb:0c:3f:db:b8:2c:d6:29:58:74
|
||||
21:f3:6b:08:d0:65:7c:ed:6e:71:0c:65:36:82:1b:97
|
||||
fe:11:48:4c:af:67:28:da:55:09:67:08:47:ed:d3:c5
|
||||
f1:3c:95:6a:3e:49:36:45:35:f6:cd:38:f7:ef:8c:74
|
||||
5a:f3:3e:42:13:d5:38:53:11:0c:2c:b0:8d:b4:8b:3c
|
||||
49:8b:2a:0e:b2:ce:f7:d1:8a:f3:bc:f3:99:e9:99:00
|
||||
50:48:6b:1b:0b:cc:e8:73:a3:bc:f2:76:98:ab:bc:35
|
||||
22:21:81:53:8b:58:e7:97:3a:f5:05:37:e4:13:5f:1f
|
||||
c7:3f:01:59:f8:b6:92:d6:71:95:68:5e:21:6f:5b:de
|
||||
7f:8d:99:d8:57:6d:7e:72:d4:d1:89:9f:f0:5f:2d:9b
|
||||
66:a7:ac:c4:8b:09:c8:57:96:73:63:f5:d7:57:4c:fe
|
||||
81:78:dc:8f:fb:ae:67:ca:bf:31:7d:49:b2:93:5d:e7
|
||||
fd:60:46:38:9a:cf:5c:ea:7d:76:3e:d8:b2:c0:6b:89
|
||||
67:f0:f5:e2:69:07:03:8b:35:59:08:cf:0d:74:b3:b5
|
||||
5e:bd:cf:3e:2f:ba:16:88:3a:d1:b8:0c:bc:bc:d1:9c
|
||||
0c:b0:be:9a:76:5f:11:bc:8c:1a:7d:a6:8a:db:d8:6b
|
||||
d6:c4:fb:7a:9e:7b:e6:2a:e6:fd:c7:f2:8d:33:5f:76
|
||||
19:
|
||||
curve: SECP384R1
|
||||
private key:
|
||||
00:c9:a2:25:88:02:2c:62:f6:11:76:bd:b1:bf:ff:1c
|
||||
b8:19:5e:49:a3:df:72:d9:d0:2a:83:cc:b0:90:5e:13
|
||||
f2:29:59:b0:66:07:32:dd:a1:67:12:8d:91:84:9f:64
|
||||
ca:
|
||||
|
||||
public exponent:
|
||||
01:00:01:
|
||||
|
||||
private exponent:
|
||||
16:a7:94:c0:b7:60:d9:b5:7b:2d:92:be:7e:3e:2a:d6
|
||||
f2:f1:e9:b1:3e:ea:d8:d0:0b:12:d0:02:a0:0b:8b:89
|
||||
ad:a8:ff:e9:c8:ff:30:23:c5:2a:b9:27:70:c1:cc:d7
|
||||
50:2c:b9:40:57:66:c1:ea:cb:7e:b4:f2:24:6e:a0:bc
|
||||
94:e9:e3:e5:92:f0:9c:83:48:c1:60:18:6e:a4:83:c5
|
||||
6b:31:b3:1d:4e:ea:bd:b9:2e:d6:61:ef:95:fe:af:99
|
||||
cb:54:11:c3:8f:99:56:04:eb:04:b4:db:fb:b2:fd:8b
|
||||
57:1a:8e:2b:9b:44:49:46:7c:ce:20:c9:e2:1d:94:2e
|
||||
36:c5:d1:65:f2:10:d4:f5:a1:70:dd:5e:4e:1f:fd:03
|
||||
8d:8a:69:fe:68:fe:98:d7:a6:f4:62:88:a2:c0:c6:19
|
||||
91:99:f2:a8:57:f0:6c:f9:af:77:ec:37:9c:c1:67:b0
|
||||
8b:a6:a6:2c:ce:54:0f:65:40:13:73:df:5b:29:cf:91
|
||||
50:32:74:7f:35:08:48:f8:d9:0b:b6:7a:f0:16:99:2f
|
||||
a7:01:f9:14:84:10:65:8b:5e:0b:52:34:ca:09:e6:ba
|
||||
fc:05:91:e0:2e:55:6a:14:a1:77:84:0a:48:1c:c8:68
|
||||
27:93:66:f2:a0:54:e9:47:97:5d:4f:58:01:50:b7:84
|
||||
e6:89:af:49:76:87:58:d9:21:2d:3a:39:1e:61:5d:6a
|
||||
e4:5f:ef:b2:30:2e:28:b0:de:a2:8d:63:04:cf:61:00
|
||||
ad:db:15:d1:77:11:97:de:aa:36:b1:0c:76:7d:63:f5
|
||||
93:b0:81:bf:53:c4:c1:09:4c:1a:8e:27:99:57:db:a0
|
||||
60:68:fc:67:d7:26:b2:fd:1c:35:53:60:97:50:bb:25
|
||||
e5:68:93:e3:79:90:45:47:7e:c1:55:ad:aa:84:9d:54
|
||||
91:33:c1:61:90:33:3a:46:a8:ad:c3:91:75:a8:50:90
|
||||
5a:b1:a7:65:9c:88:67:05:83:13:96:2d:ef:44:72:81
|
||||
|
||||
|
||||
prime1:
|
||||
00:f7:da:97:ad:69:3a:7d:5c:52:b0:22:f6:c6:6e:c9
|
||||
0d:58:a9:bf:aa:3a:de:52:ee:bf:aa:f7:53:f7:8a:cc
|
||||
e8:e3:c8:12:1d:70:9c:99:81:54:6c:ab:c0:c9:5f:3d
|
||||
7e:d1:bc:f6:dc:c8:e2:ad:98:6e:f3:45:c7:a2:51:95
|
||||
51:75:1e:14:ec:ea:2e:0e:4b:5a:51:ad:8b:a4:45:b8
|
||||
47:26:40:06:af:24:b9:97:e4:d2:6e:75:2f:b9:cc:b7
|
||||
1a:e6:7c:84:5c:cf:ab:18:0d:49:b9:b0:b0:ee:eb:c9
|
||||
44:fe:24:f8:b8:74:c3:85:6e:a0:b8:89:e7:4e:a6:41
|
||||
11:d2:5f:5d:0d:9f:5b:2b:7b:64:22:60:fd:cb:24:6c
|
||||
48:71:0d:9c:d7:24:42:d2:e0:01:fc:f9:84:36:49:37
|
||||
97:c9:dd:74:66:9d:51:0c:d7:fa:8a:db:cd:e8:9f:4f
|
||||
f4:c6:9a:36:d3:33:54:4d:e4:e3:5e:46:07:fe:38:fb
|
||||
f5:
|
||||
|
||||
prime2:
|
||||
00:d8:99:0e:d3:4c:97:81:d8:5a:e2:05:55:16:61:b5
|
||||
71:ca:61:9b:5d:0b:a4:89:93:03:fa:d5:2d:1e:b0:a7
|
||||
f9:80:d0:2e:ff:66:7f:e9:67:0e:f2:05:46:6d:e6:fd
|
||||
01:8e:b1:7e:5f:10:6a:ad:75:54:90:0b:24:43:52:dc
|
||||
80:9b:48:5a:4c:82:20:af:ba:91:4f:d5:3c:ca:25:a7
|
||||
17:57:61:06:19:39:38:a9:2a:90:ec:f7:eb:83:61:68
|
||||
15:e8:70:b0:a0:6d:d0:1e:00:cc:ab:2e:71:50:c7:f1
|
||||
7c:ce:ac:7a:9c:71:03:ab:b5:8d:ef:ce:dc:87:7c:35
|
||||
3c:84:a6:41:a3:97:ba:85:31:73:cc:b3:45:5e:4d:88
|
||||
7c:63:f3:ea:62:39:20:67:d7:0c:bc:5c:70:ec:d9:ae
|
||||
77:44:e1:0e:26:43:2b:a0:03:da:f1:7b:37:d7:f7:cc
|
||||
99:8f:3a:b7:86:df:ed:6e:95:8d:80:30:f2:ee:7b:bf
|
||||
15:
|
||||
|
||||
coefficient:
|
||||
66:ab:fd:30:7a:54:a9:20:93:56:ac:85:ba:4e:27:60
|
||||
4c:8b:a4:03:c3:62:d6:9f:66:ed:9b:ed:3d:47:39:49
|
||||
d4:0c:f2:65:57:ca:96:ef:26:3a:38:64:f4:e1:36:5f
|
||||
4c:ba:23:8a:d5:68:5e:63:6f:0a:a9:72:d3:0e:72:fd
|
||||
7a:04:6f:91:9b:40:77:6b:4b:50:2a:e2:53:9f:98:ff
|
||||
fe:92:dd:4f:e2:2e:ab:e8:40:0f:2e:f3:c1:b7:41:75
|
||||
16:d4:31:42:d8:0b:31:2d:95:14:a6:19:5c:c4:d4:04
|
||||
76:9f:70:01:3d:4a:a0:b0:d3:b8:9b:23:df:09:55:3d
|
||||
5e:aa:d7:06:9e:d6:18:69:d4:54:6e:13:70:6e:87:1e
|
||||
56:93:c2:99:fb:96:0b:61:46:61:ce:9b:c5:83:2f:dd
|
||||
c7:cd:5b:02:58:13:7d:5d:10:50:0c:75:62:01:9e:3a
|
||||
03:49:36:3b:b2:a6:48:a8:64:1b:cb:79:69:26:9d:4c
|
||||
|
||||
|
||||
exp1:
|
||||
02:bb:03:c4:c3:4e:03:a7:8a:b9:aa:08:f1:f2:b2:80
|
||||
55:23:b9:9a:d4:7f:32:86:b2:d1:dd:5b:ad:74:78:01
|
||||
70:d0:f9:72:1d:95:7c:13:72:ac:a7:cf:bd:e8:30:b3
|
||||
3e:f8:47:f7:f2:b6:9c:96:fb:51:ee:c8:de:3e:eb:d8
|
||||
33:e4:1a:f2:e9:39:8c:aa:c3:d9:f6:81:7d:53:cf:4d
|
||||
e9:5b:f7:36:e2:be:b0:af:b2:a9:c8:dc:b7:bd:4b:9f
|
||||
1e:3e:ec:ee:60:d3:4f:b6:85:c3:67:f0:eb:10:e9:ec
|
||||
ba:a8:09:9d:6e:9b:e0:d2:71:2e:d7:46:17:15:b9:cd
|
||||
ca:75:86:7e:e9:ec:85:34:1c:cc:4c:29:3f:9d:ad:1b
|
||||
b7:33:21:31:35:93:0e:e3:ac:e1:ee:95:c8:4b:52:33
|
||||
77:e3:da:ae:6e:b9:3f:dc:f9:43:a2:5c:48:5d:c8:f1
|
||||
b7:66:67:88:38:1e:8b:a5:23:e4:1b:fd:66:8d:96:29
|
||||
|
||||
|
||||
exp2:
|
||||
2e:2a:c9:a7:2e:2f:29:05:05:b2:21:72:d6:77:73:26
|
||||
52:fd:e5:10:bb:17:92:1f:5c:fc:cd:0d:75:fa:2f:83
|
||||
95:fa:49:da:34:6d:d5:41:1b:45:68:ec:6f:26:8a:0d
|
||||
17:ee:2b:42:76:0c:56:f6:a8:54:9f:9b:56:22:46:4f
|
||||
bf:49:77:bd:d1:0a:c8:8a:1a:c9:0a:69:8f:a8:e0:e9
|
||||
af:bd:45:80:80:da:db:eb:ef:c2:22:c1:f7:59:fe:c6
|
||||
94:a9:d8:6c:09:9c:0f:99:1a:06:ee:ba:46:7e:a7:b1
|
||||
73:97:fd:f6:74:7c:54:d0:38:f5:c1:80:ed:fc:02:98
|
||||
e8:a9:4b:5a:64:4f:e4:6d:fb:01:c9:c0:62:6e:62:46
|
||||
29:43:e7:54:92:5a:9e:e7:8e:96:63:99:ca:52:47:c6
|
||||
b2:4e:ca:26:4b:b0:f3:c5:7e:98:74:2c:1e:03:7a:7f
|
||||
cc:b0:b6:47:b0:59:3a:75:f4:18:3b:d6:bc:10:72:55
|
||||
x:
|
||||
00:fb:88:39:71:73:b5:7d:c1:17:c5:a3:17:9c:a0:48
|
||||
af:97:14:92:2e:9b:ff:fb:1b:16:7b:d6:d1:54:54:3e
|
||||
49:be:6a:89:3a:44:ef:13:33:6b:ca:84:02:67:6d:65
|
||||
16:
|
||||
|
||||
y:
|
||||
00:a9:8e:fd:01:17:a6:b7:2c:53:04:e4:d0:99:01:ce
|
||||
f2:50:43:43:00:66:50:e9:7d:95:c9:0d:55:54:14:93
|
||||
7f:63:b8:b7:c1:a5:d9:e4:b9:57:8b:93:96:78:5c:cd
|
||||
b0:
|
||||
|
||||
|
||||
Public Key PIN:
|
||||
pin-sha256:IegLX95VrhZ9V4+nRaDDOazbhoIeFTqx59KQ8wFNQF0=
|
||||
pin-sha256:7nnoskGn5ykPxCscQsd3tPYd2VWvmjZ5Da6yN4hLiBY=
|
||||
Public Key ID:
|
||||
sha256:21e80b5fde55ae167d578fa745a0c339acdb86821e153ab1e7d290f3014d405d
|
||||
sha1:493baecacb125e63db1015a2882c1e4e32d7ce90
|
||||
sha256:ee79e8b241a7e7290fc42b1c42c777b4f61dd955af9a36790daeb237884b8816
|
||||
sha1:34ffccbf6c5e5904d8534af3da79f201fddc733d
|
||||
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
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
|
||||
-----END RSA PRIVATE KEY-----
|
||||
-----BEGIN EC PRIVATE KEY-----
|
||||
MIGlAgEBBDEAyaIliAIsYvYRdr2xv/8cuBleSaPfctnQKoPMsJBeE/IpWbBmBzLd
|
||||
oWcSjZGEn2TKoAcGBSuBBAAioWQDYgAE+4g5cXO1fcEXxaMXnKBIr5cUki6b//sb
|
||||
FnvW0VRUPkm+aok6RO8TM2vKhAJnbWUWqY79ARemtyxTBOTQmQHO8lBDQwBmUOl9
|
||||
lckNVVQUk39juLfBpdnkuVeLk5Z4XM2w
|
||||
-----END EC PRIVATE KEY-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
daygZ2t/xp12vw==
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEjDCCAvSgAwIBAgIUR8LOiig3v6yY4ZTxxwwg3LIUqMswDQYJKoZIhvcNAQEN
|
||||
BQAwSzEnMCUGA1UEAxMebGlnaHR0cGQyIHRlc3Qgc3VpdGUgQXV0aG9yaXR5MSAw
|
||||
HgYDVQQLExdsaWdodHRwZDIgdGVzdCBzdWl0ZSBDQTAeFw0yNDEyMjUyMjUyMzFa
|
||||
Fw0zNDEyMjMyMjUyMzFaMFAxLDAqBgNVBAMTI2xpZ2h0dHBkMiB0ZXN0IHN1aXRl
|
||||
IEludGVybWVkaWF0ZSAxMSAwHgYDVQQLExdsaWdodHRwZDIgdGVzdCBzdWl0ZSBD
|
||||
QTCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBANR6yGaTgbwvTxUxtnh4
|
||||
7r8uUj1+FGY+yDr6PN7QlMkdO6maHy5JgDs/Qg2dY5wE/CoF4bFnmdglioInKeYX
|
||||
bNj5i3GBrNfHnsoBRMjKVTBIRptytfTXm3JK7YxQ9LzjpOkHuyswhapT0PL3W7kc
|
||||
qaFjiThch1Exj7gOWswZxL5voH39MJXzhjQuqSknjxDHjNbiJB07q/vz7XVA9BSq
|
||||
Qqr2itBQAv0kFekGL9ZWDlbd0SVqAMKVof5y6eZcOvfqZ/1xAPfoAKRcIT1qrs73
|
||||
78ycJcarUgy1kSg9KhVPn6uetDja6J7K4MNqBFKqBJR0b5409rJ+XoJ+b8lX5dns
|
||||
IobL3QfoV+z6auxv80+aIGYQ7XWwfIG7qX8WNrFyMHS8coqQcKdH2ivL+NYK/+uB
|
||||
ZP+cif0cukoxOPQ5wRbbo6QeYLE8lMJSqkdIRHwXQnqHrDIOJWNkpOfTx37YyDCf
|
||||
vz0H1R10j6JYter8R9GPhgaXMkH1GHihe46/W0QpfxPPpwIDAQABo2MwYTAPBgNV
|
||||
HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUO0dFwXCG+RvI
|
||||
O08NsA8rtlkv8dUwHwYDVR0jBBgwFoAUeCorT1z8K+qFb3++SNJRuXcNOsIwDQYJ
|
||||
KoZIhvcNAQENBQADggGBAG+LHFmCflCOWmWN4VOgi5pVoRNyV3r1hHZL0drmonsw
|
||||
5h8VOdj6fOj23nzh2b7SpX9hLTcukPRMSt0HIQEcC9YTMB4LooNl9FJsoMBTmW1Z
|
||||
CiiFapxwYEMOhrDP5KNo3TA6eB5GsUc1CfnJ3/2loivQo/2jMHoP2LcCUjSG0tMS
|
||||
+WAHSzdlGGVDEh7WQMs7be3lAQev1YBrvmSY+HyP3EZmk1i0D0ZZ9MPcW3C/9Qvr
|
||||
x5r7lwBq7rIkMjRMKg7XK36eCMs/Xb3crOCR0Tg6LzUm2MAj4m8RVDoSN31FCAFe
|
||||
ZUvxaj8goU4GquCq+RmxXfL+DQT1UapwHmvsnhTPC9w5y1+4YK8Aq28FIquGkPbE
|
||||
zIG+mpzgJmpt8GHHiGQjpCo1XHE81m8g/DumvuuAezISIDYIBBvW2Kz8O2xVf8l1
|
||||
Cs3XBbjD3zx3G8KHZdlSgnNIwDme6r1VUZP/u0YHMnIhl6Bv/M4KiRO5rAYIjoex
|
||||
Ze0HkL+w6EPzNiJ6DUL9VA==
|
||||
MIICPDCCAcOgAwIBAgIURcjH78CmuAoNZVwLZka0+BmM17wwCgYIKoZIzj0EAwQw
|
||||
SzEnMCUGA1UEAxMebGlnaHR0cGQyIHRlc3Qgc3VpdGUgQXV0aG9yaXR5MSAwHgYD
|
||||
VQQLExdsaWdodHRwZDIgdGVzdCBzdWl0ZSBDQTAeFw0yNTAxMDExMzMyMjZaFw0z
|
||||
NDEyMzAxMzMyMjZaMFAxLDAqBgNVBAMTI2xpZ2h0dHBkMiB0ZXN0IHN1aXRlIElu
|
||||
dGVybWVkaWF0ZSAxMSAwHgYDVQQLExdsaWdodHRwZDIgdGVzdCBzdWl0ZSBDQTB2
|
||||
MBAGByqGSM49AgEGBSuBBAAiA2IABGAMLbh3AitDqsKwtO3b1qOwve2RzGWGs7z8
|
||||
qsi4Nye9+r9l6VQTnK0TUxrr/WdYOLdNmeMVtMl3tXb+m6XKnBVH442q8pipYbM7
|
||||
xSRLTuPDRSpKoJqZTTJcoLC/uhpLu6NjMGEwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
|
||||
HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFIdYZEGTpLS+h8WsSGr4m/7tnnetMB8GA1Ud
|
||||
IwQYMBaAFMEztottTkpfEMdgJyKaXwKTAIJrMAoGCCqGSM49BAMEA2cAMGQCMDUJ
|
||||
y41eYkjLnj1x9T1xvy4LPLjhQE4ZdpJ2BwNNnn/+lHgfZtxf8thQtoXbx9uHMgIw
|
||||
H8cWKviP+rrBLUW4JdnSvv+8voRJYpNswi+EJoee53hShIWsETixdwGM1hRGQtdB
|
||||
-----END CERTIFICATE-----
|
||||
|
@ -1,6 +1,8 @@
|
||||
|
||||
dn = "OU=lighttpd2 test suite CA,CN=test2.ssl"
|
||||
dns_name = "test2.ssl"
|
||||
dns_name = "test2.ssl.test"
|
||||
dns_name = "*.openssl.test"
|
||||
dns_name = "*.gnutls.test"
|
||||
|
||||
expiration_days = 3650
|
||||
|
||||
|
@ -205,7 +205,7 @@ class TestBase(metaclass=_TestBaseMeta):
|
||||
# but if there is no custom config we should use the parent vhost.
|
||||
self.vhost = parent.vhost
|
||||
if not self.vhost:
|
||||
self.vhost = TestBase._vhostname(self.name)
|
||||
self.vhost = TestBase._vhostname(self.name) + '.test'
|
||||
if not self.no_docroot:
|
||||
if self.inherit_docroot:
|
||||
assert self._parent, "can't inherit vhostdir without parent"
|
||||
|
@ -5,7 +5,7 @@ from pylt.requests import CurlRequest, RawRequest, TEST_TXT
|
||||
|
||||
|
||||
LUA_SHOW_ENV_INFO = """
|
||||
function show_env_info(vr)
|
||||
local function show_env_info(vr)
|
||||
if vr:handle_direct() then
|
||||
vr.resp.status = 200
|
||||
vr.resp.headers["Content-Type"] = "text/plain"
|
||||
|
@ -13,19 +13,19 @@ class TestDirlist(CurlRequest):
|
||||
class TestRedirectDir(CurlRequest):
|
||||
URL = "/foo"
|
||||
EXPECT_RESPONSE_CODE = 301
|
||||
EXPECT_RESPONSE_HEADERS = [("Location", "http://dirlist/foo/")]
|
||||
EXPECT_RESPONSE_HEADERS = [("Location", "http://dirlist.test/foo/")]
|
||||
|
||||
|
||||
class TestRedirectDirWithQuery(CurlRequest):
|
||||
URL = "/foo?bar=baz"
|
||||
EXPECT_RESPONSE_CODE = 301
|
||||
EXPECT_RESPONSE_HEADERS = [("Location", "http://dirlist/foo/?bar=baz")]
|
||||
EXPECT_RESPONSE_HEADERS = [("Location", "http://dirlist.test/foo/?bar=baz")]
|
||||
|
||||
|
||||
class TestRedirectDirWithQueryAndSpecialChars(CurlRequest):
|
||||
URL = "/f%3f%20o?bar=baz"
|
||||
EXPECT_RESPONSE_CODE = 301
|
||||
EXPECT_RESPONSE_HEADERS = [("Location", "http://dirlist/f%3f%20o/?bar=baz")]
|
||||
EXPECT_RESPONSE_HEADERS = [("Location", "http://dirlist.test/f%3f%20o/?bar=baz")]
|
||||
|
||||
|
||||
class Test(ModuleTest):
|
||||
@ -35,7 +35,7 @@ dirlist;
|
||||
"""
|
||||
|
||||
def prepare_test(self) -> None:
|
||||
self.prepare_dir("www/vhosts/dirlist/foo")
|
||||
self.prepare_file("www/vhosts/dirlist/foo/test.txt", "abc")
|
||||
self.prepare_dir("www/vhosts/dirlist/f? o")
|
||||
self.prepare_file("www/vhosts/dirlist/f? o/test.txt", "abc")
|
||||
self.prepare_dir("www/vhosts/dirlist.test/foo")
|
||||
self.prepare_file("www/vhosts/dirlist.test/foo/test.txt", "abc")
|
||||
self.prepare_dir("www/vhosts/dirlist.test/f? o")
|
||||
self.prepare_file("www/vhosts/dirlist.test/f? o/test.txt", "abc")
|
||||
|
@ -10,7 +10,7 @@ class TestSimpleRequest(CurlRequest):
|
||||
EXPECT_RESPONSE_BODY = TEST_TXT
|
||||
EXPECT_RESPONSE_CODE = 200
|
||||
EXPECT_RESPONSE_HEADERS = [("Content-Type", "text/plain; charset=utf-8")]
|
||||
vhost = "test1.ssl"
|
||||
vhost = "test1.ssl.test"
|
||||
|
||||
|
||||
class TestSNI(CurlRequest):
|
||||
@ -20,4 +20,4 @@ class TestSNI(CurlRequest):
|
||||
EXPECT_RESPONSE_BODY = TEST_TXT
|
||||
EXPECT_RESPONSE_CODE = 200
|
||||
EXPECT_RESPONSE_HEADERS = [("Content-Type", "text/plain; charset=utf-8")]
|
||||
vhost = "test2.ssl"
|
||||
vhost = "test2.ssl.test"
|
||||
|
80
tests/pylt/tests/t-lua.py
Normal file
80
tests/pylt/tests/t-lua.py
Normal file
@ -0,0 +1,80 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from pylt.base import ModuleTest, TestBase
|
||||
from pylt.requests import CurlRequest
|
||||
|
||||
|
||||
LUA_STATE_ENV_INFO = """
|
||||
-- globals should be reset after loading
|
||||
info = "global info"
|
||||
|
||||
local function extract_info(vr)
|
||||
-- simple globals should be "per handler" (and request)
|
||||
info = (info or "") .. "handler global"
|
||||
-- special `REQ` allows request-global state across handlers
|
||||
REQ.info = (REQ.info or "") .. "request global:" .. vr.env["INFO"]
|
||||
end
|
||||
|
||||
local function show_info(vr)
|
||||
if vr:handle_direct() then
|
||||
vr.resp.status = 200
|
||||
vr.resp.headers["Content-Type"] = "text/plain"
|
||||
vr.out:add((info or "") .. (REQ.info or ""))
|
||||
end
|
||||
end
|
||||
|
||||
actions = action.list({extract_info, show_info})
|
||||
"""
|
||||
|
||||
|
||||
class TestLuaStateInfo1(CurlRequest):
|
||||
URL = "/?a_simple_query"
|
||||
EXPECT_RESPONSE_BODY = "request global:a_simple_query"
|
||||
EXPECT_RESPONSE_CODE = 200
|
||||
|
||||
config = """
|
||||
env.set "INFO" => "%{req.query}";
|
||||
lua_state_env_info;
|
||||
"""
|
||||
|
||||
class TestLuaStateInfo2(CurlRequest):
|
||||
URL = "/?b_simple_query"
|
||||
EXPECT_RESPONSE_BODY = "request global:b_simple_query"
|
||||
EXPECT_RESPONSE_CODE = 200
|
||||
|
||||
config = """
|
||||
env.set "INFO" => "%{req.query}";
|
||||
lua_state_env_info;
|
||||
"""
|
||||
|
||||
class TestLuaWorkerStateInfo1(CurlRequest):
|
||||
URL = "/?a_simple_query"
|
||||
EXPECT_RESPONSE_BODY = "request global:a_simple_query"
|
||||
EXPECT_RESPONSE_CODE = 200
|
||||
|
||||
config = """
|
||||
env.set "INFO" => "%{req.query}";
|
||||
worker_lua_state_env_info;
|
||||
"""
|
||||
|
||||
class TestLuaWorkerStateInfo2(CurlRequest):
|
||||
URL = "/?b_simple_query"
|
||||
EXPECT_RESPONSE_BODY = "request global:b_simple_query"
|
||||
EXPECT_RESPONSE_CODE = 200
|
||||
|
||||
config = """
|
||||
env.set "INFO" => "%{req.query}";
|
||||
worker_lua_state_env_info;
|
||||
"""
|
||||
|
||||
class Test(ModuleTest):
|
||||
def prepare_test(self) -> None:
|
||||
show_env_info_lua = self.prepare_file("lua/lua_state_env_info.lua", LUA_STATE_ENV_INFO)
|
||||
self.plain_config = f"""
|
||||
lua_state_env_info = {{
|
||||
include_lua "{show_env_info_lua}";
|
||||
}};
|
||||
worker_lua_state_env_info = {{
|
||||
lua.handler "{show_env_info_lua}";
|
||||
}};
|
||||
"""
|
@ -6,15 +6,20 @@ from pylt.requests import CurlRequest
|
||||
|
||||
LUA_TEST_OPTIONS = """
|
||||
|
||||
setup["server.tag"]("lighttpd 2.0 with lua")
|
||||
local function settag(tag)
|
||||
setup["server.tag"](tag)
|
||||
end
|
||||
|
||||
function changetag(tag)
|
||||
local function changetag(tag)
|
||||
return action["server.tag"](tag)
|
||||
end
|
||||
|
||||
actions = {
|
||||
["lua.changetag"] = changetag
|
||||
}
|
||||
setups = {
|
||||
["lua.settag"] = settag
|
||||
}
|
||||
|
||||
"""
|
||||
|
||||
@ -33,7 +38,10 @@ class Test(ModuleTest):
|
||||
def prepare_test(self) -> None:
|
||||
test_options_lua = self.prepare_file("lua/test_options.lua", LUA_TEST_OPTIONS)
|
||||
self.plain_config = f"""
|
||||
setup {{ lua.plugin "{test_options_lua}"; }}
|
||||
setup {{
|
||||
lua.plugin "{test_options_lua}";
|
||||
lua.settag "lighttpd 2.0 with lua";
|
||||
}}
|
||||
"""
|
||||
self.config = """
|
||||
if req.query == "change" {
|
||||
|
@ -10,4 +10,4 @@ class TestSimpleRequest(CurlRequest):
|
||||
EXPECT_RESPONSE_BODY = TEST_TXT
|
||||
EXPECT_RESPONSE_CODE = 200
|
||||
EXPECT_RESPONSE_HEADERS = [("Content-Type", "text/plain; charset=utf-8")]
|
||||
vhost = "test1.ssl"
|
||||
vhost = "test1.ssl.test"
|
||||
|
Loading…
x
Reference in New Issue
Block a user