/*

 * Copyright (c) 2023-2024 Huawei Device Co., Ltd.

 * Licensed under the Apache License, Version 2.0 (the "License");

 * you may not use this file except in compliance with the License.

 * You may obtain a copy of the License at

 *

 *     http://www.apache.org/licenses/LICENSE-2.0

 *

 * Unless required by applicable law or agreed to in writing, software

 * distributed under the License is distributed on an "AS IS" BASIS,

 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

 * See the License for the specific language governing permissions and

 * limitations under the License.

 */



#ifndef CODE_SIGN_ERR_CODE_H

#define CODE_SIGN_ERR_CODE_H



enum CommonErrCode {

    CS_SUCCESS = 0,

    CS_ERR_MEMORY = -0x1,

    CS_ERR_NO_PERMISSION = -0x2,

    CS_ERR_NO_SIGNATURE = -0x3,

    CS_ERR_INVALID_SIGNATURE = -0x4

};



enum FileOperationErrCode {

    CS_ERR_FILE_INVALID = -0x100,

    CS_ERR_FILE_PATH = -0x101,

    CS_ERR_FILE_OPEN = -0x102,

    CS_ERR_FILE_READ = -0x103,

    CS_ERR_EXTRACT_FILES = -0x104,

    CS_ERR_FILE_DEL = -0x105,

    CS_ERR_INVALID_FD = -0x106

};



enum SignErrCode {

    CS_ERR_PARAM_INVALID = -0x200,

    CS_ERR_HUKS_OBTAIN_CERT = -0x201,

    CS_ERR_HUKS_SIGN = -0x202,

    CS_ERR_HUKS_INIT_KEY = -0x203,

    CS_ERR_COMPUTE_DIGEST = -0x204,

    CS_ERR_NO_OWNER_ID = -0x205,

    CS_ERR_INIT_LOCAL_CERT = -0x206,

    CS_ERR_VERIFY_CERT = -0x207,

    CS_ERR_NO_PLUGIN_ID = -0x208,

    CS_ERR_GENERATE_CHALLENGE = -0x209

};



enum OpenSSLErrCode {

    CS_ERR_OPENSSL_LOAD_CERT = -0x210,

    CS_ERR_OPENSSL_CREATE_PKCS7_DATA = -0x211,

    CS_ERR_OPENSSL_PKCS7 = -0x212,

    CS_ERR_OPENSSL_OID = -0x213,

    CS_ERR_OPENSSL_BIO = -0x214,

};



enum VerifyErrCode {

    CS_ERR_ENABLE = -0x300,

    CS_ERR_FSVREITY_NOT_SUPPORTED = -0x301,

    CS_ERR_FSVERITY_NOT_ENABLED = -0x302,

    CS_ERR_INVALID_OWNER_ID = -0x303,

    CS_CODE_SIGN_NOT_EXISTS = -0x304,

    CS_ERR_PROFILE = -0x305,

    CS_ERR_ENABLE_TIMEOUT = -0x306,

    CS_ERR_FSVREITY_NOT_ENABLED = -0x307,

    CS_ERR_INVALID_PLUGIN_ID = -0x308,

    CS_ERR_NOT_ENTERPRISE_DEVICE = -0x309,

    CS_ERR_INVALID_CERT = -0x310,

    CS_ERR_IOCTL_ERROR = -0x311,

    CS_ERR_VERIFY_ERROR = -0x312,

    CS_ERR_FORBIDDEN_OWNER_ID = -0x313,

};



enum IPCErrCode {

    CS_ERR_IPC_MSG_INVALID = -0x500,

    CS_ERR_IPC_WRITE_DATA = -0x501,

    CS_ERR_IPC_READ_DATA = -0x502,

    CS_ERR_REMOTE_CONNECTION = -0x503,

    CS_ERR_SA_GET_SAMGR = -0x504,

    CS_ERR_SA_GET_PROXY = -0x505,

    CS_ERR_SA_LOAD_FAILED = -0x506,

    CS_ERR_SA_LOAD_TIMEOUT = -0x507

};



enum SignBlockErrCode {

    CS_SUCCESS_END = 1,

    CS_ERR_BLOCK_MAGIC = -0x600,

    CS_ERR_BLOCK_VERSION = -0x601,

    CS_ERR_BLOCK_SEG_NUM = -0x602,

    CS_ERR_BLOCK_SIZE = -0x603,

    CS_ERR_SEGMENT_FSVERITY_TYPE = -0x604,

    CS_ERR_SEGMENT_HAP_TYPE = -0x605,

    CS_ERR_SEGMENT_SO_TYPE = -0x606,

    CS_ERR_SEGMENT_FSVERITY_OFFSET = -0x607,

    CS_ERR_SEGMENT_HAP_OFFSET = -0x608,

    CS_ERR_SEGMENT_SO_OFFSET = -0x609,

    CS_ERR_FSVERITY_MAGIC = -0x610,

    CS_ERR_FSVERITY_VERSION = -0x611,

    CS_ERR_FSVERITY_BLOCK_SIZE = 0x612,

    CS_ERR_HAP_MAGIC = -0x613,

    CS_ERR_HAP_EXTERNSION = -0x614,

    CS_ERR_SO_MAGIC = -0x615,

    CS_ERR_SO_SECTION_NUM = -0x616,

    CS_ERR_SO_FILE_OFFSET = -0x617,

    CS_ERR_SO_FILE_SIZE = -0x618,

    CS_ERR_SO_SIGN_OFFSET = -0x619,

    CS_ERR_SO_SIGN_SIZE = -0x620,

    CS_ERR_SIGN_ADDR_ALIGN = -0x621,

    CS_ERR_INVALID_EXTENSION_OFFSET = -0x622,

    CS_ERR_INVALID_PAGE_INFO_EXTENSION = -0x623,

    CS_ERR_EXTENSION_SIGN_SIZE = -0x624,

    CS_ERR_SECTION_OFFSET = -0x625,

    CS_ERR_SECTION_SIZE = -0x626,

    CS_ERR_SIGN_SIZE = -0x627,

    CS_ERR_SIGN_INFO_SIZE = -0x628,

    CS_ERR_SIGN_INFO_OFFSET = -0x629,

    CS_ERR_MERKLE_TREE_TYPE = -0x630,

    CS_ERR_MERKLE_TREE_SIZE = -0x631,

    CS_ERR_SALT_SIZE = -0x632,

};



enum JitCodeSignErrCode {

    CS_ERR_NO_SIGNER = -0x700,

    CS_ERR_PATCH_INVALID = -0x701,

    CS_ERR_JIT_SIGN_SIZE = -0x702,

    CS_ERR_TMP_BUFFER = -0x703,

    CS_ERR_VALIDATE_CODE = -0x704,

    CS_ERR_JITFORT_IN = -0x705,

    CS_ERR_JITFORT_OUT = -0x706,

    CS_ERR_SIGN_OFFSET = -0x707,

    CS_ERR_INVALID_DATA = -0x708,

    CS_ERR_JIT_MEMORY = -0x709,

    CS_ERR_OOM = -0x710,

    CS_ERR_LOG_TOO_LONG = -0x711,

    CS_ERR_UNSUPPORT = -0x7ff,

};

#endif