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