1 /* 2 * Copyright (c) 2025-2025 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 */ 15 16 package com.ohos.hapsigntool.error; 17 18 /** 19 * SignToolErrMsg 20 * 21 * @since 2025/01/06 22 */ 23 public class SignToolErrMsg { 24 // unknown error 25 /** 26 * UNKNOWN_ERROR 27 */ 28 public static final ErrorMsg UNKNOWN_ERROR = ErrorMsg.getSignToolErrBuilder() 29 .addTypeCode("10") 30 .addErrCode("001") 31 .addDescription("Unknown error") 32 .addCause("%s") 33 .build(); 34 35 // command error 36 /** 37 * UNSUPPORTED_METHOD 38 */ 39 public static final ErrorMsg UNSUPPORTED_METHOD = ErrorMsg.getSignToolErrBuilder() 40 .addTypeCode("11") 41 .addErrCode("001") 42 .addDescription("Unsupported command method") 43 .addCause("Can not find method {%s}") 44 .addSolution("Please run java -jar hap-sign-tool.jar -h to see more help message.") 45 .build(); 46 47 /** 48 * PARAM_CHECK_FAILED 49 */ 50 public static final ErrorMsg PARAM_CHECK_FAILED = ErrorMsg.getSignToolErrBuilder() 51 .addTypeCode("11") 52 .addErrCode("002") 53 .addDescription("{%s} param is incorrect") 54 .addCause("%s") 55 .build(); 56 57 /** 58 * PARAM_NUM_ERROR 59 */ 60 public static final ErrorMsg PARAM_NUM_ERROR = ErrorMsg.getSignToolErrBuilder() 61 .addTypeCode("11") 62 .addErrCode("003") 63 .addDescription("Check param num failed") 64 .addCause("Please run java -jar hap-sign-tool.jar -h to see more help message.") 65 .build(); 66 67 /** 68 * PARAM_VALUE_EMPTY 69 */ 70 public static final ErrorMsg PARAM_VALUE_EMPTY = ErrorMsg.getSignToolErrBuilder() 71 .addTypeCode("11") 72 .addErrCode("004") 73 .addDescription("Check param failed") 74 .addCause("Param {%s} value could not be empty") 75 .build(); 76 77 /** 78 * PARAM_NOT_TRUSTED 79 */ 80 public static final ErrorMsg PARAM_NOT_TRUSTED = ErrorMsg.getSignToolErrBuilder() 81 .addTypeCode("11") 82 .addErrCode("005") 83 .addDescription("Param is not trusted") 84 .addCause("Please run java -jar hap-sign-tool.jar -h to see more help message.") 85 .build(); 86 87 /** 88 * PARAM_NOT_IN_PAIRS 89 */ 90 public static final ErrorMsg PARAM_NOT_IN_PAIRS = ErrorMsg.getSignToolErrBuilder() 91 .addTypeCode("11") 92 .addErrCode("006") 93 .addDescription("Param {-key value} must in pairs") 94 .addCause("Please run java -jar hap-sign-tool.jar -h to see more help message.") 95 .build(); 96 97 /** 98 * PARAM_DUPLICATE 99 */ 100 public static final ErrorMsg PARAM_DUPLICATE = ErrorMsg.getSignToolErrBuilder() 101 .addTypeCode("11") 102 .addErrCode("007") 103 .addDescription("Check param num failed") 104 .addCause("Param {%s} is duplicated") 105 .build(); 106 107 /** 108 * PARAM_REQUIRED 109 */ 110 public static final ErrorMsg PARAM_REQUIRED = ErrorMsg.getSignToolErrBuilder() 111 .addTypeCode("11") 112 .addErrCode("008") 113 .addDescription("Check param failed") 114 .addCause("Param {%s} is required, but can not be found") 115 .addSolution("Please input required param") 116 .build(); 117 118 /** 119 * MISSING_PARAM 120 */ 121 public static final ErrorMsg MISSING_PARAM = ErrorMsg.getSignToolErrBuilder() 122 .addTypeCode("11") 123 .addErrCode("008") 124 .addDescription("Check param failed") 125 .addCause("Missed param {%s}") 126 .build(); 127 128 // file error 129 /** 130 * LOAD_REMOTE_PLUGIN_FAILED 131 */ 132 public static final ErrorMsg LOAD_REMOTE_PLUGIN_FAILED = ErrorMsg.getSignToolErrBuilder() 133 .addTypeCode("12") 134 .addErrCode("001") 135 .addDescription("Load remote sign plugin failed") 136 .addCause("%s") 137 .build(); 138 139 /** 140 * FILE_NOT_EXIST 141 */ 142 public static final ErrorMsg FILE_NOT_EXIST = ErrorMsg.getSignToolErrBuilder() 143 .addTypeCode("12") 144 .addErrCode("002") 145 .addDescription("File not exist") 146 .addCause("Param {%s} is not exist") 147 .build(); 148 149 /** 150 * FILE_WRITE_FAILED 151 */ 152 public static final ErrorMsg FILE_WRITE_FAILED = ErrorMsg.getSignToolErrBuilder() 153 .addTypeCode("12") 154 .addErrCode("003") 155 .addDescription("Write file failed") 156 .addCause("%s") 157 .build(); 158 159 /** 160 * FILE_READ_FAILED 161 */ 162 public static final ErrorMsg FILE_READ_FAILED = ErrorMsg.getSignToolErrBuilder() 163 .addTypeCode("12") 164 .addErrCode("004") 165 .addDescription("Read file failed") 166 .addCause("Read file {%s} failed") 167 .build(); 168 169 /** 170 * NOT_SUPPORT_FILE 171 */ 172 public static final ErrorMsg NOT_SUPPORT_FILE = ErrorMsg.getSignToolErrBuilder() 173 .addTypeCode("12") 174 .addErrCode("005") 175 .addDescription("Not support file") 176 .addCause("Not support file: %s") 177 .build(); 178 179 /** 180 * FILE_IO_FAILED 181 */ 182 public static final ErrorMsg FILE_IO_FAILED = ErrorMsg.getSignToolErrBuilder() 183 .addTypeCode("12") 184 .addErrCode("006") 185 .addDescription("File IO failed") 186 .addCause("%s") 187 .build(); 188 189 // cert error 190 /** 191 * CERT_DN_FORMAT_FAILED 192 */ 193 public static final ErrorMsg CERT_DN_FORMAT_FAILED = ErrorMsg.getSignToolErrBuilder() 194 .addTypeCode("13") 195 .addErrCode("001") 196 .addDescription("Check DN format failed") 197 .addCause("Format error, must be \"X=xx,XX=xxx,...\"") 198 .addSolution("Please check param {%s}") 199 .build(); 200 201 /** 202 * CERT_FORMAT_FAILED 203 */ 204 public static final ErrorMsg CERT_FORMAT_FAILED = ErrorMsg.getSignToolErrBuilder() 205 .addTypeCode("13") 206 .addErrCode("002") 207 .addDescription("Certificate format is in correct, please check your appCertFile parameter.") 208 .addCause("%s") 209 .addSolution("{-appCertFile} should input a cert chain file,This file is usually suffixed with .cer.") 210 .build(); 211 212 /** 213 * GENERATE_CA_FAILED 214 */ 215 public static final ErrorMsg GENERATE_CA_FAILED = ErrorMsg.getSignToolErrBuilder() 216 .addTypeCode("13") 217 .addErrCode("003") 218 .addDescription("Generate CA failed") 219 .addCause("Parameter '%s' and parameter '%s' are inconsistent") 220 .build(); 221 222 /** 223 * CERT_CHAIN_FORMAT_FAILED 224 */ 225 public static final ErrorMsg CERT_CHAIN_FORMAT_FAILED = ErrorMsg.getSignToolErrBuilder() 226 .addTypeCode("13") 227 .addErrCode("004") 228 .addDescription("Profile cert must a cert chain") 229 .addCause("cause in cert file: %s") 230 .build(); 231 232 /** 233 * NO_SUCH_SIGNATURE 234 */ 235 public static final ErrorMsg NO_SUCH_SIGNATURE = ErrorMsg.getSignToolErrBuilder() 236 .addTypeCode("13") 237 .addErrCode("005") 238 .addDescription("No such algorithm") 239 .addCause("%s") 240 .build(); 241 242 /** 243 * CERT_IO_FAILED 244 */ 245 public static final ErrorMsg CERT_IO_FAILED = ErrorMsg.getSignToolErrBuilder() 246 .addTypeCode("13") 247 .addErrCode("006") 248 .addDescription("Certificate IO failed") 249 .addCause("%s") 250 .build(); 251 252 /** 253 * CERTIFICATE_ERROR 254 */ 255 public static final ErrorMsg CERTIFICATE_ERROR = ErrorMsg.getSignToolErrBuilder() 256 .addTypeCode("13") 257 .addErrCode("007") 258 .addDescription("Certificate check failed") 259 .addCause("%s") 260 .build(); 261 262 /** 263 * IO_CSR_ERROR 264 */ 265 public static final ErrorMsg IO_CSR_ERROR = ErrorMsg.getSignToolErrBuilder() 266 .addTypeCode("13") 267 .addErrCode("008") 268 .addDescription("generate csr failed") 269 .addCause("%s") 270 .build(); 271 272 // key store error 273 /** 274 * KEY_ALIAS_NOT_FOUND 275 */ 276 public static final ErrorMsg KEY_ALIAS_NOT_FOUND = ErrorMsg.getSignToolErrBuilder() 277 .addTypeCode("14") 278 .addErrCode("001") 279 .addDescription("key alias not found") 280 .addCause("KeyAlias {%s} is not exist in {%s}") 281 .addSolution("Please check keystore file and keyAlias, ensure keyAlias is exist") 282 .addSolution("Use jdk tool [keytool] check keystore: [keytool -list -keystore xxx.p12]") 283 .build(); 284 285 /** 286 * KEY_ALIAS_EXIST 287 */ 288 public static final ErrorMsg KEY_ALIAS_EXIST = ErrorMsg.getSignToolErrBuilder() 289 .addTypeCode("14") 290 .addErrCode("002") 291 .addDescription("Key alias is exist") 292 .addCause("KeyAlias {%s} is exist in {%s}, cloud not overwrite.") 293 .addSolution("Please check keystore file and keyAlias, ensure keyAlias is not exist") 294 .addSolution("Use jdk tool [keytool] check keystore: [keytool -list -keystore xxx.p12]") 295 .build(); 296 297 /** 298 * INIT_KEYSTORE_FAILED 299 */ 300 public static final ErrorMsg INIT_KEYSTORE_FAILED = ErrorMsg.getSignToolErrBuilder() 301 .addTypeCode("14") 302 .addErrCode("003") 303 .addDescription("Init keystore failed") 304 .addCause("%s") 305 .addSolution("The key store file does not exist, please check the key store file path.") 306 .addSolution("Incorrect keystore password, please input the correct plaintext password.") 307 .addSolution("The keystore was created by a newer JDK version, please use the same JDK version") 308 .build(); 309 310 /** 311 * INVALID_KEY 312 */ 313 public static final ErrorMsg INVALID_KEY = ErrorMsg.getSignToolErrBuilder() 314 .addTypeCode("14") 315 .addErrCode("004") 316 .addDescription("Invalid Key") 317 .addCause("%s") 318 .build(); 319 320 /** 321 * ALGORITHM_NOT_SUPPORT 322 */ 323 public static final ErrorMsg ALGORITHM_NOT_SUPPORT = ErrorMsg.getSignToolErrBuilder() 324 .addTypeCode("14") 325 .addErrCode("005") 326 .addDescription("Not support algorithm") 327 .addCause("%s") 328 .build(); 329 330 /** 331 * KEYSTORE_ERROR 332 */ 333 public static final ErrorMsg KEYSTORE_ERROR = ErrorMsg.getSignToolErrBuilder() 334 .addTypeCode("14") 335 .addErrCode("006") 336 .addDescription("Keystore exception") 337 .addCause("%s") 338 .build(); 339 340 /** 341 * KEY_PASSWORD_ERROR 342 */ 343 public static final ErrorMsg KEY_PASSWORD_ERROR = ErrorMsg.getSignToolErrBuilder() 344 .addTypeCode("14") 345 .addErrCode("007") 346 .addDescription("Key alias {%s} password error") 347 .addCause("%s") 348 .build(); 349 350 /** 351 * NO_USABLE_CERT 352 */ 353 public static final ErrorMsg NO_USABLE_CERT = ErrorMsg.getSignToolErrBuilder() 354 .addTypeCode("14") 355 .addErrCode("008") 356 .addDescription("No usable cert found in {%s}") 357 .addCause("MayBe the certificate in keystore is invalid.") 358 .build(); 359 360 // signature error 361 /** 362 * SIGNATURE_FAILED 363 */ 364 public static final ErrorMsg SIGNATURE_FAILED = ErrorMsg.getSignToolErrBuilder() 365 .addTypeCode("15") 366 .addErrCode("001") 367 .addDescription("Signature failed") 368 .addCause("%s") 369 .build(); 370 371 /** 372 * SIGNATURE_NOT_MATCHED 373 */ 374 public static final ErrorMsg SIGNATURE_NOT_MATCHED = ErrorMsg.getSignToolErrBuilder() 375 .addTypeCode("15") 376 .addErrCode("002") 377 .addDescription("Signature not matched!") 378 .addCause("Signature verify failed") 379 .addSolution("Please check if the keyAlias private key matches the public key in the certificate") 380 .addSolution("If the certificate is changed, the keyAlias should be replaced synchronously") 381 .build(); 382 383 /** 384 * VERIFY_FAILED 385 */ 386 public static final ErrorMsg VERIFY_FAILED = ErrorMsg.getSignToolErrBuilder() 387 .addTypeCode("15") 388 .addErrCode("003") 389 .addDescription("Verify signature failed") 390 .addCause("%s") 391 .build(); 392 393 /** 394 * VERIFY_PROFILE_FAILED 395 */ 396 public static final ErrorMsg VERIFY_PROFILE_FAILED = ErrorMsg.getSignToolErrBuilder() 397 .addTypeCode("15") 398 .addErrCode("004") 399 .addDescription("Verify profile failed") 400 .addCause("%s") 401 .build(); 402 403 /** 404 * VERIFY_PROFILE_INVALID 405 */ 406 public static final ErrorMsg VERIFY_PROFILE_INVALID = ErrorMsg.getSignToolErrBuilder() 407 .addTypeCode("15") 408 .addErrCode("005") 409 .addDescription("Verify profile failed") 410 .addCause("Verify profile pkcs7 failed! Profile is invalid") 411 .addSolution("Check if the profile is legal") 412 .addSolution("Maybe Failed during transmission, please download profile again") 413 .build(); 414 415 /** 416 * VERIFY_PROFILE_FAILED 417 */ 418 public static final ErrorMsg PROFILE_CERT_MATCH_FAILED = ErrorMsg.getSignToolErrBuilder() 419 .addTypeCode("15") 420 .addErrCode("005") 421 .addDescription("Profile certificate match failed") 422 .addCause("input certificates do not match with profile") 423 .addSolution("Profile include signature certificate info, please ensure it same as your appCertFile") 424 .addSolution("When applying for profile, need to select a certificate, please choose your appCertFile") 425 .build(); 426 427 428 // zip error 429 /** 430 * READ_ZIP_FAILED 431 */ 432 public static final ErrorMsg READ_ZIP_FAILED = ErrorMsg.getSignToolErrBuilder() 433 .addTypeCode("17") 434 .addErrCode("001") 435 .addDescription("Read zip file failed") 436 .addCause("%s") 437 .addSolution("App (or hap/hsp/hnp) use zip format.") 438 .addSolution("Zip file can support a maximum size of 4G and 65535 sub files.") 439 .addSolution("If this value is exceeded, it will be automatically converted to zip64.") 440 .addSolution("Please check if file is zip64 format, or zip formatted correctly.") 441 .build(); 442 443 /** 444 * WRITE_ZIP_FAILED 445 */ 446 public static final ErrorMsg WRITE_ZIP_FAILED = ErrorMsg.getSignToolErrBuilder() 447 .addTypeCode("17") 448 .addErrCode("002") 449 .addDescription("Write zip file failed") 450 .addCause("%s") 451 .build(); 452 453 /** 454 * ALIGNMENT_ZIP_FAILED 455 */ 456 public static final ErrorMsg ALIGNMENT_ZIP_FAILED = ErrorMsg.getSignToolErrBuilder() 457 .addTypeCode("17") 458 .addErrCode("003") 459 .addDescription("Alignment zip file failed") 460 .addCause("%s") 461 .build(); 462 463 /** 464 * ZIP_FORMAT_FAILED 465 */ 466 public static final ErrorMsg ZIP_FORMAT_FAILED = ErrorMsg.getSignToolErrBuilder() 467 .addTypeCode("17") 468 .addErrCode("004") 469 .addDescription("Zip format failed") 470 .addCause("%s") 471 .build(); 472 } 473