Lines Matching +full:static +full:- +full:extend
2 * Use of this source code is governed by a BSD-style license that can be
26 static uint8_t workbuf[VB2_WORKBUF_RECOMMENDED_SIZE]
28 static struct vb2_context ctx;
29 static struct vb2_shared_data *sd;
31 static const uint8_t mock_body[320] = "Mock body";
32 static const int mock_body_size = sizeof(mock_body);
33 static const int mock_hash_alg = VB2_HASH_SHA256;
34 static int mock_sig_size;
36 static const struct vb2_guid test_guid[4] = {
45 static enum {
51 static struct vb2_digest_context hwcrypto_emulation_dc;
53 static int retval_hwcrypto;
54 static int retval_vb2_load_fw_keyblock;
55 static int retval_vb2_load_fw_preamble;
64 static void reset_common_data(enum reset_type t) in reset_common_data()
94 sd->workbuf_preamble_offset = ctx.workbuf_used; in reset_common_data()
96 (ctx.workbuf + sd->workbuf_preamble_offset); in reset_common_data()
97 pre->hash_count = 3; in reset_common_data()
98 pre->hash_offset = sig_offset = sizeof(*pre); in reset_common_data()
100 pre->flags = VB2_FIRMWARE_PREAMBLE_DISALLOW_HWCRYPTO; in reset_common_data()
102 pre->flags = 0; in reset_common_data()
105 vb2_sign_data(&sig, mock_body, mock_body_size - 16 * i, in reset_common_data()
107 memcpy(&sig->guid, test_guid + i, sizeof(sig->guid)); in reset_common_data()
108 memcpy((uint8_t *)pre + sig_offset, sig, sig->c.total_size); in reset_common_data()
109 sig_offset += sig->c.total_size; in reset_common_data()
110 mock_sig_size = sig->c.total_size; in reset_common_data()
114 sd->workbuf_preamble_size = sig_offset; in reset_common_data()
115 ctx.workbuf_used = sd->workbuf_preamble_offset in reset_common_data()
116 + sd->workbuf_preamble_size; in reset_common_data()
180 static void phase3_tests(void) in phase3_tests()
198 static void init_hash_tests(void) in init_hash_tests()
207 (ctx.workbuf + sd->workbuf_preamble_offset); in init_hash_tests()
208 sig = (struct vb2_signature *)((uint8_t *)pre + pre->hash_offset); in init_hash_tests()
213 TEST_EQ(sd->workbuf_hash_offset, in init_hash_tests()
214 (wb_used_before + (VB2_WORKBUF_ALIGN - 1)) & in init_hash_tests()
215 ~(VB2_WORKBUF_ALIGN - 1), in init_hash_tests()
217 TEST_EQ(sd->workbuf_hash_size, sizeof(struct vb2_digest_context), in init_hash_tests()
220 sd->workbuf_hash_offset + sd->workbuf_hash_size, in init_hash_tests()
222 TEST_EQ(sd->hash_tag, in init_hash_tests()
223 sd->workbuf_preamble_offset + pre->hash_offset, in init_hash_tests()
225 TEST_EQ(sd->hash_remaining_size, mock_body_size, "hash remaining"); in init_hash_tests()
231 TEST_EQ(sd->hash_tag, in init_hash_tests()
232 sd->workbuf_preamble_offset + pre->hash_offset + in init_hash_tests()
241 sd->workbuf_preamble_size = 0; in init_hash_tests()
247 ctx.workbuf_size - sizeof(struct vb2_digest_context) + 8; in init_hash_tests()
252 sig->hash_alg = VB2_HASH_INVALID; in init_hash_tests()
264 static void extend_hash_tests(void) in extend_hash_tests()
270 "hash extend good"); in extend_hash_tests()
271 TEST_EQ(sd->hash_remaining_size, mock_body_size - 32, in extend_hash_tests()
272 "hash extend remaining"); in extend_hash_tests()
273 TEST_SUCC(vb2api_extend_hash(&ctx, mock_body, mock_body_size - 32), in extend_hash_tests()
274 "hash extend again"); in extend_hash_tests()
275 TEST_EQ(sd->hash_remaining_size, 0, "hash extend remaining 2"); in extend_hash_tests()
278 sd->workbuf_hash_size = 0; in extend_hash_tests()
280 VB2_ERROR_API_EXTEND_HASH_WORKBUF, "hash extend no workbuf"); in extend_hash_tests()
284 VB2_ERROR_API_EXTEND_HASH_SIZE, "hash extend too much"); in extend_hash_tests()
288 VB2_ERROR_API_EXTEND_HASH_SIZE, "hash extend empty"); in extend_hash_tests()
294 VB2_ERROR_MOCK, "hash extend use hwcrypto"); in extend_hash_tests()
298 (ctx.workbuf + sd->workbuf_hash_offset); in extend_hash_tests()
299 dc->hash_alg = VB2_HASH_INVALID; in extend_hash_tests()
301 VB2_ERROR_SHA_EXTEND_ALGORITHM, "hash extend fail"); in extend_hash_tests()
305 static void check_hash_tests(void) in check_hash_tests()
313 (ctx.workbuf + sd->workbuf_preamble_offset); in check_hash_tests()
314 sig = (struct vb2_signature *)((uint8_t *)pre + pre->hash_offset); in check_hash_tests()
316 (ctx.workbuf + sd->workbuf_hash_offset); in check_hash_tests()
321 sd->hash_tag = 0; in check_hash_tests()
326 sd->workbuf_hash_size = 0; in check_hash_tests()
331 sd->hash_remaining_size = 1; in check_hash_tests()
341 *((uint8_t *)sig + sig->sig_offset) ^= 0x55; in check_hash_tests()
352 dc->hash_alg = VB2_HASH_INVALID; in check_hash_tests()
353 *((uint8_t *)sig + sig->sig_offset) ^= 0x55; in check_hash_tests()