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