blob: 4e4183e615eaaa12999eff85ee3176753dbc7742 [file] [log] [blame]
Tudor Ambarus8c419772016-07-04 13:12:08 +03001/*
2 * caam - Freescale FSL CAAM support for Public Key Cryptography descriptors
3 *
4 * Copyright 2016 Freescale Semiconductor, Inc.
5 *
6 * There is no Shared Descriptor for PKC so that the Job Descriptor must carry
7 * all the desired key parameters, input and output pointers.
8 */
9#include "caampkc.h"
10#include "desc_constr.h"
11
12/* Descriptor for RSA Public operation */
13void init_rsa_pub_desc(u32 *desc, struct rsa_pub_pdb *pdb)
14{
15 init_job_desc_pdb(desc, 0, sizeof(*pdb));
16 append_cmd(desc, pdb->sgf);
17 append_ptr(desc, pdb->f_dma);
18 append_ptr(desc, pdb->g_dma);
19 append_ptr(desc, pdb->n_dma);
20 append_ptr(desc, pdb->e_dma);
21 append_cmd(desc, pdb->f_len);
22 append_operation(desc, OP_TYPE_UNI_PROTOCOL | OP_PCLID_RSAENC_PUBKEY);
23}
24
25/* Descriptor for RSA Private operation - Private Key Form #1 */
26void init_rsa_priv_f1_desc(u32 *desc, struct rsa_priv_f1_pdb *pdb)
27{
28 init_job_desc_pdb(desc, 0, sizeof(*pdb));
29 append_cmd(desc, pdb->sgf);
30 append_ptr(desc, pdb->g_dma);
31 append_ptr(desc, pdb->f_dma);
32 append_ptr(desc, pdb->n_dma);
33 append_ptr(desc, pdb->d_dma);
34 append_operation(desc, OP_TYPE_UNI_PROTOCOL | OP_PCLID_RSADEC_PRVKEY |
35 RSA_PRIV_KEY_FRM_1);
36}