Lines Matching refs:sct
24 SCT *sct = OPENSSL_zalloc(sizeof(*sct)); in SCT_new() local
26 if (sct == NULL) { in SCT_new()
31 sct->entry_type = CT_LOG_ENTRY_TYPE_NOT_SET; in SCT_new()
32 sct->version = SCT_VERSION_NOT_SET; in SCT_new()
33 return sct; in SCT_new()
36 void SCT_free(SCT *sct) in SCT_free() argument
38 if (sct == NULL) in SCT_free()
41 OPENSSL_free(sct->log_id); in SCT_free()
42 OPENSSL_free(sct->ext); in SCT_free()
43 OPENSSL_free(sct->sig); in SCT_free()
44 OPENSSL_free(sct->sct); in SCT_free()
45 OPENSSL_free(sct); in SCT_free()
53 int SCT_set_version(SCT *sct, sct_version_t version) in SCT_set_version() argument
59 sct->version = version; in SCT_set_version()
60 sct->validation_status = SCT_VALIDATION_STATUS_NOT_SET; in SCT_set_version()
64 int SCT_set_log_entry_type(SCT *sct, ct_log_entry_type_t entry_type) in SCT_set_log_entry_type() argument
66 sct->validation_status = SCT_VALIDATION_STATUS_NOT_SET; in SCT_set_log_entry_type()
71 sct->entry_type = entry_type; in SCT_set_log_entry_type()
80 int SCT_set0_log_id(SCT *sct, unsigned char *log_id, size_t log_id_len) in SCT_set0_log_id() argument
82 if (sct->version == SCT_VERSION_V1 && log_id_len != CT_V1_HASHLEN) { in SCT_set0_log_id()
87 OPENSSL_free(sct->log_id); in SCT_set0_log_id()
88 sct->log_id = log_id; in SCT_set0_log_id()
89 sct->log_id_len = log_id_len; in SCT_set0_log_id()
90 sct->validation_status = SCT_VALIDATION_STATUS_NOT_SET; in SCT_set0_log_id()
94 int SCT_set1_log_id(SCT *sct, const unsigned char *log_id, size_t log_id_len) in SCT_set1_log_id() argument
96 if (sct->version == SCT_VERSION_V1 && log_id_len != CT_V1_HASHLEN) { in SCT_set1_log_id()
101 OPENSSL_free(sct->log_id); in SCT_set1_log_id()
102 sct->log_id = NULL; in SCT_set1_log_id()
103 sct->log_id_len = 0; in SCT_set1_log_id()
104 sct->validation_status = SCT_VALIDATION_STATUS_NOT_SET; in SCT_set1_log_id()
107 sct->log_id = OPENSSL_memdup(log_id, log_id_len); in SCT_set1_log_id()
108 if (sct->log_id == NULL) { in SCT_set1_log_id()
112 sct->log_id_len = log_id_len; in SCT_set1_log_id()
118 void SCT_set_timestamp(SCT *sct, uint64_t timestamp) in SCT_set_timestamp() argument
120 sct->timestamp = timestamp; in SCT_set_timestamp()
121 sct->validation_status = SCT_VALIDATION_STATUS_NOT_SET; in SCT_set_timestamp()
124 int SCT_set_signature_nid(SCT *sct, int nid) in SCT_set_signature_nid() argument
128 sct->hash_alg = TLSEXT_hash_sha256; in SCT_set_signature_nid()
129 sct->sig_alg = TLSEXT_signature_rsa; in SCT_set_signature_nid()
130 sct->validation_status = SCT_VALIDATION_STATUS_NOT_SET; in SCT_set_signature_nid()
133 sct->hash_alg = TLSEXT_hash_sha256; in SCT_set_signature_nid()
134 sct->sig_alg = TLSEXT_signature_ecdsa; in SCT_set_signature_nid()
135 sct->validation_status = SCT_VALIDATION_STATUS_NOT_SET; in SCT_set_signature_nid()
143 void SCT_set0_extensions(SCT *sct, unsigned char *ext, size_t ext_len) in SCT_set0_extensions() argument
145 OPENSSL_free(sct->ext); in SCT_set0_extensions()
146 sct->ext = ext; in SCT_set0_extensions()
147 sct->ext_len = ext_len; in SCT_set0_extensions()
148 sct->validation_status = SCT_VALIDATION_STATUS_NOT_SET; in SCT_set0_extensions()
151 int SCT_set1_extensions(SCT *sct, const unsigned char *ext, size_t ext_len) in SCT_set1_extensions() argument
153 OPENSSL_free(sct->ext); in SCT_set1_extensions()
154 sct->ext = NULL; in SCT_set1_extensions()
155 sct->ext_len = 0; in SCT_set1_extensions()
156 sct->validation_status = SCT_VALIDATION_STATUS_NOT_SET; in SCT_set1_extensions()
159 sct->ext = OPENSSL_memdup(ext, ext_len); in SCT_set1_extensions()
160 if (sct->ext == NULL) { in SCT_set1_extensions()
164 sct->ext_len = ext_len; in SCT_set1_extensions()
169 void SCT_set0_signature(SCT *sct, unsigned char *sig, size_t sig_len) in SCT_set0_signature() argument
171 OPENSSL_free(sct->sig); in SCT_set0_signature()
172 sct->sig = sig; in SCT_set0_signature()
173 sct->sig_len = sig_len; in SCT_set0_signature()
174 sct->validation_status = SCT_VALIDATION_STATUS_NOT_SET; in SCT_set0_signature()
177 int SCT_set1_signature(SCT *sct, const unsigned char *sig, size_t sig_len) in SCT_set1_signature() argument
179 OPENSSL_free(sct->sig); in SCT_set1_signature()
180 sct->sig = NULL; in SCT_set1_signature()
181 sct->sig_len = 0; in SCT_set1_signature()
182 sct->validation_status = SCT_VALIDATION_STATUS_NOT_SET; in SCT_set1_signature()
185 sct->sig = OPENSSL_memdup(sig, sig_len); in SCT_set1_signature()
186 if (sct->sig == NULL) { in SCT_set1_signature()
190 sct->sig_len = sig_len; in SCT_set1_signature()
195 sct_version_t SCT_get_version(const SCT *sct) in SCT_get_version() argument
197 return sct->version; in SCT_get_version()
200 ct_log_entry_type_t SCT_get_log_entry_type(const SCT *sct) in SCT_get_log_entry_type() argument
202 return sct->entry_type; in SCT_get_log_entry_type()
205 size_t SCT_get0_log_id(const SCT *sct, unsigned char **log_id) in SCT_get0_log_id() argument
207 *log_id = sct->log_id; in SCT_get0_log_id()
208 return sct->log_id_len; in SCT_get0_log_id()
211 uint64_t SCT_get_timestamp(const SCT *sct) in SCT_get_timestamp() argument
213 return sct->timestamp; in SCT_get_timestamp()
216 int SCT_get_signature_nid(const SCT *sct) in SCT_get_signature_nid() argument
218 if (sct->version == SCT_VERSION_V1) { in SCT_get_signature_nid()
219 if (sct->hash_alg == TLSEXT_hash_sha256) { in SCT_get_signature_nid()
220 switch (sct->sig_alg) { in SCT_get_signature_nid()
233 size_t SCT_get0_extensions(const SCT *sct, unsigned char **ext) in SCT_get0_extensions() argument
235 *ext = sct->ext; in SCT_get0_extensions()
236 return sct->ext_len; in SCT_get0_extensions()
239 size_t SCT_get0_signature(const SCT *sct, unsigned char **sig) in SCT_get0_signature() argument
241 *sig = sct->sig; in SCT_get0_signature()
242 return sct->sig_len; in SCT_get0_signature()
245 int SCT_is_complete(const SCT *sct) in SCT_is_complete() argument
247 switch (sct->version) { in SCT_is_complete()
251 return sct->log_id != NULL && SCT_signature_is_complete(sct); in SCT_is_complete()
253 return sct->sct != NULL; /* Just need cached encoding */ in SCT_is_complete()
257 int SCT_signature_is_complete(const SCT *sct) in SCT_signature_is_complete() argument
259 return SCT_get_signature_nid(sct) != NID_undef && in SCT_signature_is_complete()
260 sct->sig != NULL && sct->sig_len > 0; in SCT_signature_is_complete()
263 sct_source_t SCT_get_source(const SCT *sct) in SCT_get_source() argument
265 return sct->source; in SCT_get_source()
268 int SCT_set_source(SCT *sct, sct_source_t source) in SCT_set_source() argument
270 sct->source = source; in SCT_set_source()
271 sct->validation_status = SCT_VALIDATION_STATUS_NOT_SET; in SCT_set_source()
275 return SCT_set_log_entry_type(sct, CT_LOG_ENTRY_TYPE_X509); in SCT_set_source()
277 return SCT_set_log_entry_type(sct, CT_LOG_ENTRY_TYPE_PRECERT); in SCT_set_source()
285 sct_validation_status_t SCT_get_validation_status(const SCT *sct) in SCT_get_validation_status() argument
287 return sct->validation_status; in SCT_get_validation_status()
290 int SCT_validate(SCT *sct, const CT_POLICY_EVAL_CTX *ctx) in SCT_validate() argument
301 if (sct->version != SCT_VERSION_V1) { in SCT_validate()
302 sct->validation_status = SCT_VALIDATION_STATUS_UNKNOWN_VERSION; in SCT_validate()
307 sct->log_id, sct->log_id_len); in SCT_validate()
311 sct->validation_status = SCT_VALIDATION_STATUS_UNKNOWN_LOG; in SCT_validate()
324 if (SCT_get_log_entry_type(sct) == CT_LOG_ENTRY_TYPE_PRECERT) { in SCT_validate()
328 sct->validation_status = SCT_VALIDATION_STATUS_UNVERIFIED; in SCT_validate()
361 sct->validation_status = SCT_VALIDATION_STATUS_UNVERIFIED; in SCT_validate()
363 sct->validation_status = SCT_CTX_verify(sctx, sct) == 1 ? in SCT_validate()
367 is_sct_valid = sct->validation_status == SCT_VALIDATION_STATUS_VALID; in SCT_validate()
384 SCT *sct = sk_SCT_value(scts, i); in SCT_LIST_validate() local
386 if (sct == NULL) in SCT_LIST_validate()
389 is_sct_valid = SCT_validate(sct, ctx); in SCT_LIST_validate()