2018-09-04 15:47:41 +08:00
|
|
|
#include "key_keeper.h"
|
|
|
|
|
#include "tfe_future.h"
|
|
|
|
|
#include "ssl_utils.h"
|
2018-09-07 17:42:57 +08:00
|
|
|
#include "tfe_rpc.h"
|
|
|
|
|
|
2018-09-04 15:47:41 +08:00
|
|
|
|
|
|
|
|
void ask_key_keeper_on_succ(void* result, void* user);
|
|
|
|
|
|
|
|
|
|
void ask_key_keeper_on_fail(enum e_future_error error, const char * what, void * user);
|
|
|
|
|
|
2018-09-28 14:55:36 +08:00
|
|
|
struct key_keeper_ctx{
|
|
|
|
|
struct key_keeper* keeper;
|
|
|
|
|
struct future* f;
|
|
|
|
|
};
|
|
|
|
|
|
2018-09-07 17:42:57 +08:00
|
|
|
int main()
|
2018-09-04 15:47:41 +08:00
|
|
|
{
|
|
|
|
|
void* logger = NULL;
|
2018-11-20 20:53:11 +08:00
|
|
|
future_promise_library_init(NULL);
|
2018-09-28 14:55:36 +08:00
|
|
|
//struct event_base* evbase = event_base_new();
|
2018-09-04 15:47:41 +08:00
|
|
|
struct key_keeper * keeper = key_keeper_init("./conf/tfe.conf", "key_keeper", logger);
|
2018-10-31 19:44:13 +08:00
|
|
|
struct key_keeper_ctx* ctx = (struct key_keeper_ctx*)malloc(sizeof(struct key_keeper_ctx));
|
2018-09-28 14:55:36 +08:00
|
|
|
ctx->keeper = keeper;
|
|
|
|
|
struct future* f = future_create("key_keeper", ask_key_keeper_on_succ, ask_key_keeper_on_fail, ctx);
|
|
|
|
|
ctx->f = f;
|
2018-09-04 15:47:41 +08:00
|
|
|
X509* origin_cert = ssl_x509_load("./conf/origin_cert.pem");
|
2018-09-07 17:42:57 +08:00
|
|
|
printf("-------------------------------\n");
|
2018-09-04 15:47:41 +08:00
|
|
|
int i = 0;
|
2018-09-07 17:42:57 +08:00
|
|
|
printf("call key_keeper_async_ask, i = %d\n", i);
|
2018-09-28 14:55:36 +08:00
|
|
|
key_keeper_async_ask(f, keeper, "www.baidu.com", 1, origin_cert, 1, NULL);
|
|
|
|
|
X509_free(origin_cert);
|
|
|
|
|
key_keeper_destroy(keeper);
|
|
|
|
|
future_destroy(f);
|
|
|
|
|
free(ctx);
|
|
|
|
|
//event_base_dispatch(evbase);
|
2018-09-19 17:06:42 +08:00
|
|
|
/*
|
2018-09-07 17:42:57 +08:00
|
|
|
struct event_base* evbase1 = event_base_new();
|
|
|
|
|
struct future* f1 = future_create("key_keeper", ask_key_keeper_on_succ, ask_key_keeper_on_fail, user);
|
2018-09-19 17:06:42 +08:00
|
|
|
key_keeper_async_ask(f1, keeper, "www.baidu.com", 0, origin_cert, 0, evbase1);
|
2018-09-07 17:42:57 +08:00
|
|
|
event_base_dispatch(evbase1);
|
2018-09-19 17:06:42 +08:00
|
|
|
*/
|
2018-09-04 15:47:41 +08:00
|
|
|
}
|
|
|
|
|
|
2018-09-07 17:42:57 +08:00
|
|
|
void ask_key_keeper_on_succ(void* result, void* user)
|
2018-09-04 15:47:41 +08:00
|
|
|
{
|
2018-09-19 17:06:42 +08:00
|
|
|
//printf("call ask_key_keeper_on_succ\n");
|
2018-09-07 17:42:57 +08:00
|
|
|
struct keyring* kyr = key_keeper_release_keyring(result);
|
|
|
|
|
X509* cert = kyr->cert;
|
|
|
|
|
EVP_PKEY* key = kyr->key;
|
|
|
|
|
STACK_OF(X509) * chain = kyr->chain;
|
|
|
|
|
if(cert)
|
|
|
|
|
{
|
|
|
|
|
printf("cert is not null\n");
|
|
|
|
|
}
|
|
|
|
|
if(key)
|
|
|
|
|
{
|
|
|
|
|
printf("key is not null\n");
|
|
|
|
|
}
|
|
|
|
|
if(chain)
|
|
|
|
|
{
|
|
|
|
|
printf("chain is not null\n");
|
|
|
|
|
}
|
2018-09-28 14:55:36 +08:00
|
|
|
key_keeper_free_keyring(kyr);
|
2018-09-07 17:42:57 +08:00
|
|
|
return;
|
2018-09-04 15:47:41 +08:00
|
|
|
}
|
|
|
|
|
|
2018-09-07 17:42:57 +08:00
|
|
|
void ask_key_keeper_on_fail(enum e_future_error error, const char * what, void * user)
|
2018-09-04 15:47:41 +08:00
|
|
|
{
|
|
|
|
|
printf("call ask_key_keeper_on_fail\n");
|
2018-09-19 17:06:42 +08:00
|
|
|
printf("what is %s\n", what);
|
2018-09-04 15:47:41 +08:00
|
|
|
}
|