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
2018-09-28 14:55:47 +08:00

72 lines
1.9 KiB
C++

#include "key_keeper.h"
#include "tfe_future.h"
#include "ssl_utils.h"
#include "tfe_rpc.h"
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);
struct key_keeper_ctx{
struct key_keeper* keeper;
struct future* f;
};
int main()
{
void* logger = NULL;
future_promise_library_init();
//struct event_base* evbase = event_base_new();
struct key_keeper * keeper = key_keeper_init("./conf/tfe.conf", "key_keeper", logger);
struct key_keeper_ctx* ctx = ALLOC(struct key_keeper_ctx, 1);
ctx->keeper = keeper;
struct future* f = future_create("key_keeper", ask_key_keeper_on_succ, ask_key_keeper_on_fail, ctx);
ctx->f = f;
X509* origin_cert = ssl_x509_load("./conf/origin_cert.pem");
printf("-------------------------------\n");
int i = 0;
printf("call key_keeper_async_ask, i = %d\n", i);
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);
/*
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);
event_base_dispatch(evbase1);
*/
}
void ask_key_keeper_on_succ(void* result, void* user)
{
//printf("call ask_key_keeper_on_succ\n");
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");
}
key_keeper_free_keyring(kyr);
return;
}
void ask_key_keeper_on_fail(enum e_future_error error, const char * what, void * user)
{
printf("call ask_key_keeper_on_fail\n");
printf("what is %s\n", what);
}