• 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 HuksDeriveHKDF = {
18  HuksKeySIZE: {
19    tag: param.HksTag.HKS_TAG_KEY_SIZE,
20    value: param.HksKeySize.HKS_AES_KEY_SIZE_512,
21  },
22  HuksKeyAlgHKDF: {
23    tag: param.HksTag.HKS_TAG_ALGORITHM,
24    value: param.HksKeyAlg.HKS_ALG_HKDF,
25  },
26  HuksKeyAlgAES: {
27    tag: param.HksTag.HKS_TAG_ALGORITHM,
28    value: param.HksKeyAlg.HKS_ALG_AES,
29  },
30  HuksKeyPurposeHKDF: {
31    tag: param.HksTag.HKS_TAG_PURPOSE,
32    value: param.HksKeyPurpose.HKS_KEY_PURPOSE_DERIVE,
33  },
34  HuksTagHKDFDigestSHA256: {
35    tag: param.HksTag.HKS_TAG_DIGEST,
36    value: param.HksKeyDigest.HKS_DIGEST_SHA256,
37  },
38  HuksTagHKDFDigestSHA384: {
39    tag: param.HksTag.HKS_TAG_DIGEST,
40    value: param.HksKeyDigest.HKS_DIGEST_SHA384,
41  },
42  HuksTagHKDFDigestSHA512: {
43    tag: param.HksTag.HKS_TAG_DIGEST,
44    value: param.HksKeyDigest.HKS_DIGEST_SHA512,
45  },
46  HuksKeyHKDFSize128: {
47    tag: param.HksTag.HKS_TAG_KEY_SIZE,
48    value: param.HksKeySize.HKS_AES_KEY_SIZE_128,
49  },
50  HuksKeyHKDFSize192: {
51    tag: param.HksTag.HKS_TAG_KEY_SIZE,
52    value: param.HksKeySize.HKS_AES_KEY_SIZE_192,
53  },
54  HuksKeyHKDFSize256: {
55    tag: param.HksTag.HKS_TAG_KEY_SIZE,
56    value: param.HksKeySize.HKS_AES_KEY_SIZE_256,
57  },
58  HuksKeyDERIVEKEYSIZE: {
59    tag: param.HksTag.HKS_TAG_DERIVE_KEY_SIZE,
60    value: param.HksKeySize.DERIVE_KEY_SIZE_32,
61  },
62
63  HuksKeyISKEYALIAS: { tag: param.HksTag.HKS_TAG_IS_KEY_ALIAS, value: true },
64  HuksKeySTORAGE: {
65    tag: param.HksTag.HKS_TAG_KEY_STORAGE_FLAG,
66    value: param.HksKeyStorageType.HKS_STORAGE_PERSISTENT,
67  },
68  HuksKeyALGORITHMAES: {
69    tag: param.HksTag.HKS_TAG_ALGORITHM,
70    value: param.HksKeyAlg.HKS_ALG_AES,
71  },
72  HuksKeyALGORITHMHMAC: {
73    tag: param.HksTag.HKS_TAG_ALGORITHM,
74    value: param.HksKeyAlg.HKS_ALG_HMAC,
75  },
76  HuksKeySIZE256: {
77    tag: param.HksTag.HKS_TAG_KEY_SIZE,
78    value: param.HksKeySize.HKS_AES_KEY_SIZE_256,
79  },
80  HuksKeySIZE128: {
81    tag: param.HksTag.HKS_TAG_KEY_SIZE,
82    value: param.HksKeySize.HKS_AES_KEY_SIZE_128,
83  },
84  HuksKeySIZE192: {
85    tag: param.HksTag.HKS_TAG_KEY_SIZE,
86    value: param.HksKeySize.HKS_AES_KEY_SIZE_192,
87  },
88  HuksKeyPurposeDERIVE: {
89    tag: param.HksTag.HKS_TAG_PURPOSE,
90    value: param.HksKeyPurpose.HKS_KEY_PURPOSE_DERIVE,
91  },
92  HuksKeyPurposeMAC: {
93    tag: param.HksTag.HKS_TAG_PURPOSE,
94    value: param.HksKeyPurpose.HKS_KEY_PURPOSE_MAC,
95  },
96  HuksKeyPurposeENCRYPTDECRYPT: {
97    tag: param.HksTag.HKS_TAG_PURPOSE,
98    value: param.HksKeyPurpose.HKS_KEY_PURPOSE_ENCRYPT | param.HksKeyPurpose.HKS_KEY_PURPOSE_DECRYPT,
99  },
100  HuksKeyPADDINGNONE: {
101    tag: param.HksTag.HKS_TAG_PADDING,
102    value: param.HksKeyPadding.HKS_PADDING_NONE,
103  },
104  HuksKeyPADDINGPKCS7: {
105    tag: param.HksTag.HKS_TAG_PADDING,
106    value: param.HksKeyPadding.HKS_PADDING_PKCS7,
107  },
108  HuksKeyDIGESTNONE: {
109    tag: param.HksTag.HKS_TAG_DIGEST,
110    value: param.HksKeyDigest.HKS_DIGEST_NONE,
111  },
112  HuksKeyDIGESTSHA1: {
113    tag: param.HksTag.HKS_TAG_DIGEST,
114    value: param.HksKeyDigest.HKS_DIGEST_SHA1,
115  },
116  HuksKeyDIGESTSHA224: {
117    tag: param.HksTag.HKS_TAG_DIGEST,
118    value: param.HksKeyDigest.HKS_DIGEST_SHA224,
119  },
120  HuksKeyDIGESTSHA256: {
121    tag: param.HksTag.HKS_TAG_DIGEST,
122    value: param.HksKeyDigest.HKS_DIGEST_SHA256,
123  },
124  HuksKeyDIGESTSHA384: {
125    tag: param.HksTag.HKS_TAG_DIGEST,
126    value: param.HksKeyDigest.HKS_DIGEST_SHA384,
127  },
128  HuksKeyDIGESTSHA512: {
129    tag: param.HksTag.HKS_TAG_DIGEST,
130    value: param.HksKeyDigest.HKS_DIGEST_SHA512,
131  },
132  HuksKeyBLOCKMODECBC: {
133    tag: param.HksTag.HKS_TAG_BLOCK_MODE,
134    value: param.HksCipherMode.HKS_MODE_CBC,
135  },
136  HuksKeyBLOCKMODECCM: {
137    tag: param.HksTag.HKS_TAG_BLOCK_MODE,
138    value: param.HksCipherMode.HKS_MODE_CCM,
139  },
140  HuksKeyBLOCKMODEECB: {
141    tag: param.HksTag.HKS_TAG_BLOCK_MODE,
142    value: param.HksCipherMode.HKS_MODE_ECB,
143  },
144  HuksKeyBLOCKMODECTR: {
145    tag: param.HksTag.HKS_TAG_BLOCK_MODE,
146    value: param.HksCipherMode.HKS_MODE_CTR,
147  },
148  HuksKeyBLOCKMODEGCM: {
149    tag: param.HksTag.HKS_TAG_BLOCK_MODE,
150    value: param.HksCipherMode.HKS_MODE_GCM,
151  },
152};
153
154let HuksDerivePBKDF2 = {
155  HuksKeySIZE: {
156    tag: param.HksTag.HKS_TAG_KEY_SIZE,
157    value: param.HksKeySize.HKS_AES_KEY_SIZE_512,
158  },
159  HuksKeyAlgPBKDF2: {
160    tag: param.HksTag.HKS_TAG_ALGORITHM,
161    value: param.HksKeyAlg.HKS_ALG_PBKDF2,
162  },
163  HuksKeyAlgAES: {
164    tag: param.HksTag.HKS_TAG_ALGORITHM,
165    value: param.HksKeyAlg.HKS_ALG_AES,
166  },
167  HuksKeyPurposePBKDF2: {
168    tag: param.HksTag.HKS_TAG_PURPOSE,
169    value: param.HksKeyPurpose.HKS_KEY_PURPOSE_DERIVE,
170  },
171  HuksTagPBKDF2DigestSHA256: {
172    tag: param.HksTag.HKS_TAG_DIGEST,
173    value: param.HksKeyDigest.HKS_DIGEST_SHA256,
174  },
175  HuksTagPBKDF2DigestSHA384: {
176    tag: param.HksTag.HKS_TAG_DIGEST,
177    value: param.HksKeyDigest.HKS_DIGEST_SHA384,
178  },
179  HuksTagPBKDF2DigestSHA512: {
180    tag: param.HksTag.HKS_TAG_DIGEST,
181    value: param.HksKeyDigest.HKS_DIGEST_SHA512,
182  },
183  HuksKeyPBKDF2Size128: {
184    tag: param.HksTag.HKS_TAG_KEY_SIZE,
185    value: param.HksKeySize.HKS_AES_KEY_SIZE_128,
186  },
187  HuksKeyPBKDF2Size192: {
188    tag: param.HksTag.HKS_TAG_KEY_SIZE,
189    value: param.HksKeySize.HKS_AES_KEY_SIZE_192,
190  },
191  HuksKeyPBKDF2Size256: {
192    tag: param.HksTag.HKS_TAG_KEY_SIZE,
193    value: param.HksKeySize.HKS_AES_KEY_SIZE_256,
194  },
195  HuksKeyDERIVEKEYSIZE: {
196    tag: param.HksTag.HKS_TAG_DERIVE_KEY_SIZE,
197    value: param.HksKeySize.DERIVE_KEY_SIZE_32,
198  },
199
200  HuksKeyISKEYALIAS: { tag: param.HksTag.HKS_TAG_IS_KEY_ALIAS, value: true },
201  HuksKeySTORAGE: {
202    tag: param.HksTag.HKS_TAG_KEY_STORAGE_FLAG,
203    value: param.HksKeyStorageType.HKS_STORAGE_PERSISTENT,
204  },
205  HuksKeyALGORITHMAES: {
206    tag: param.HksTag.HKS_TAG_ALGORITHM,
207    value: param.HksKeyAlg.HKS_ALG_AES,
208  },
209  HuksKeyALGORITHMHMAC: {
210    tag: param.HksTag.HKS_TAG_ALGORITHM,
211    value: param.HksKeyAlg.HKS_ALG_HMAC,
212  },
213  HuksKeySIZE256: {
214    tag: param.HksTag.HKS_TAG_KEY_SIZE,
215    value: param.HksKeySize.HKS_AES_KEY_SIZE_256,
216  },
217  HuksKeySIZE128: {
218    tag: param.HksTag.HKS_TAG_KEY_SIZE,
219    value: param.HksKeySize.HKS_AES_KEY_SIZE_128,
220  },
221  HuksKeySIZE192: {
222    tag: param.HksTag.HKS_TAG_KEY_SIZE,
223    value: param.HksKeySize.HKS_AES_KEY_SIZE_192,
224  },
225  HuksKeyPurposeDERIVE: {
226    tag: param.HksTag.HKS_TAG_PURPOSE,
227    value: param.HksKeyPurpose.HKS_KEY_PURPOSE_DERIVE,
228  },
229  HuksKeyPurposeMAC: {
230    tag: param.HksTag.HKS_TAG_PURPOSE,
231    value: param.HksKeyPurpose.HKS_KEY_PURPOSE_MAC,
232  },
233  HuksKeyPurposeENCRYPTDECRYPT: {
234    tag: param.HksTag.HKS_TAG_PURPOSE,
235    value: param.HksKeyPurpose.HKS_KEY_PURPOSE_ENCRYPT | param.HksKeyPurpose.HKS_KEY_PURPOSE_DECRYPT,
236  },
237  HuksKeyPADDINGNONE: {
238    tag: param.HksTag.HKS_TAG_PADDING,
239    value: param.HksKeyPadding.HKS_PADDING_NONE,
240  },
241  HuksKeyPADDINGPKCS7: {
242    tag: param.HksTag.HKS_TAG_PADDING,
243    value: param.HksKeyPadding.HKS_PADDING_PKCS7,
244  },
245  HuksKeyDIGESTNONE: {
246    tag: param.HksTag.HKS_TAG_DIGEST,
247    value: param.HksKeyDigest.HKS_DIGEST_NONE,
248  },
249  HuksKeyDIGESTSHA1: {
250    tag: param.HksTag.HKS_TAG_DIGEST,
251    value: param.HksKeyDigest.HKS_DIGEST_SHA1,
252  },
253  HuksKeyDIGESTSHA224: {
254    tag: param.HksTag.HKS_TAG_DIGEST,
255    value: param.HksKeyDigest.HKS_DIGEST_SHA224,
256  },
257  HuksKeyDIGESTSHA256: {
258    tag: param.HksTag.HKS_TAG_DIGEST,
259    value: param.HksKeyDigest.HKS_DIGEST_SHA256,
260  },
261  HuksKeyDIGESTSHA384: {
262    tag: param.HksTag.HKS_TAG_DIGEST,
263    value: param.HksKeyDigest.HKS_DIGEST_SHA384,
264  },
265  HuksKeyDIGESTSHA512: {
266    tag: param.HksTag.HKS_TAG_DIGEST,
267    value: param.HksKeyDigest.HKS_DIGEST_SHA512,
268  },
269  HuksKeyBLOCKMODECBC: {
270    tag: param.HksTag.HKS_TAG_BLOCK_MODE,
271    value: param.HksCipherMode.HKS_MODE_CBC,
272  },
273  HuksKeyBLOCKMODECCM: {
274    tag: param.HksTag.HKS_TAG_BLOCK_MODE,
275    value: param.HksCipherMode.HKS_MODE_CCM,
276  },
277  HuksKeyBLOCKMODEECB: {
278    tag: param.HksTag.HKS_TAG_BLOCK_MODE,
279    value: param.HksCipherMode.HKS_MODE_ECB,
280  },
281  HuksKeyBLOCKMODECTR: {
282    tag: param.HksTag.HKS_TAG_BLOCK_MODE,
283    value: param.HksCipherMode.HKS_MODE_CTR,
284  },
285  HuksKeyBLOCKMODEGCM: {
286    tag: param.HksTag.HKS_TAG_BLOCK_MODE,
287    value: param.HksCipherMode.HKS_MODE_GCM,
288  },
289};
290
291export { HuksDeriveHKDF, HuksDerivePBKDF2 };
292