Lines Matching refs:cert
101 struct hvb_cert *cert, const char *const *hash_ptn_list, in hash_image_init_desc() argument
107 struct hvb_buf salt_buf = {cert->hash_payload.salt, cert->salt_size}; in hash_image_init_desc()
108 struct hvb_buf digest_buf = {cert->hash_payload.digest, cert->digest_size}; in hash_image_init_desc()
111 enum hvb_image_type image_type = (enum hvb_image_type)cert->verity_type; in hash_image_init_desc()
118 image_buf.size = cert->image_original_len; in hash_image_init_desc()
137 ret = hvb_compare_hash(&digest_buf, &image_buf, &salt_buf, cert->hash_algo); in hash_image_init_desc()
178 static enum hvb_errno _hvb_cert_payload_parser(struct hvb_cert *cert, uint8_t **p, uint8_t *end) in _hvb_cert_payload_parser() argument
181 struct hash_payload *payload = &cert->hash_payload; in _hvb_cert_payload_parser()
183 if (!_decode_octets(&buf, cert->salt_size, p, end)) { in _hvb_cert_payload_parser()
189 if (!_decode_octets(&buf, cert->digest_size, p, end)) { in _hvb_cert_payload_parser()
198 static enum hvb_errno _hvb_cert_payload_parser_v2(struct hvb_cert *cert, uint8_t **p, uint8_t *end,… in _hvb_cert_payload_parser_v2() argument
200 struct hash_payload *payload = &cert->hash_payload; in _hvb_cert_payload_parser_v2()
203 if (header + cert->salt_offset > end || header + cert->salt_offset <= header) { in _hvb_cert_payload_parser_v2()
207 cur_header = header + cert->salt_offset; in _hvb_cert_payload_parser_v2()
209 if (cur_header + cert->salt_size > end || cur_header + cert->salt_size <= cur_header) { in _hvb_cert_payload_parser_v2()
215 if (header + cert->digest_offset > end || header + cert->digest_offset <= header) { in _hvb_cert_payload_parser_v2()
219 cur_header = header + cert->digest_offset; in _hvb_cert_payload_parser_v2()
221 if (cur_header + cert->digest_size > end || cur_header + cert->digest_size <= cur_header) { in _hvb_cert_payload_parser_v2()
226 *p = cur_header + cert->digest_size; in _hvb_cert_payload_parser_v2()
231 static enum hvb_errno _hvb_cert_signature_parser(struct hvb_cert *cert, uint8_t **p, uint8_t *end) in _hvb_cert_signature_parser() argument
234 struct hvb_sign_info *sign_info = &cert->signature_info; in _hvb_cert_signature_parser()
241 if (hvb_memcpy_s(&cert->signature_info, sizeof(cert->signature_info), buf.addr, cp_size) != 0) { in _hvb_cert_signature_parser()
267 static enum hvb_errno _hvb_cert_signature_parser_v2(struct hvb_cert *cert, uint8_t **p, uint8_t *en… in _hvb_cert_signature_parser_v2() argument
270 struct hvb_sign_info *sign_info = &cert->signature_info; in _hvb_cert_signature_parser_v2()
278 if (hvb_memcpy_s(&cert->signature_info, sizeof(cert->signature_info), buf.addr, cp_size) != 0) { in _hvb_cert_signature_parser_v2()
312 enum hvb_errno hvb_cert_parser(struct hvb_cert *cert, struct hvb_buf *cert_buf) in hvb_cert_parser() argument
314 hvb_return_hvb_err_if_null(cert); in hvb_cert_parser()
329 if (hvb_memcpy_s(cert, sizeof(*cert), buf.addr, buf.size) != 0) { in hvb_cert_parser()
334 if (cert->version_minor == 0) { in hvb_cert_parser()
336 ret = _hvb_cert_payload_parser(cert, &p, end); in hvb_cert_parser()
343 ret = _hvb_cert_signature_parser(cert, &p, end); in hvb_cert_parser()
348 } else if (cert->version_minor == 1) { in hvb_cert_parser()
350 ret = _hvb_cert_payload_parser_v2(cert, &p, end, header); in hvb_cert_parser()
357 ret = _hvb_cert_signature_parser_v2(cert, &p, end, header); in hvb_cert_parser()
469 static enum hvb_errno _check_rollback_index(struct hvb_ops *ops, struct hvb_cert *cert, struct hvb_… in _check_rollback_index() argument
473 uint64_t cert_rollback_index = cert->rollback_index; in _check_rollback_index()
474 uint64_t rollback_location = cert->rollback_location; in _check_rollback_index()
508 struct hvb_cert cert = {0}; in cert_init_desc() local
510 struct hvb_sign_info *sign_info = &cert.signature_info; in cert_init_desc()
512 ret = hvb_cert_parser(&cert, cert_buf); in cert_init_desc()
520 ret = hvb_verify_cert(&tbs, sign_info, cert.salt_size); in cert_init_desc()
526 ret = _check_rollback_index(ops, &cert, vd); in cert_init_desc()
532 ret = hash_image_init_desc(ops, ptn, &cert, hash_ptn_list, vd); in cert_init_desc()