xref: /openbmc/u-boot/drivers/crypto/fsl/jobdesc.h (revision 83d290c56fab2d38cd1ab4c4cc7099559c1d5046)
1*83d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0+ */
2b9eebfadSRuchika Gupta /*
3b9eebfadSRuchika Gupta  * Copyright 2014 Freescale Semiconductor, Inc.
4b9eebfadSRuchika Gupta  *
5b9eebfadSRuchika Gupta  */
6b9eebfadSRuchika Gupta 
7b9eebfadSRuchika Gupta #ifndef __JOBDESC_H
8b9eebfadSRuchika Gupta #define __JOBDESC_H
9b9eebfadSRuchika Gupta 
10b9eebfadSRuchika Gupta #include <common.h>
11b9eebfadSRuchika Gupta #include <asm/io.h>
1234276478SRuchika Gupta #include "rsa_caam.h"
13b9eebfadSRuchika Gupta 
14c5de15cbSRuchika Gupta #define KEY_IDNFR_SZ_BYTES		16
15c5de15cbSRuchika Gupta 
160200020bSRaul Cardenas #ifdef CONFIG_CMD_DEKBLOB
170200020bSRaul Cardenas /* inline_cnstr_jobdesc_blob_dek:
180200020bSRaul Cardenas  * Intializes and constructs the job descriptor for DEK encapsulation
190200020bSRaul Cardenas  * using the given parameters.
200200020bSRaul Cardenas  * @desc: reference to the job descriptor
210200020bSRaul Cardenas  * @plain_txt: reference to the DEK
220200020bSRaul Cardenas  * @enc_blob: reference where to store the blob
230200020bSRaul Cardenas  * @in_sz: size in bytes of the DEK
240200020bSRaul Cardenas  * @return: 0 on success, ECONSTRJDESC otherwise
250200020bSRaul Cardenas  */
260200020bSRaul Cardenas int inline_cnstr_jobdesc_blob_dek(uint32_t *desc, const uint8_t *plain_txt,
270200020bSRaul Cardenas 				uint8_t *enc_blob, uint32_t in_sz);
280200020bSRaul Cardenas #endif
290200020bSRaul Cardenas 
30b9eebfadSRuchika Gupta void inline_cnstr_jobdesc_hash(uint32_t *desc,
31b9eebfadSRuchika Gupta 			  const uint8_t *msg, uint32_t msgsz, uint8_t *digest,
32b9eebfadSRuchika Gupta 			  u32 alg_type, uint32_t alg_size, int sg_tbl);
33b9eebfadSRuchika Gupta 
34c5de15cbSRuchika Gupta void inline_cnstr_jobdesc_blob_encap(uint32_t *desc, uint8_t *key_idnfr,
35c5de15cbSRuchika Gupta 				     uint8_t *plain_txt, uint8_t *enc_blob,
36c5de15cbSRuchika Gupta 				     uint32_t in_sz);
37c5de15cbSRuchika Gupta 
38c5de15cbSRuchika Gupta void inline_cnstr_jobdesc_blob_decap(uint32_t *desc, uint8_t *key_idnfr,
39c5de15cbSRuchika Gupta 				     uint8_t *enc_blob, uint8_t *plain_txt,
40c5de15cbSRuchika Gupta 				     uint32_t out_sz);
41c5de15cbSRuchika Gupta 
42dfaec760SLukas Auer void inline_cnstr_jobdesc_rng_instantiation(uint32_t *desc, int handle);
4334276478SRuchika Gupta 
4434276478SRuchika Gupta void inline_cnstr_jobdesc_pkha_rsaexp(uint32_t *desc,
4534276478SRuchika Gupta 				      struct pk_in_params *pkin, uint8_t *out,
4634276478SRuchika Gupta 				      uint32_t out_siz);
47b9eebfadSRuchika Gupta #endif
48