1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * Copyright (c) 2024 Linaro Limited
4  * Author: Raymond Mao <raymond.mao@linaro.org>
5  */
6 #ifndef SHA1_ALT_H
7 #define SHA1_ALT_H
8 
9 #include <image.h>
10 #include <u-boot/sha1.h>
11 
12 typedef sha1_context mbedtls_sha1_context;
13 
mbedtls_sha1_init(mbedtls_sha1_context * ctx)14 static inline void mbedtls_sha1_init(mbedtls_sha1_context *ctx)
15 {
16 }
17 
mbedtls_sha1_free(mbedtls_sha1_context * ctx)18 static inline void mbedtls_sha1_free(mbedtls_sha1_context *ctx)
19 {
20 }
21 
mbedtls_sha1_clone(mbedtls_sha1_context * dst,const mbedtls_sha1_context * src)22 static inline void mbedtls_sha1_clone(mbedtls_sha1_context *dst,
23 				      const mbedtls_sha1_context *src)
24 {
25 	*dst = *src;
26 }
27 
mbedtls_sha1_starts(mbedtls_sha1_context * ctx)28 static inline int mbedtls_sha1_starts(mbedtls_sha1_context *ctx)
29 {
30 	sha1_starts(ctx);
31 	return 0;
32 }
33 
mbedtls_sha1_update(mbedtls_sha1_context * ctx,const unsigned char * input,size_t ilen)34 static inline int mbedtls_sha1_update(mbedtls_sha1_context *ctx,
35 				      const unsigned char *input,
36 				      size_t ilen)
37 {
38 	sha1_update(ctx, input, ilen);
39 	return 0;
40 }
41 
mbedtls_sha1_finish(mbedtls_sha1_context * ctx,unsigned char output[20])42 static inline int mbedtls_sha1_finish(mbedtls_sha1_context *ctx,
43 				      unsigned char output[20])
44 {
45 	sha1_finish(ctx, output);
46 	return 0;
47 }
48 
mbedtls_sha1(const unsigned char * input,size_t ilen,unsigned char output[20])49 static inline int mbedtls_sha1(const unsigned char *input,
50 			       size_t ilen,
51 			       unsigned char output[20])
52 {
53 	sha1_csum_wd(input, ilen, output, CHUNKSZ_SHA1);
54 	return 0;
55 }
56 
57 #endif /* sha1_alt.h */
58