Lines Matching +full:byte +full:- +full:len

2  * Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved.
24 int o2i_SCT_signature(SCT *sct, const unsigned char **in, size_t len) in o2i_SCT_signature() argument
27 size_t len_remaining = len; in o2i_SCT_signature()
30 if (sct->version != SCT_VERSION_V1) { in o2i_SCT_signature()
32 return -1; in o2i_SCT_signature()
35 * digitally-signed struct header: (1 byte) Hash algorithm (1 byte) in o2i_SCT_signature()
41 if (len <= 4) { in o2i_SCT_signature()
43 return -1; in o2i_SCT_signature()
48 sct->hash_alg = *p++; in o2i_SCT_signature()
49 sct->sig_alg = *p++; in o2i_SCT_signature()
52 return -1; in o2i_SCT_signature()
56 len_remaining -= (p - *in); in o2i_SCT_signature()
59 return -1; in o2i_SCT_signature()
63 return -1; in o2i_SCT_signature()
64 len_remaining -= siglen; in o2i_SCT_signature()
67 return len - len_remaining; in o2i_SCT_signature()
70 SCT *o2i_SCT(SCT **psct, const unsigned char **in, size_t len) in o2i_SCT() argument
75 if (len == 0 || len > MAX_SCT_SIZE) { in o2i_SCT()
85 sct->version = *p; in o2i_SCT()
86 if (sct->version == SCT_VERSION_V1) { in o2i_SCT()
89 /*- in o2i_SCT()
90 * Fixed-length header: in o2i_SCT()
92 * Version sct_version; (1 byte) in o2i_SCT()
98 if (len < 43) { in o2i_SCT()
102 len -= 43; in o2i_SCT()
104 sct->log_id = OPENSSL_memdup(p, CT_V1_HASHLEN); in o2i_SCT()
105 if (sct->log_id == NULL) in o2i_SCT()
107 sct->log_id_len = CT_V1_HASHLEN; in o2i_SCT()
110 n2l8(p, sct->timestamp); in o2i_SCT()
113 if (len < len2) { in o2i_SCT()
118 sct->ext = OPENSSL_memdup(p, len2); in o2i_SCT()
119 if (sct->ext == NULL) in o2i_SCT()
122 sct->ext_len = len2; in o2i_SCT()
124 len -= len2; in o2i_SCT()
126 sig_len = o2i_SCT_signature(sct, &p, len); in o2i_SCT()
131 len -= sig_len; in o2i_SCT()
132 *in = p + len; in o2i_SCT()
135 sct->sct = OPENSSL_memdup(p, len); in o2i_SCT()
136 if (sct->sct == NULL) in o2i_SCT()
138 sct->sct_len = len; in o2i_SCT()
139 *in = p + len; in o2i_SCT()
155 size_t len; in i2o_SCT_signature() local
163 if (sct->version != SCT_VERSION_V1) { in i2o_SCT_signature()
169 * (1 byte) Hash algorithm in i2o_SCT_signature()
170 * (1 byte) Signature algorithm in i2o_SCT_signature()
173 len = 4 + sct->sig_len; in i2o_SCT_signature()
178 *out += len; in i2o_SCT_signature()
180 pstart = p = OPENSSL_malloc(len); in i2o_SCT_signature()
188 *p++ = sct->hash_alg; in i2o_SCT_signature()
189 *p++ = sct->sig_alg; in i2o_SCT_signature()
190 s2n(sct->sig_len, p); in i2o_SCT_signature()
191 memcpy(p, sct->sig, sct->sig_len); in i2o_SCT_signature()
194 return len; in i2o_SCT_signature()
197 return -1; in i2o_SCT_signature()
202 size_t len; in i2o_SCT() local
210 * Fixed-length header: struct { (1 byte) Version sct_version; (32 bytes) in i2o_SCT()
212 * extensions; (1 byte) Hash algorithm (1 byte) Signature algorithm (2 in i2o_SCT()
215 if (sct->version == SCT_VERSION_V1) in i2o_SCT()
216 len = 43 + sct->ext_len + 4 + sct->sig_len; in i2o_SCT()
218 len = sct->sct_len; in i2o_SCT()
221 return len; in i2o_SCT()
225 *out += len; in i2o_SCT()
227 pstart = p = OPENSSL_malloc(len); in i2o_SCT()
235 if (sct->version == SCT_VERSION_V1) { in i2o_SCT()
236 *p++ = sct->version; in i2o_SCT()
237 memcpy(p, sct->log_id, CT_V1_HASHLEN); in i2o_SCT()
239 l2n8(sct->timestamp, p); in i2o_SCT()
240 s2n(sct->ext_len, p); in i2o_SCT()
241 if (sct->ext_len > 0) { in i2o_SCT()
242 memcpy(p, sct->ext, sct->ext_len); in i2o_SCT()
243 p += sct->ext_len; in i2o_SCT()
248 memcpy(p, sct->sct, len); in i2o_SCT()
251 return len; in i2o_SCT()
254 return -1; in i2o_SCT()
258 size_t len) in STACK_OF()
263 if (len < 2 || len > MAX_SCT_LIST_SIZE) { in STACK_OF()
269 if (list_len != len - 2) { in STACK_OF()
295 list_len -= 2; in STACK_OF()
301 list_len -= sct_len; in STACK_OF()
323 int len, sct_len, i, is_pp_new = 0; in i2o_SCT_LIST() local
329 if ((len = i2o_SCT_LIST(a, NULL)) == -1) { in i2o_SCT_LIST()
331 return -1; in i2o_SCT_LIST()
333 if ((*pp = OPENSSL_malloc(len)) == NULL) { in i2o_SCT_LIST()
335 return -1; in i2o_SCT_LIST()
347 if ((sct_len = i2o_SCT(sk_SCT_value(a, i), &p)) == -1) in i2o_SCT_LIST()
351 if ((sct_len = i2o_SCT(sk_SCT_value(a, i), NULL)) == -1) in i2o_SCT_LIST()
362 s2n(len2 - 2, p); in i2o_SCT_LIST()
373 return -1; in i2o_SCT_LIST()
377 long len) in STACK_OF()
384 if (d2i_ASN1_OCTET_STRING(&oct, &p, len) == NULL) in STACK_OF()
387 p = oct->data; in STACK_OF()
388 if ((sk = o2i_SCT_LIST(a, &p, oct->length)) != NULL) in STACK_OF()
389 *pp += len; in STACK_OF()
398 int len; in i2d_SCT_LIST() local
401 if ((oct.length = i2o_SCT_LIST(a, &oct.data)) == -1) in i2d_SCT_LIST()
402 return -1; in i2d_SCT_LIST()
404 len = i2d_ASN1_OCTET_STRING(&oct, out); in i2d_SCT_LIST()
406 return len; in i2d_SCT_LIST()