]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blame - drivers/crypto/caam/pkc_desc.c
Merge tag 'pm-turbostat-4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git...
[mirror_ubuntu-artful-kernel.git] / drivers / crypto / caam / pkc_desc.c
CommitLineData
8c419778
TA
1/*
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}