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