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