This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
tango-tfe/platform/test/test_key_keeper.cpp

72 lines
1.9 KiB
C++
Raw Normal View History

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);
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-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);
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-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
{
//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");
printf("what is %s\n", what);
2018-09-04 15:47:41 +08:00
}