xref: /rk3399_rockchip-uboot/arch/arm/cpu/armv8/sha256_ce_glue.c (revision 64269a86b3564b5b0cd49d09390ed26e0ee96cb1)
1*64269a86SLoic Poulain // SPDX-License-Identifier: GPL-2.0-only
2*64269a86SLoic Poulain /*
3*64269a86SLoic Poulain  * sha256_ce_glue.c - SHA-256 secure hash using ARMv8 Crypto Extensions
4*64269a86SLoic Poulain  *
5*64269a86SLoic Poulain  * Copyright (C) 2022 Linaro Ltd <loic.poulain@linaro.org>
6*64269a86SLoic Poulain  */
7*64269a86SLoic Poulain 
8*64269a86SLoic Poulain #include <common.h>
9*64269a86SLoic Poulain #include <u-boot/sha256.h>
10*64269a86SLoic Poulain 
11*64269a86SLoic Poulain extern void sha256_armv8_ce_process(uint32_t state[8], uint8_t const *src,
12*64269a86SLoic Poulain 				    uint32_t blocks);
13*64269a86SLoic Poulain 
sha256_process(sha256_context * ctx,const unsigned char * data,unsigned int blocks)14*64269a86SLoic Poulain void sha256_process(sha256_context *ctx, const unsigned char *data,
15*64269a86SLoic Poulain 		    unsigned int blocks)
16*64269a86SLoic Poulain {
17*64269a86SLoic Poulain 	if (!blocks)
18*64269a86SLoic Poulain 		return;
19*64269a86SLoic Poulain 
20*64269a86SLoic Poulain 	sha256_armv8_ce_process(ctx->state, data, blocks);
21*64269a86SLoic Poulain }
22