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