summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/ct/ct_policy.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/lib/libcrypto/ct/ct_policy.c84
1 files changed, 47 insertions, 37 deletions
diff --git a/src/lib/libcrypto/ct/ct_policy.c b/src/lib/libcrypto/ct/ct_policy.c
index df66e8a494..43ea6fa093 100644
--- a/src/lib/libcrypto/ct/ct_policy.c
+++ b/src/lib/libcrypto/ct/ct_policy.c
@@ -25,74 +25,84 @@
25 */ 25 */
26static const time_t SCT_CLOCK_DRIFT_TOLERANCE = 300; 26static const time_t SCT_CLOCK_DRIFT_TOLERANCE = 300;
27 27
28CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new(void) 28CT_POLICY_EVAL_CTX *
29CT_POLICY_EVAL_CTX_new(void)
29{ 30{
30 CT_POLICY_EVAL_CTX *ctx = OPENSSL_zalloc(sizeof(CT_POLICY_EVAL_CTX)); 31 CT_POLICY_EVAL_CTX *ctx = OPENSSL_zalloc(sizeof(CT_POLICY_EVAL_CTX));
31 32
32 if (ctx == NULL) { 33 if (ctx == NULL) {
33 CTerr(CT_F_CT_POLICY_EVAL_CTX_NEW, ERR_R_MALLOC_FAILURE); 34 CTerr(CT_F_CT_POLICY_EVAL_CTX_NEW, ERR_R_MALLOC_FAILURE);
34 return NULL; 35 return NULL;
35 } 36 }
36 37
37 /* time(NULL) shouldn't ever fail, so don't bother checking for -1. */ 38 /* time(NULL) shouldn't ever fail, so don't bother checking for -1. */
38 ctx->epoch_time_in_ms = (uint64_t)(time(NULL) + SCT_CLOCK_DRIFT_TOLERANCE) * 39 ctx->epoch_time_in_ms = (uint64_t)(time(NULL) + SCT_CLOCK_DRIFT_TOLERANCE) *
39 1000; 40 1000;
40 41
41 return ctx; 42 return ctx;
42} 43}
43 44
44void CT_POLICY_EVAL_CTX_free(CT_POLICY_EVAL_CTX *ctx) 45void
46CT_POLICY_EVAL_CTX_free(CT_POLICY_EVAL_CTX *ctx)
45{ 47{
46 if (ctx == NULL) 48 if (ctx == NULL)
47 return; 49 return;
48 X509_free(ctx->cert); 50 X509_free(ctx->cert);
49 X509_free(ctx->issuer); 51 X509_free(ctx->issuer);
50 OPENSSL_free(ctx); 52 OPENSSL_free(ctx);
51} 53}
52 54
53int CT_POLICY_EVAL_CTX_set1_cert(CT_POLICY_EVAL_CTX *ctx, X509 *cert) 55int
56CT_POLICY_EVAL_CTX_set1_cert(CT_POLICY_EVAL_CTX *ctx, X509 *cert)
54{ 57{
55 if (!X509_up_ref(cert)) 58 if (!X509_up_ref(cert))
56 return 0; 59 return 0;
57 ctx->cert = cert; 60 ctx->cert = cert;
58 return 1; 61 return 1;
59} 62}
60 63
61int CT_POLICY_EVAL_CTX_set1_issuer(CT_POLICY_EVAL_CTX *ctx, X509 *issuer) 64int
65CT_POLICY_EVAL_CTX_set1_issuer(CT_POLICY_EVAL_CTX *ctx, X509 *issuer)
62{ 66{
63 if (!X509_up_ref(issuer)) 67 if (!X509_up_ref(issuer))
64 return 0; 68 return 0;
65 ctx->issuer = issuer; 69 ctx->issuer = issuer;
66 return 1; 70 return 1;
67} 71}
68 72
69void CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE(CT_POLICY_EVAL_CTX *ctx, 73void
70 CTLOG_STORE *log_store) 74CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE(CT_POLICY_EVAL_CTX *ctx,
75 CTLOG_STORE *log_store)
71{ 76{
72 ctx->log_store = log_store; 77 ctx->log_store = log_store;
73} 78}
74 79
75void CT_POLICY_EVAL_CTX_set_time(CT_POLICY_EVAL_CTX *ctx, uint64_t time_in_ms) 80void
81CT_POLICY_EVAL_CTX_set_time(CT_POLICY_EVAL_CTX *ctx, uint64_t time_in_ms)
76{ 82{
77 ctx->epoch_time_in_ms = time_in_ms; 83 ctx->epoch_time_in_ms = time_in_ms;
78} 84}
79 85
80X509* CT_POLICY_EVAL_CTX_get0_cert(const CT_POLICY_EVAL_CTX *ctx) 86X509*
87CT_POLICY_EVAL_CTX_get0_cert(const CT_POLICY_EVAL_CTX *ctx)
81{ 88{
82 return ctx->cert; 89 return ctx->cert;
83} 90}
84 91
85X509* CT_POLICY_EVAL_CTX_get0_issuer(const CT_POLICY_EVAL_CTX *ctx) 92X509*
93CT_POLICY_EVAL_CTX_get0_issuer(const CT_POLICY_EVAL_CTX *ctx)
86{ 94{
87 return ctx->issuer; 95 return ctx->issuer;
88} 96}
89 97
90const CTLOG_STORE *CT_POLICY_EVAL_CTX_get0_log_store(const CT_POLICY_EVAL_CTX *ctx) 98const CTLOG_STORE *
99CT_POLICY_EVAL_CTX_get0_log_store(const CT_POLICY_EVAL_CTX *ctx)
91{ 100{
92 return ctx->log_store; 101 return ctx->log_store;
93} 102}
94 103
95uint64_t CT_POLICY_EVAL_CTX_get_time(const CT_POLICY_EVAL_CTX *ctx) 104uint64_t
105CT_POLICY_EVAL_CTX_get_time(const CT_POLICY_EVAL_CTX *ctx)
96{ 106{
97 return ctx->epoch_time_in_ms; 107 return ctx->epoch_time_in_ms;
98} 108}