xref: /OK3568_Linux_fs/u-boot/drivers/crypto/fsl/jobdesc.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun  * Copyright 2014 Freescale Semiconductor, Inc.
3*4882a593Smuzhiyun  *
4*4882a593Smuzhiyun  * SPDX-License-Identifier:	GPL-2.0+
5*4882a593Smuzhiyun  *
6*4882a593Smuzhiyun  */
7*4882a593Smuzhiyun 
8*4882a593Smuzhiyun #ifndef __JOBDESC_H
9*4882a593Smuzhiyun #define __JOBDESC_H
10*4882a593Smuzhiyun 
11*4882a593Smuzhiyun #include <common.h>
12*4882a593Smuzhiyun #include <asm/io.h>
13*4882a593Smuzhiyun #include "rsa_caam.h"
14*4882a593Smuzhiyun 
15*4882a593Smuzhiyun #define KEY_IDNFR_SZ_BYTES		16
16*4882a593Smuzhiyun 
17*4882a593Smuzhiyun #ifdef CONFIG_CMD_DEKBLOB
18*4882a593Smuzhiyun /* inline_cnstr_jobdesc_blob_dek:
19*4882a593Smuzhiyun  * Intializes and constructs the job descriptor for DEK encapsulation
20*4882a593Smuzhiyun  * using the given parameters.
21*4882a593Smuzhiyun  * @desc: reference to the job descriptor
22*4882a593Smuzhiyun  * @plain_txt: reference to the DEK
23*4882a593Smuzhiyun  * @enc_blob: reference where to store the blob
24*4882a593Smuzhiyun  * @in_sz: size in bytes of the DEK
25*4882a593Smuzhiyun  * @return: 0 on success, ECONSTRJDESC otherwise
26*4882a593Smuzhiyun  */
27*4882a593Smuzhiyun int inline_cnstr_jobdesc_blob_dek(uint32_t *desc, const uint8_t *plain_txt,
28*4882a593Smuzhiyun 				uint8_t *enc_blob, uint32_t in_sz);
29*4882a593Smuzhiyun #endif
30*4882a593Smuzhiyun 
31*4882a593Smuzhiyun void inline_cnstr_jobdesc_hash(uint32_t *desc,
32*4882a593Smuzhiyun 			  const uint8_t *msg, uint32_t msgsz, uint8_t *digest,
33*4882a593Smuzhiyun 			  u32 alg_type, uint32_t alg_size, int sg_tbl);
34*4882a593Smuzhiyun 
35*4882a593Smuzhiyun void inline_cnstr_jobdesc_blob_encap(uint32_t *desc, uint8_t *key_idnfr,
36*4882a593Smuzhiyun 				     uint8_t *plain_txt, uint8_t *enc_blob,
37*4882a593Smuzhiyun 				     uint32_t in_sz);
38*4882a593Smuzhiyun 
39*4882a593Smuzhiyun void inline_cnstr_jobdesc_blob_decap(uint32_t *desc, uint8_t *key_idnfr,
40*4882a593Smuzhiyun 				     uint8_t *enc_blob, uint8_t *plain_txt,
41*4882a593Smuzhiyun 				     uint32_t out_sz);
42*4882a593Smuzhiyun 
43*4882a593Smuzhiyun void inline_cnstr_jobdesc_rng_instantiation(uint32_t *desc);
44*4882a593Smuzhiyun 
45*4882a593Smuzhiyun void inline_cnstr_jobdesc_pkha_rsaexp(uint32_t *desc,
46*4882a593Smuzhiyun 				      struct pk_in_params *pkin, uint8_t *out,
47*4882a593Smuzhiyun 				      uint32_t out_siz);
48*4882a593Smuzhiyun #endif
49