summaryrefslogtreecommitdiff
path: root/platform/test/test_key_keeper.cpp
blob: 2fa3e1c1b4b84d2a5d07d0d6c7e14de0d176cb34 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#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(NULL);
	//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 = (struct key_keeper_ctx*)malloc(sizeof(struct key_keeper_ctx));
	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, 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);
}