• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (C) 2021 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15import * as param from '../publicParam';
16
17let HuksAgreeDH = {
18  HuksKeySTORAGE: {
19    tag: param.HksTag.HKS_TAG_KEY_STORAGE_FLAG,
20    value: param.HksKeyStorageType.HKS_STORAGE_PERSISTENT,
21  },
22  HuksKeyISKEYALIAS: { tag: param.HksTag.HKS_TAG_IS_KEY_ALIAS, value: true },
23  HuksKeyDIGESTNONE: {
24    tag: param.HksTag.HKS_TAG_DIGEST,
25    value: param.HksKeyDigest.HKS_DIGEST_NONE,
26  },
27  HuksKeyDIGESTSHA1: {
28    tag: param.HksTag.HKS_TAG_DIGEST,
29    value: param.HksKeyDigest.HKS_DIGEST_SHA1,
30  },
31  HuksKeyDIGESTSHA224: {
32    tag: param.HksTag.HKS_TAG_DIGEST,
33    value: param.HksKeyDigest.HKS_DIGEST_SHA224,
34  },
35  HuksKeyDIGESTSHA256: {
36    tag: param.HksTag.HKS_TAG_DIGEST,
37    value: param.HksKeyDigest.HKS_DIGEST_SHA256,
38  },
39  HuksKeyDIGESTSHA384: {
40    tag: param.HksTag.HKS_TAG_DIGEST,
41    value: param.HksKeyDigest.HKS_DIGEST_SHA384,
42  },
43  HuksKeyDIGESTSHA512: {
44    tag: param.HksTag.HKS_TAG_DIGEST,
45    value: param.HksKeyDigest.HKS_DIGEST_SHA512,
46  },
47  HuksKeyPADDINGNONE: {
48    tag: param.HksTag.HKS_TAG_PADDING,
49    value: param.HksKeyPadding.HKS_PADDING_NONE,
50  },
51  HuksKeyPADDINGPKCS7: {
52    tag: param.HksTag.HKS_TAG_PADDING,
53    value: param.HksKeyPadding.HKS_PADDING_PKCS7,
54  },
55  HuksKeyBLOCKMODECBC: {
56    tag: param.HksTag.HKS_TAG_BLOCK_MODE,
57    value: param.HksCipherMode.HKS_MODE_CBC,
58  },
59  HuksKeyBLOCKMODECCM: {
60    tag: param.HksTag.HKS_TAG_BLOCK_MODE,
61    value: param.HksCipherMode.HKS_MODE_CCM,
62  },
63  HuksKeyBLOCKMODEECB: {
64    tag: param.HksTag.HKS_TAG_BLOCK_MODE,
65    value: param.HksCipherMode.HKS_MODE_ECB,
66  },
67  HuksKeyBLOCKMODECTR: {
68    tag: param.HksTag.HKS_TAG_BLOCK_MODE,
69    value: param.HksCipherMode.HKS_MODE_CTR,
70  },
71  HuksKeyBLOCKMODEGCM: {
72    tag: param.HksTag.HKS_TAG_BLOCK_MODE,
73    value: param.HksCipherMode.HKS_MODE_GCM,
74  },
75  HuksKeyALGORITHMAES: {
76    tag: param.HksTag.HKS_TAG_ALGORITHM,
77    value: param.HksKeyAlg.HKS_ALG_AES,
78  },
79  HuksKeyALGORITHMHMAC: {
80    tag: param.HksTag.HKS_TAG_ALGORITHM,
81    value: param.HksKeyAlg.HKS_ALG_HMAC,
82  },
83  HuksKeySIZE256: {
84    tag: param.HksTag.HKS_TAG_KEY_SIZE,
85    value: param.HksKeySize.HKS_DH_KEY_SIZE_256,
86  },
87  HuksKeySIZE128: {
88    tag: param.HksTag.HKS_TAG_KEY_SIZE,
89    value: param.HksKeySize.HKS_DH_KEY_SIZE_128,
90  },
91  HuksKeySIZE192: {
92    tag: param.HksTag.HKS_TAG_KEY_SIZE,
93    value: param.HksKeySize.HKS_DH_KEY_SIZE_192,
94  },
95  HuksKeyAlgDH: {
96    tag: param.HksTag.HKS_TAG_ALGORITHM,
97    value: param.HksKeyAlg.HKS_ALG_DH,
98  },
99  HuksKeyAlgAES: {
100    tag: param.HksTag.HKS_TAG_ALGORITHM,
101    value: param.HksKeyAlg.HKS_ALG_AES,
102  },
103  HuksKeyAlgHMAC: {
104    tag: param.HksTag.HKS_TAG_ALGORITHM,
105    value: param.HksKeyAlg.HKS_ALG_HMAC,
106  },
107  HuksKeyPurposeDERIVE: {
108    tag: param.HksTag.HKS_TAG_PURPOSE,
109    value: param.HksKeyPurpose.HKS_KEY_PURPOSE_DERIVE,
110  },
111  HuksKeyPurposeMAC: {
112    tag: param.HksTag.HKS_TAG_PURPOSE,
113    value: param.HksKeyPurpose.HKS_KEY_PURPOSE_MAC,
114  },
115  HuksKeyPurposeENCRYPTDECRYPT: {
116    tag: param.HksTag.HKS_TAG_PURPOSE,
117    value: param.HksKeyPurpose.HKS_KEY_PURPOSE_ENCRYPT | param.HksKeyPurpose.HKS_KEY_PURPOSE_DECRYPT,
118  },
119  HuksKeyPurposeDH: {
120    tag: param.HksTag.HKS_TAG_PURPOSE,
121    value: param.HksKeyPurpose.HKS_KEY_PURPOSE_AGREE,
122  },
123  HuksKeyDHSize2048: {
124    tag: param.HksTag.HKS_TAG_KEY_SIZE,
125    value: param.HksKeySize.HKS_DH_KEY_SIZE_2048,
126  },
127  HuksKeyDHSize3072: {
128    tag: param.HksTag.HKS_TAG_KEY_SIZE,
129    value: param.HksKeySize.HKS_DH_KEY_SIZE_3072,
130  },
131  HuksKeyDHSize4096: {
132    tag: param.HksTag.HKS_TAG_KEY_SIZE,
133    value: param.HksKeySize.HKS_DH_KEY_SIZE_4096,
134  },
135};
136
137let HuksAgreeECDH = {
138  HuksKeyAlgECDH: {
139    tag: param.HksTag.HKS_TAG_ALGORITHM,
140    value: param.HksKeyAlg.HKS_ALG_ECDH,
141  },
142  HuksKeyAlgECC: {
143    tag: param.HksTag.HKS_TAG_ALGORITHM,
144    value: param.HksKeyAlg.HKS_ALG_ECC,
145  },
146  HuksKeyECCSize224: {
147    tag: param.HksTag.HKS_TAG_KEY_SIZE,
148    value: param.HksKeySize.HKS_ECC_KEY_SIZE_224,
149  },
150  HuksKeyECCSize256: {
151    tag: param.HksTag.HKS_TAG_KEY_SIZE,
152    value: param.HksKeySize.HKS_ECC_KEY_SIZE_256,
153  },
154  HuksKeyECCSize384: {
155    tag: param.HksTag.HKS_TAG_KEY_SIZE,
156    value: param.HksKeySize.HKS_ECC_KEY_SIZE_384,
157  },
158  HuksKeyECCSize521: {
159    tag: param.HksTag.HKS_TAG_KEY_SIZE,
160    value: param.HksKeySize.HKS_ECC_KEY_SIZE_521,
161  },
162  HuksKeyECCDIGEST: {
163    tag: param.HksTag.HKS_TAG_DIGEST,
164    value: param.HksKeyDigest.HKS_DIGEST_NONE,
165  },
166  HuksKeyECCPADDING: {
167    tag: param.HksTag.HKS_TAG_PADDING,
168    value: param.HksKeyPadding.HKS_PADDING_NONE,
169  },
170  HuksKeyECCBLOCKMODE: {
171    tag: param.HksTag.HKS_TAG_BLOCK_MODE,
172    value: param.HksCipherMode.HKS_MODE_CBC,
173  },
174  HuksKeySTORAGE: {
175    tag: param.HksTag.HKS_TAG_KEY_STORAGE_FLAG,
176    value: param.HksKeyStorageType.HKS_STORAGE_PERSISTENT,
177  },
178  HuksKeyISKEYALIAS: { tag: param.HksTag.HKS_TAG_IS_KEY_ALIAS, value: true },
179  HuksKeyDIGESTNONE: {
180    tag: param.HksTag.HKS_TAG_DIGEST,
181    value: param.HksKeyDigest.HKS_DIGEST_NONE,
182  },
183  HuksKeyDIGESTSHA1: {
184    tag: param.HksTag.HKS_TAG_DIGEST,
185    value: param.HksKeyDigest.HKS_DIGEST_SHA1,
186  },
187  HuksKeyDIGESTSHA224: {
188    tag: param.HksTag.HKS_TAG_DIGEST,
189    value: param.HksKeyDigest.HKS_DIGEST_SHA224,
190  },
191  HuksKeyDIGESTSHA256: {
192    tag: param.HksTag.HKS_TAG_DIGEST,
193    value: param.HksKeyDigest.HKS_DIGEST_SHA256,
194  },
195  HuksKeyDIGESTSHA384: {
196    tag: param.HksTag.HKS_TAG_DIGEST,
197    value: param.HksKeyDigest.HKS_DIGEST_SHA384,
198  },
199  HuksKeyDIGESTSHA512: {
200    tag: param.HksTag.HKS_TAG_DIGEST,
201    value: param.HksKeyDigest.HKS_DIGEST_SHA512,
202  },
203  HuksKeyPADDINGNONE: {
204    tag: param.HksTag.HKS_TAG_PADDING,
205    value: param.HksKeyPadding.HKS_PADDING_NONE,
206  },
207  HuksKeyPADDINGPKCS7: {
208    tag: param.HksTag.HKS_TAG_PADDING,
209    value: param.HksKeyPadding.HKS_PADDING_PKCS7,
210  },
211  HuksKeyBLOCKMODECBC: {
212    tag: param.HksTag.HKS_TAG_BLOCK_MODE,
213    value: param.HksCipherMode.HKS_MODE_CBC,
214  },
215  HuksKeyBLOCKMODECCM: {
216    tag: param.HksTag.HKS_TAG_BLOCK_MODE,
217    value: param.HksCipherMode.HKS_MODE_CCM,
218  },
219  HuksKeyBLOCKMODEECB: {
220    tag: param.HksTag.HKS_TAG_BLOCK_MODE,
221    value: param.HksCipherMode.HKS_MODE_ECB,
222  },
223  HuksKeyBLOCKMODECTR: {
224    tag: param.HksTag.HKS_TAG_BLOCK_MODE,
225    value: param.HksCipherMode.HKS_MODE_CTR,
226  },
227  HuksKeyBLOCKMODEGCM: {
228    tag: param.HksTag.HKS_TAG_BLOCK_MODE,
229    value: param.HksCipherMode.HKS_MODE_GCM,
230  },
231  HuksKeyALGORITHMAES: {
232    tag: param.HksTag.HKS_TAG_ALGORITHM,
233    value: param.HksKeyAlg.HKS_ALG_AES,
234  },
235  HuksKeyALGORITHMHMAC: {
236    tag: param.HksTag.HKS_TAG_ALGORITHM,
237    value: param.HksKeyAlg.HKS_ALG_HMAC,
238  },
239  HuksKeySIZE521: {
240    tag: param.HksTag.HKS_TAG_KEY_SIZE,
241    value: param.HksKeySize.HKS_ECC_KEY_SIZE_521,
242  },
243  HuksKeySIZE256: {
244    tag: param.HksTag.HKS_TAG_KEY_SIZE,
245    value: param.HksKeySize.HKS_ECC_KEY_SIZE_256,
246  },
247  HuksKeySIZE128: {
248    tag: param.HksTag.HKS_TAG_KEY_SIZE,
249    value: param.HksKeySize.HKS_ECC_KEY_SIZE_128,
250  },
251  HuksKeySIZE192: {
252    tag: param.HksTag.HKS_TAG_KEY_SIZE,
253    value: param.HksKeySize.HKS_ECC_KEY_SIZE_192,
254  },
255  HuksKeyAlgAES: {
256    tag: param.HksTag.HKS_TAG_ALGORITHM,
257    value: param.HksKeyAlg.HKS_ALG_AES,
258  },
259  HuksKeyAlgHMAC: {
260    tag: param.HksTag.HKS_TAG_ALGORITHM,
261    value: param.HksKeyAlg.HKS_ALG_HMAC,
262  },
263  HuksKeyPurposeECDH: {
264    tag: param.HksTag.HKS_TAG_PURPOSE,
265    value: param.HksKeyPurpose.HKS_KEY_PURPOSE_AGREE,
266  },
267  HuksKeyPurposeDERIVE: {
268    tag: param.HksTag.HKS_TAG_PURPOSE,
269    value: param.HksKeyPurpose.HKS_KEY_PURPOSE_DERIVE,
270  },
271  HuksKeyPurposeMAC: {
272    tag: param.HksTag.HKS_TAG_PURPOSE,
273    value: param.HksKeyPurpose.HKS_KEY_PURPOSE_MAC,
274  },
275  HuksKeyPurposeENCRYPTDECRYPT: {
276    tag: param.HksTag.HKS_TAG_PURPOSE,
277    value: param.HksKeyPurpose.HKS_KEY_PURPOSE_ENCRYPT | param.HksKeyPurpose.HKS_KEY_PURPOSE_DECRYPT,
278  },
279};
280
281let HuksKeyAlgX25519 = {
282  HuksKeyAlgX25519: {
283    tag: param.HksTag.HKS_TAG_ALGORITHM,
284    value: param.HksKeyAlg.HKS_ALG_X25519,
285  },
286  HuksKeyPurposeAGREE: {
287    tag: param.HksTag.HKS_TAG_PURPOSE,
288    value: param.HksKeyPurpose.HKS_KEY_PURPOSE_AGREE,
289  },
290  HuksKeyCURVE25519Size256: {
291    tag: param.HksTag.HKS_TAG_KEY_SIZE,
292    value: param.HksKeySize.HKS_CURVE25519_KEY_SIZE_256,
293  },
294  HuksKeyBLOCKMODE: {
295    tag: param.HksTag.HKS_TAG_BLOCK_MODE,
296    value: param.HksCipherMode.HKS_MODE_CBC,
297  },
298  HuksKeyPADDING: {
299    tag: param.HksTag.HKS_TAG_PADDING,
300    value: param.HksKeyPadding.HKS_PADDING_NONE,
301  },
302  HuksKeyDIGEST: {
303    tag: param.HksTag.HKS_TAG_DIGEST,
304    value: param.HksKeyDigest.HKS_DIGEST_NONE,
305  },
306  HuksKeySTORAGE: {
307    tag: param.HksTag.HKS_TAG_KEY_STORAGE_FLAG,
308    value: param.HksKeyStorageType.HKS_STORAGE_PERSISTENT,
309  },
310  HuksKeyISKEYALIAS: { tag: param.HksTag.HKS_TAG_IS_KEY_ALIAS, value: true },
311  HuksKeyDIGESTNONE: {
312    tag: param.HksTag.HKS_TAG_DIGEST,
313    value: param.HksKeyDigest.HKS_DIGEST_NONE,
314  },
315  HuksKeyDIGESTSHA1: {
316    tag: param.HksTag.HKS_TAG_DIGEST,
317    value: param.HksKeyDigest.HKS_DIGEST_SHA1,
318  },
319  HuksKeyDIGESTSHA224: {
320    tag: param.HksTag.HKS_TAG_DIGEST,
321    value: param.HksKeyDigest.HKS_DIGEST_SHA224,
322  },
323  HuksKeyDIGESTSHA256: {
324    tag: param.HksTag.HKS_TAG_DIGEST,
325    value: param.HksKeyDigest.HKS_DIGEST_SHA256,
326  },
327  HuksKeyDIGESTSHA384: {
328    tag: param.HksTag.HKS_TAG_DIGEST,
329    value: param.HksKeyDigest.HKS_DIGEST_SHA384,
330  },
331  HuksKeyDIGESTSHA512: {
332    tag: param.HksTag.HKS_TAG_DIGEST,
333    value: param.HksKeyDigest.HKS_DIGEST_SHA512,
334  },
335  HuksKeyPADDINGNONE: {
336    tag: param.HksTag.HKS_TAG_PADDING,
337    value: param.HksKeyPadding.HKS_PADDING_NONE,
338  },
339  HuksKeyPADDINGPKCS7: {
340    tag: param.HksTag.HKS_TAG_PADDING,
341    value: param.HksKeyPadding.HKS_PADDING_PKCS7,
342  },
343  HuksKeyBLOCKMODECBC: {
344    tag: param.HksTag.HKS_TAG_BLOCK_MODE,
345    value: param.HksCipherMode.HKS_MODE_CBC,
346  },
347  HuksKeyBLOCKMODECCM: {
348    tag: param.HksTag.HKS_TAG_BLOCK_MODE,
349    value: param.HksCipherMode.HKS_MODE_CCM,
350  },
351  HuksKeyBLOCKMODEECB: {
352    tag: param.HksTag.HKS_TAG_BLOCK_MODE,
353    value: param.HksCipherMode.HKS_MODE_ECB,
354  },
355  HuksKeyBLOCKMODECTR: {
356    tag: param.HksTag.HKS_TAG_BLOCK_MODE,
357    value: param.HksCipherMode.HKS_MODE_CTR,
358  },
359  HuksKeyBLOCKMODEGCM: {
360    tag: param.HksTag.HKS_TAG_BLOCK_MODE,
361    value: param.HksCipherMode.HKS_MODE_GCM,
362  },
363  HuksKeyALGORITHMAES: {
364    tag: param.HksTag.HKS_TAG_ALGORITHM,
365    value: param.HksKeyAlg.HKS_ALG_AES,
366  },
367  HuksKeyALGORITHMHMAC: {
368    tag: param.HksTag.HKS_TAG_ALGORITHM,
369    value: param.HksKeyAlg.HKS_ALG_HMAC,
370  },
371  HuksKeySIZE256: {
372    tag: param.HksTag.HKS_TAG_KEY_SIZE,
373    value: param.HksKeySize.HKS_DH_KEY_SIZE_256,
374  },
375  HuksKeySIZE128: {
376    tag: param.HksTag.HKS_TAG_KEY_SIZE,
377    value: param.HksKeySize.HKS_DH_KEY_SIZE_128,
378  },
379  HuksKeySIZE192: {
380    tag: param.HksTag.HKS_TAG_KEY_SIZE,
381    value: param.HksKeySize.HKS_DH_KEY_SIZE_192,
382  },
383  HuksKeyAlgDH: {
384    tag: param.HksTag.HKS_TAG_ALGORITHM,
385    value: param.HksKeyAlg.HKS_ALG_DH,
386  },
387  HuksKeyAlgAES: {
388    tag: param.HksTag.HKS_TAG_ALGORITHM,
389    value: param.HksKeyAlg.HKS_ALG_AES,
390  },
391  HuksKeyAlgHMAC: {
392    tag: param.HksTag.HKS_TAG_ALGORITHM,
393    value: param.HksKeyAlg.HKS_ALG_HMAC,
394  },
395  HuksKeyPurposeDERIVE: {
396    tag: param.HksTag.HKS_TAG_PURPOSE,
397    value: param.HksKeyPurpose.HKS_KEY_PURPOSE_DERIVE,
398  },
399  HuksKeyPurposeMAC: {
400    tag: param.HksTag.HKS_TAG_PURPOSE,
401    value: param.HksKeyPurpose.HKS_KEY_PURPOSE_MAC,
402  },
403  HuksKeyPurposeENCRYPTDECRYPT: {
404    tag: param.HksTag.HKS_TAG_PURPOSE,
405    value: param.HksKeyPurpose.HKS_KEY_PURPOSE_ENCRYPT | param.HksKeyPurpose.HKS_KEY_PURPOSE_DECRYPT,
406  },
407  HuksKeyPurposeX25519: {
408    tag: param.HksTag.HKS_TAG_PURPOSE,
409    value: param.HksKeyPurpose.HKS_KEY_PURPOSE_AGREE,
410  },
411  HuksKeyDHSize2048: {
412    tag: param.HksTag.HKS_TAG_KEY_SIZE,
413    value: param.HksKeySize.HKS_DH_KEY_SIZE_2048,
414  },
415  HuksKeyDHSize3072: {
416    tag: param.HksTag.HKS_TAG_KEY_SIZE,
417    value: param.HksKeySize.HKS_DH_KEY_SIZE_3072,
418  },
419  HuksKeyDHSize4096: {
420    tag: param.HksTag.HKS_TAG_KEY_SIZE,
421    value: param.HksKeySize.HKS_DH_KEY_SIZE_4096,
422  },
423};
424export { HuksAgreeDH, HuksAgreeECDH, HuksKeyAlgX25519 };
425