• 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 */
15let HksKeyAlg = {
16  HKS_ALG_ECDH: 100,
17  HKS_ALG_ECC: 2,
18  HKS_ALG_DH: 103,
19  HKS_ALG_AES: 20,
20  HKS_ALG_HMAC: 50,
21  HKS_ALG_X25519: 102,
22  HKS_ALG_RSA: 1,
23  HKS_ALG_PBKDF2: 52,
24  HKS_ALG_HKDF: 51,
25  HKS_ALG_DSA: 3,
26  HKS_ALG_ED25519: 102,
27};
28let HksKeyPurpose = {
29  HKS_KEY_PURPOSE_AGREE: 256,
30  HKS_KEY_PURPOSE_DERIVE: 16,
31  HKS_KEY_PURPOSE_ENCRYPT: 1,
32  HKS_KEY_PURPOSE_DECRYPT: 2,
33  HKS_KEY_PURPOSE_MAC: 128,
34  HKS_KEY_PURPOSE_SIGN: 4,
35  HKS_KEY_PURPOSE_VERIFY: 8,
36};
37let HksKeySize = {
38  HKS_ED25519_KEY_SIZE_512: 512,
39  HKS_RSA_KEY_SIZE_512: 512,
40  HKS_DH_KEY_SIZE_128: 128,
41  HKS_DH_KEY_SIZE_192: 192,
42  HKS_DH_KEY_SIZE_256: 256,
43  HKS_DH_KEY_SIZE_512: 512,
44  HKS_DH_KEY_SIZE_2048: 2048,
45  HKS_DH_KEY_SIZE_3072: 3072,
46  HKS_DH_KEY_SIZE_4096: 4096,
47  HKS_ECC_KEY_SIZE_128: 128,
48  HKS_ECC_KEY_SIZE_192: 192,
49  HKS_ECC_KEY_SIZE_224: 224,
50  HKS_ECC_KEY_SIZE_256: 256,
51  HKS_ECC_KEY_SIZE_384: 384,
52  HKS_ECC_KEY_SIZE_521: 521,
53  HKS_CURVE25519_KEY_SIZE_256: 256,
54  HKS_AES_KEY_SIZE_128: 128,
55  HKS_AES_KEY_SIZE_192: 192,
56  HKS_AES_KEY_SIZE_256: 256,
57  HKS_AES_KEY_SIZE_512: 512,
58  DERIVE_KEY_SIZE_32: 32,
59  HKS_RSA_KEY_SIZE_768: 768,
60  HKS_RSA_KEY_SIZE_1024: 1024,
61  HKS_RSA_KEY_SIZE_2048: 2048,
62  HKS_RSA_KEY_SIZE_3072: 3072,
63  HKS_RSA_KEY_SIZE_4096: 4096,
64  HKS_DSA_KEY_SIZE_512: 512,
65  HKS_DSA_KEY_SIZE_768: 768,
66  HKS_DSA_KEY_SIZE_1024: 1024,
67  HKS_DSA_KEY_SIZE_2048: 2048,
68  HKS_DSA_KEY_SIZE_3072: 3072,
69  HKS_DSA_KEY_SIZE_4096: 4096,
70};
71let HksKeyStorageType = {
72  HKS_STORAGE_TEMP: 0,
73  HKS_STORAGE_PERSISTENT: 1,
74};
75let HksTagType = {
76  HKS_TAG_TYPE_UINT: 2 << 28,
77  HKS_TAG_TYPE_BOOL: 4 << 28,
78  HKS_TAG_TYPE_BYTES: 5 << 28,
79};
80let HksKeyDigest = {
81  HKS_DIGEST_NONE: 0,
82  HKS_DIGEST_MD5: 1,
83  HKS_DIGEST_SHA1: 10,
84  HKS_DIGEST_SHA224: 11,
85  HKS_DIGEST_SHA256: 12,
86  HKS_DIGEST_SHA384: 13,
87  HKS_DIGEST_SHA512: 14,
88};
89let HksKeyPadding = {
90  HKS_PADDING_NONE: 0,
91  HKS_PADDING_OAEP: 1,
92  HKS_PADDING_PSS: 2,
93  HKS_PADDING_PKCS1_V1_5: 3,
94  HKS_PADDING_PKCS5: 4,
95  HKS_PADDING_PKCS7: 5,
96};
97let HksCipherMode = {
98  HKS_MODE_ECB: 1,
99  HKS_MODE_CBC: 2,
100  HKS_MODE_CTR: 3,
101  HKS_MODE_OFB: 4,
102  HKS_MODE_CCM: 31,
103  HKS_MODE_GCM: 32,
104};
105let HksTag = {
106  HKS_TAG_ALGORITHM: HksTagType.HKS_TAG_TYPE_UINT | 1,
107  HKS_TAG_PURPOSE: HksTagType.HKS_TAG_TYPE_UINT | 2,
108  HKS_TAG_KEY_SIZE: HksTagType.HKS_TAG_TYPE_UINT | 3,
109  HKS_TAG_DIGEST: HksTagType.HKS_TAG_TYPE_UINT | 4,
110  HKS_TAG_PADDING: HksTagType.HKS_TAG_TYPE_UINT | 5,
111  HKS_TAG_BLOCK_MODE: HksTagType.HKS_TAG_TYPE_UINT | 6,
112  HKS_TAG_KEY_STORAGE_FLAG: HksTagType.HKS_TAG_TYPE_UINT | 1002,
113  HKS_TAG_IS_KEY_ALIAS: HksTagType.HKS_TAG_TYPE_BOOL | 1001,
114  HKS_TAG_KEY_ALIAS: HksTagType.HKS_TAG_TYPE_BYTES | 23,
115  HKS_TAG_ASSOCIATED_DATA: HksTagType.HKS_TAG_TYPE_BYTES | 8,
116  HKS_TAG_NONCE: HksTagType.HKS_TAG_TYPE_BYTES | 9,
117  HKS_TAG_IV: HksTagType.HKS_TAG_TYPE_BYTES | 10,
118  HKS_TAG_AGREE_PUBLIC_KEY: HksTagType.HKS_TAG_TYPE_BYTES | 22,
119  HKS_TAG_AE_TAG: HksTagType.HKS_TAG_TYPE_BYTES | 10009,
120  HKS_TAG_DERIVE_KEY_SIZE: HksTagType.HKS_TAG_TYPE_UINT | 24,
121};
122export {
123  HksKeyPurpose,
124  HksKeyAlg,
125  HksTagType,
126  HksTag,
127  HksKeySize,
128  HksKeyDigest,
129  HksKeyStorageType,
130  HksCipherMode,
131  HksKeyPadding,
132};
133