1 /* SPDX-License-Identifier: BSD-3-Clause */
2 /* Copyright(c) 2007-2022 Intel Corporation */
3 /* $FreeBSD$ */
4
5 /**
6 *****************************************************************************
7 * @file lac_sym_qat_key.h
8 *
9 * @defgroup LacSymQatKey Key QAT
10 *
11 * @ingroup LacSymQat
12 *
13 * interfaces for populating qat structures for a key operation
14 *
15 *****************************************************************************/
16
17 #ifndef LAC_SYM_QAT_KEY_H
18 #define LAC_SYM_QAT_KEY_H
19
20 #include "cpa.h"
21 #include "lac_sym.h"
22 #include "icp_qat_fw_la.h"
23
24 /**
25 ******************************************************************************
26 * @ingroup LacSymQatKey
27 * Number of bytes generated per iteration
28 * @description
29 * This define is the number of bytes generated per iteration
30 *****************************************************************************/
31 #define LAC_SYM_QAT_KEY_SSL_BYTES_PER_ITERATION (16)
32
33 /**
34 ******************************************************************************
35 * @ingroup LacSymQatKey
36 * Shift to calculate the number of iterations
37 * @description
38 * This define is the shift to calculate the number of iterations
39 *****************************************************************************/
40 #define LAC_SYM_QAT_KEY_SSL_ITERATIONS_SHIFT LAC_16BYTE_ALIGNMENT_SHIFT
41
42 /**
43 *******************************************************************************
44 * @ingroup LacSymKey
45 * Populate the SSL request
46 *
47 * @description
48 * Populate the SSL request
49 *
50 * @param[out] pKeyGenReqHdr Pointer to Key Generation request Header
51 * @param[out] pKeyGenReqMid Pointer to LW's 14/15 of Key Gen request
52 * @param[in] generatedKeyLenInBytes Length of Key generated
53 * @param[in] labelLenInBytes Length of Label
54 * @param[in] secretLenInBytes Length of Secret
55 * @param[in] iterations Number of iterations. This is related
56 * to the label length.
57 *
58 * @return None
59 *
60 *****************************************************************************/
61 void
62 LacSymQat_KeySslRequestPopulate(icp_qat_la_bulk_req_hdr_t *pKeyGenReqHdr,
63 icp_qat_fw_la_key_gen_common_t *pKeyGenReqMid,
64 Cpa32U generatedKeyLenInBytes,
65 Cpa32U labelLenInBytes,
66 Cpa32U secretLenInBytes,
67 Cpa32U iterations);
68
69 /**
70 *******************************************************************************
71 * @ingroup LacSymKey
72 * Populate the TLS request
73 *
74 * @description
75 * Populate the TLS request
76 *
77 * @param[out] pKeyGenReq Pointer to Key Generation request
78 * @param[in] generatedKeyLenInBytes Length of Key generated
79 * @param[in] labelLenInBytes Length of Label
80 * @param[in] secretLenInBytes Length of Secret
81 * @param[in] seedLenInBytes Length of Seed
82 * @param[in] cmdId Command Id to differentiate TLS versions
83 *
84 * @return None
85 *
86 *****************************************************************************/
87 void LacSymQat_KeyTlsRequestPopulate(
88 icp_qat_fw_la_key_gen_common_t *pKeyGenReqParams,
89 Cpa32U generatedKeyLenInBytes,
90 Cpa32U labelLenInBytes,
91 Cpa32U secretLenInBytes,
92 Cpa8U seedLenInBytes,
93 icp_qat_fw_la_cmd_id_t cmdId);
94
95 /**
96 *******************************************************************************
97 * @ingroup LacSymKey
98 * Populate MGF request
99 *
100 * @description
101 * Populate MGF request
102 *
103 * @param[out] pKeyGenReqHdr Pointer to Key Generation request Header
104 * @param[out] pKeyGenReqMid Pointer to LW's 14/15 of Key Gen request
105 * @param[in] seedLenInBytes Length of Seed
106 * @param[in] maskLenInBytes Length of Mask
107 * @param[in] hashLenInBytes Length of hash
108 *
109 * @return None
110 *
111 *****************************************************************************/
112 void
113 LacSymQat_KeyMgfRequestPopulate(icp_qat_la_bulk_req_hdr_t *pKeyGenReqHdr,
114 icp_qat_fw_la_key_gen_common_t *pKeyGenReqMid,
115 Cpa8U seedLenInBytes,
116 Cpa16U maskLenInBytes,
117 Cpa8U hashLenInBytes);
118
119 /**
120 *******************************************************************************
121 * @ingroup LacSymKey
122 * Populate the SSL key material input
123 *
124 * @description
125 * Populate the SSL key material input
126 *
127 * @param[in] pService Pointer to service
128 * @param[out] pSslKeyMaterialInput Pointer to SSL key material input
129 * @param[in] pSeed Pointer to Seed
130 * @param[in] labelPhysAddr Physical address of the label
131 * @param[in] pSecret Pointer to Secret
132 *
133 * @return None
134 *
135 *****************************************************************************/
136 void LacSymQat_KeySslKeyMaterialInputPopulate(
137 sal_service_t *pService,
138 icp_qat_fw_la_ssl_key_material_input_t *pSslKeyMaterialInput,
139 void *pSeed,
140 Cpa64U labelPhysAddr,
141 void *pSecret);
142
143 /**
144 *******************************************************************************
145 * @ingroup LacSymKey
146 * Populate the TLS key material input
147 *
148 * @description
149 * Populate the TLS key material input
150 *
151 * @param[in] pService Pointer to service
152 * @param[out] pTlsKeyMaterialInput Pointer to TLS key material input
153 * @param[in] pSeed Pointer to Seed
154 * @param[in] labelPhysAddr Physical address of the label
155 *
156 * @return None
157 *
158 *****************************************************************************/
159 void LacSymQat_KeyTlsKeyMaterialInputPopulate(
160 sal_service_t *pService,
161 icp_qat_fw_la_tls_key_material_input_t *pTlsKeyMaterialInput,
162 void *pSeed,
163 Cpa64U labelPhysAddr);
164
165 /**
166 *******************************************************************************
167 * @ingroup LacSymKey
168 * Populate the TLS HKDF key material input
169 *
170 * @description
171 * Populate the TLS HKDF key material input
172 *
173 * @param[in] pService Pointer to service
174 * @param[out] pTlsKeyMaterialInput Pointer to TLS key material input
175 * @param[in] pSeed Pointer to Seed
176 * @param[in] labelPhysAddr Physical address of the label
177 * @param[in] cmdId Command ID
178 *
179 * @return None
180 *
181 *****************************************************************************/
182 void LacSymQat_KeyTlsHKDFKeyMaterialInputPopulate(
183 sal_service_t *pService,
184 icp_qat_fw_la_hkdf_key_material_input_t *pTlsKeyMaterialInput,
185 CpaCyKeyGenHKDFOpData *pKeyGenTlsOpData,
186 Cpa64U subLabelsPhysAddr,
187 icp_qat_fw_la_cmd_id_t cmdId);
188
189 #endif /* LAC_SYM_QAT_KEY_H */
Cache object: 31fac7548412fb5b86e388369bfd0690
|