xref: /aosp_15_r20/external/vboot_reference/firmware/2lib/2sha256_arm.c (revision 8617a60d3594060b7ecbd21bc622a7c14f3cf2bc)
1*8617a60dSAndroid Build Coastguard Worker /* Copyright 2023 The ChromiumOS Authors
2*8617a60dSAndroid Build Coastguard Worker  * Use of this source code is governed by a BSD-style license that can be
3*8617a60dSAndroid Build Coastguard Worker  * found in the LICENSE file.
4*8617a60dSAndroid Build Coastguard Worker  *
5*8617a60dSAndroid Build Coastguard Worker  * SHA256 implementation using ARMv8 Cryptography Extension.
6*8617a60dSAndroid Build Coastguard Worker  */
7*8617a60dSAndroid Build Coastguard Worker 
8*8617a60dSAndroid Build Coastguard Worker #include "2common.h"
9*8617a60dSAndroid Build Coastguard Worker #include "2sha.h"
10*8617a60dSAndroid Build Coastguard Worker #include "2sha_private.h"
11*8617a60dSAndroid Build Coastguard Worker #include "2api.h"
12*8617a60dSAndroid Build Coastguard Worker 
13*8617a60dSAndroid Build Coastguard Worker const uint32_t vb2_hash_seq[8] = {0, 1, 2, 3, 4, 5, 6, 7};
14*8617a60dSAndroid Build Coastguard Worker 
15*8617a60dSAndroid Build Coastguard Worker int sha256_ce_transform(uint32_t *state, const unsigned char *buf, int blocks);
16*8617a60dSAndroid Build Coastguard Worker 
vb2_sha256_transform_hwcrypto(const uint8_t * message,unsigned int block_nb)17*8617a60dSAndroid Build Coastguard Worker void vb2_sha256_transform_hwcrypto(const uint8_t *message,
18*8617a60dSAndroid Build Coastguard Worker 				   unsigned int block_nb)
19*8617a60dSAndroid Build Coastguard Worker {
20*8617a60dSAndroid Build Coastguard Worker 	if (block_nb)
21*8617a60dSAndroid Build Coastguard Worker 		sha256_ce_transform(vb2_sha_ctx.h, message, block_nb);
22*8617a60dSAndroid Build Coastguard Worker }
23