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