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'; 16let DSA_COMMON_SIZE = 1024; 17let HuksSignVerifyDSA = { 18 HuksTagDSACOMMONSIZE: { 19 tag: param.HksTag.HKS_TAG_KEY_SIZE, 20 value: DSA_COMMON_SIZE, 21 }, 22 HuksKeySIZE: { 23 tag: param.HksTag.HKS_TAG_KEY_SIZE, 24 value: param.HksKeySize.HKS_DSA_KEY_SIZE_512, 25 }, 26 HuksKeySIZE1024: { 27 tag: param.HksTag.HKS_TAG_KEY_SIZE, 28 value: param.HksKeySize.HKS_DSA_KEY_SIZE_1024, 29 }, 30 HuksKeyAlgDSA: { 31 tag: param.HksTag.HKS_TAG_ALGORITHM, 32 value: param.HksKeyAlg.HKS_ALG_DSA, 33 }, 34 HuksKeyDSAPurposeSIGN: { 35 tag: param.HksTag.HKS_TAG_PURPOSE, 36 value: param.HksKeyPurpose.HKS_KEY_PURPOSE_SIGN, 37 }, 38 HuksKeyDSAPurposeVERIFY: { 39 tag: param.HksTag.HKS_TAG_PURPOSE, 40 value: param.HksKeyPurpose.HKS_KEY_PURPOSE_VERIFY, 41 }, 42 HuksTagDSADigestSHA1: { 43 tag: param.HksTag.HKS_TAG_DIGEST, 44 value: param.HksKeyDigest.HKS_DIGEST_SHA1, 45 }, 46 HuksTagDSADigestSHA224: { 47 tag: param.HksTag.HKS_TAG_DIGEST, 48 value: param.HksKeyDigest.HKS_DIGEST_SHA224, 49 }, 50 HuksTagDSADigestSHA256: { 51 tag: param.HksTag.HKS_TAG_DIGEST, 52 value: param.HksKeyDigest.HKS_DIGEST_SHA256, 53 }, 54 HuksTagDSADigestSHA384: { 55 tag: param.HksTag.HKS_TAG_DIGEST, 56 value: param.HksKeyDigest.HKS_DIGEST_SHA384, 57 }, 58 HuksTagDSADigestSHA512: { 59 tag: param.HksTag.HKS_TAG_DIGEST, 60 value: param.HksKeyDigest.HKS_DIGEST_SHA512, 61 }, 62 HuksKeyRSAPurposeSINGVERIFY: { 63 tag: param.HksTag.HKS_TAG_PURPOSE, 64 value: param.HksKeyPurpose.HKS_KEY_PURPOSE_SIGN | param.HksKeyPurpose.HKS_KEY_PURPOSE_VERIFY, 65 }, 66}; 67 68let HuksSignVerifyECC = { 69 HuksKeySIZE: { 70 tag: param.HksTag.HKS_TAG_KEY_SIZE, 71 value: param.HksKeySize.HKS_ECC_KEY_SIZE_521, 72 }, 73 HuksKeyAlgECC: { 74 tag: param.HksTag.HKS_TAG_ALGORITHM, 75 value: param.HksKeyAlg.HKS_ALG_ECC, 76 }, 77 HuksKeyECCPurposeSIGN: { 78 tag: param.HksTag.HKS_TAG_PURPOSE, 79 value: param.HksKeyPurpose.HKS_KEY_PURPOSE_SIGN, 80 }, 81 HuksKeyECCPurposeVERIFY: { 82 tag: param.HksTag.HKS_TAG_PURPOSE, 83 value: param.HksKeyPurpose.HKS_KEY_PURPOSE_VERIFY, 84 }, 85 HuksTagECCDigestNONE: { 86 tag: param.HksTag.HKS_TAG_DIGEST, 87 value: param.HksKeyDigest.HKS_DIGEST_NONE, 88 }, 89 HuksTagECCDigestSHA1: { 90 tag: param.HksTag.HKS_TAG_DIGEST, 91 value: param.HksKeyDigest.HKS_DIGEST_SHA1, 92 }, 93 HuksTagECCDigestSHA224: { 94 tag: param.HksTag.HKS_TAG_DIGEST, 95 value: param.HksKeyDigest.HKS_DIGEST_SHA224, 96 }, 97 HuksTagECCDigestSHA256: { 98 tag: param.HksTag.HKS_TAG_DIGEST, 99 value: param.HksKeyDigest.HKS_DIGEST_SHA256, 100 }, 101 HuksTagECCDigestSHA384: { 102 tag: param.HksTag.HKS_TAG_DIGEST, 103 value: param.HksKeyDigest.HKS_DIGEST_SHA384, 104 }, 105 HuksTagECCDigestSHA512: { 106 tag: param.HksTag.HKS_TAG_DIGEST, 107 value: param.HksKeyDigest.HKS_DIGEST_SHA512, 108 }, 109 HuksKeyECCSize224: { 110 tag: param.HksTag.HKS_TAG_KEY_SIZE, 111 value: param.HksKeySize.HKS_ECC_KEY_SIZE_224, 112 }, 113 HuksKeyECCSize256: { 114 tag: param.HksTag.HKS_TAG_KEY_SIZE, 115 value: param.HksKeySize.HKS_ECC_KEY_SIZE_256, 116 }, 117 HuksKeyECCSize384: { 118 tag: param.HksTag.HKS_TAG_KEY_SIZE, 119 value: param.HksKeySize.HKS_ECC_KEY_SIZE_384, 120 }, 121 HuksKeyECCSize521: { 122 tag: param.HksTag.HKS_TAG_KEY_SIZE, 123 value: param.HksKeySize.HKS_ECC_KEY_SIZE_521, 124 }, 125 HuksKeyECCPurposeSINGVERIFY: { 126 tag: param.HksTag.HKS_TAG_PURPOSE, 127 value: param.HksKeyPurpose.HKS_KEY_PURPOSE_SIGN | param.HksKeyPurpose.HKS_KEY_PURPOSE_VERIFY, 128 }, 129}; 130 131let HuksSignVerifyED25519 = { 132 HuksKeySIZE: { 133 tag: param.HksTag.HKS_TAG_KEY_SIZE, 134 value: param.HksKeySize.HKS_ED25519_KEY_SIZE_512, 135 }, 136 HuksKeyAlgED25519: { 137 tag: param.HksTag.HKS_TAG_ALGORITHM, 138 value: param.HksKeyAlg.HKS_ALG_ED25519, 139 }, 140 HuksKeyED25519Size256: { 141 tag: param.HksTag.HKS_TAG_KEY_SIZE, 142 value: param.HksKeySize.HKS_CURVE25519_KEY_SIZE_256, 143 }, 144 HuksKeyED25519PurposeSIGN: { 145 tag: param.HksTag.HKS_TAG_PURPOSE, 146 value: param.HksKeyPurpose.HKS_KEY_PURPOSE_SIGN, 147 }, 148 HuksKeyED25519PurposeVERIFY: { 149 tag: param.HksTag.HKS_TAG_PURPOSE, 150 value: param.HksKeyPurpose.HKS_KEY_PURPOSE_VERIFY, 151 }, 152 HuksKeyRSAPurposeSINGVERIFY: { 153 tag: param.HksTag.HKS_TAG_PURPOSE, 154 value: param.HksKeyPurpose.HKS_KEY_PURPOSE_SIGN | param.HksKeyPurpose.HKS_KEY_PURPOSE_VERIFY, 155 }, 156 HuksTagDigestSHA1: { 157 tag: param.HksTag.HKS_TAG_DIGEST, 158 value: param.HksKeyDigest.HKS_DIGEST_SHA1, 159 }, 160 HuksTagDigestSHA256: { 161 tag: param.HksTag.HKS_TAG_DIGEST, 162 value: param.HksKeyDigest.HKS_DIGEST_SHA256, 163 }, 164}; 165 166let HuksSignVerifyRSA = { 167 HuksKeySIZE: { 168 tag: param.HksTag.HKS_TAG_KEY_SIZE, 169 value: param.HksKeySize.HKS_RSA_KEY_SIZE_512, 170 }, 171 HuksKeyAlgRSA: { 172 tag: param.HksTag.HKS_TAG_ALGORITHM, 173 value: param.HksKeyAlg.HKS_ALG_RSA, 174 }, 175 HuksKeyRSASize512: { 176 tag: param.HksTag.HKS_TAG_KEY_SIZE, 177 value: param.HksKeySize.HKS_RSA_KEY_SIZE_512, 178 }, 179 HuksKeyRSASize768: { 180 tag: param.HksTag.HKS_TAG_KEY_SIZE, 181 value: param.HksKeySize.HKS_RSA_KEY_SIZE_768, 182 }, 183 HuksKeyRSASize1024: { 184 tag: param.HksTag.HKS_TAG_KEY_SIZE, 185 value: param.HksKeySize.HKS_RSA_KEY_SIZE_1024, 186 }, 187 HuksKeyRSASize2048: { 188 tag: param.HksTag.HKS_TAG_KEY_SIZE, 189 value: param.HksKeySize.HKS_RSA_KEY_SIZE_2048, 190 }, 191 HuksKeyRSASize3072: { 192 tag: param.HksTag.HKS_TAG_KEY_SIZE, 193 value: param.HksKeySize.HKS_RSA_KEY_SIZE_3072, 194 }, 195 HuksKeyRSASize4096: { 196 tag: param.HksTag.HKS_TAG_KEY_SIZE, 197 value: param.HksKeySize.HKS_RSA_KEY_SIZE_4096, 198 }, 199 HuksKeyRSAPurposeSIGN: { 200 tag: param.HksTag.HKS_TAG_PURPOSE, 201 value: param.HksKeyPurpose.HKS_KEY_PURPOSE_SIGN, 202 }, 203 HuksKeyRSAPurposeVERIFY: { 204 tag: param.HksTag.HKS_TAG_PURPOSE, 205 value: param.HksKeyPurpose.HKS_KEY_PURPOSE_VERIFY, 206 }, 207 HuksKeyRSAPurposeSINGVERIFY: { 208 tag: param.HksTag.HKS_TAG_PURPOSE, 209 value: param.HksKeyPurpose.HKS_KEY_PURPOSE_SIGN | param.HksKeyPurpose.HKS_KEY_PURPOSE_VERIFY, 210 }, 211 HuksKeyRSAPADDINGPKCS1V15: { 212 tag: param.HksTag.HKS_TAG_PADDING, 213 value: param.HksKeyPadding.HKS_PADDING_PKCS1_V1_5, 214 }, 215 HuksKeyRSAPADDINGPSS: { 216 tag: param.HksTag.HKS_TAG_PADDING, 217 value: param.HksKeyPadding.HKS_PADDING_PSS, 218 }, 219 HuksTagPKCS1DigestMD5: { 220 tag: param.HksTag.HKS_TAG_DIGEST, 221 value: param.HksKeyDigest.HKS_DIGEST_MD5, 222 }, 223 HuksTagPKCS1DigestNONE: { 224 tag: param.HksTag.HKS_TAG_DIGEST, 225 value: param.HksKeyDigest.HKS_DIGEST_NONE, 226 }, 227 HuksTagPKCS1DigestSHA1: { 228 tag: param.HksTag.HKS_TAG_DIGEST, 229 value: param.HksKeyDigest.HKS_DIGEST_SHA1, 230 }, 231 HuksTagPKCS1DigestSHA224: { 232 tag: param.HksTag.HKS_TAG_DIGEST, 233 value: param.HksKeyDigest.HKS_DIGEST_SHA224, 234 }, 235 HuksTagPKCS1DigestSHA256: { 236 tag: param.HksTag.HKS_TAG_DIGEST, 237 value: param.HksKeyDigest.HKS_DIGEST_SHA256, 238 }, 239 HuksTagPKCS1DigestSHA384: { 240 tag: param.HksTag.HKS_TAG_DIGEST, 241 value: param.HksKeyDigest.HKS_DIGEST_SHA384, 242 }, 243 HuksTagPKCS1DigestSHA512: { 244 tag: param.HksTag.HKS_TAG_DIGEST, 245 value: param.HksKeyDigest.HKS_DIGEST_SHA512, 246 }, 247 HuksTagPSSDigestSHA1: { 248 tag: param.HksTag.HKS_TAG_DIGEST, 249 value: param.HksKeyDigest.HKS_DIGEST_SHA1, 250 }, 251 HuksTagPSSDigestSHA224: { 252 tag: param.HksTag.HKS_TAG_DIGEST, 253 value: param.HksKeyDigest.HKS_DIGEST_SHA224, 254 }, 255 HuksTagPSSDigestSHA256: { 256 tag: param.HksTag.HKS_TAG_DIGEST, 257 value: param.HksKeyDigest.HKS_DIGEST_SHA256, 258 }, 259 HuksTagPSSDigestSHA384: { 260 tag: param.HksTag.HKS_TAG_DIGEST, 261 value: param.HksKeyDigest.HKS_DIGEST_SHA384, 262 }, 263 HuksTagPSSDigestSHA512: { 264 tag: param.HksTag.HKS_TAG_DIGEST, 265 value: param.HksKeyDigest.HKS_DIGEST_SHA512, 266 }, 267}; 268let HuksSignVerifySM2 = { 269 HuksKeySize256: { 270 tag: param.HksTag.HKS_TAG_KEY_SIZE, 271 value: param.HksKeySize.HKS_SM2_KEY_SIZE_256, 272 }, 273 HuksKeyAlgSM2: { 274 tag: param.HksTag.HKS_TAG_ALGORITHM, 275 value: param.HksKeyAlg.HKS_ALG_SM2, 276 }, 277 HuksKeySM2PurposeSIGN: { 278 tag: param.HksTag.HKS_TAG_PURPOSE, 279 value: param.HksKeyPurpose.HKS_KEY_PURPOSE_SIGN, 280 }, 281 HuksKeySM2PurposeVERIFY: { 282 tag: param.HksTag.HKS_TAG_PURPOSE, 283 value: param.HksKeyPurpose.HKS_KEY_PURPOSE_VERIFY, 284 }, 285 HuksTagSM2DigestSM3: { 286 tag: param.HksTag.HKS_TAG_DIGEST, 287 value: param.HksKeyDigest.HKS_DIGEST_SM3, 288 }, 289 HuksKeySM2PurposeSINGVERIFY: { 290 tag: param.HksTag.HKS_TAG_PURPOSE, 291 value: 292 param.HksKeyPurpose.HKS_KEY_PURPOSE_SIGN | 293 param.HksKeyPurpose.HKS_KEY_PURPOSE_VERIFY, 294 }, 295}; 296export { HuksSignVerifyRSA, HuksSignVerifyDSA, HuksSignVerifyECC, HuksSignVerifyED25519 ,HuksSignVerifySM2}; 297