xref: /arm-trusted-firmware/include/drivers/nxp/crypto/caam/rsa.h (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu /*
2*91f16700Schasinglulu  * Copyright 2017-2021 NXP
3*91f16700Schasinglulu  *
4*91f16700Schasinglulu  * SPDX-License-Identifier: BSD-3-Clause
5*91f16700Schasinglulu  *
6*91f16700Schasinglulu  */
7*91f16700Schasinglulu 
8*91f16700Schasinglulu #ifndef _RSA_H__
9*91f16700Schasinglulu #define _RSA_H__
10*91f16700Schasinglulu 
11*91f16700Schasinglulu /* RSA key size defines */
12*91f16700Schasinglulu #define RSA_4K_KEY_SZ       4096
13*91f16700Schasinglulu #define RSA_4K_KEY_SZ_BYTES (RSA_4K_KEY_SZ/8)
14*91f16700Schasinglulu #define RSA_2K_KEY_SZ       2048
15*91f16700Schasinglulu #define RSA_2K_KEY_SZ_BYTES (RSA_2K_KEY_SZ/8)
16*91f16700Schasinglulu #define RSA_1K_KEY_SZ       1024
17*91f16700Schasinglulu #define RSA_1K_KEY_SZ_BYTES (RSA_1K_KEY_SZ/8)
18*91f16700Schasinglulu 
19*91f16700Schasinglulu #define SHA256_BYTES        (256/8)
20*91f16700Schasinglulu 
21*91f16700Schasinglulu struct pk_in_params {
22*91f16700Schasinglulu 	uint8_t *e;
23*91f16700Schasinglulu 	uint32_t e_siz;
24*91f16700Schasinglulu 	uint8_t *n;
25*91f16700Schasinglulu 	uint32_t n_siz;
26*91f16700Schasinglulu 	uint8_t *a;
27*91f16700Schasinglulu 	uint32_t a_siz;
28*91f16700Schasinglulu 	uint8_t *b;
29*91f16700Schasinglulu 	uint32_t b_siz;
30*91f16700Schasinglulu };
31*91f16700Schasinglulu 
32*91f16700Schasinglulu struct rsa_context {
33*91f16700Schasinglulu 	struct pk_in_params pkin;
34*91f16700Schasinglulu };
35*91f16700Schasinglulu 
36*91f16700Schasinglulu int rsa_verify_signature(void *hash_ptr, unsigned int hash_len,
37*91f16700Schasinglulu 			 void *sig_ptr, unsigned int sig_len,
38*91f16700Schasinglulu 			 void *pk_ptr, unsigned int pk_len);
39*91f16700Schasinglulu 
40*91f16700Schasinglulu #endif
41