mirror of
https://github.com/intel/linux-sgx
synced 2026-06-08 14:49:32 +00:00
4589daddd5
Fixed bugs. Signed-off-by: Li, Xun <xun.li@intel.com>
294 lines
14 KiB
C
294 lines
14 KiB
C
/*
|
|
* Copyright (C) 2011-2020 Intel Corporation. All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions
|
|
* are met:
|
|
*
|
|
* * Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
* * Redistributions in binary form must reproduce the above copyright
|
|
* notice, this list of conditions and the following disclaimer in
|
|
* the documentation and/or other materials provided with the
|
|
* distribution.
|
|
* * Neither the name of Intel Corporation nor the names of its
|
|
* contributors may be used to endorse or promote products derived
|
|
* from this software without specific prior written permission.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*
|
|
*/
|
|
|
|
#ifndef _AE_ERROR_H_
|
|
#define _AE_ERROR_H_
|
|
|
|
typedef enum _ae_error_t{
|
|
AE_SUCCESS = 0,
|
|
AE_FAILURE = 1,
|
|
AE_ENCLAVE_LOST = 2,
|
|
|
|
OAL_PARAMETER_ERROR = 3,
|
|
OAL_PATHNAME_BUFFER_OVERFLOW_ERROR = 4,
|
|
OAL_FILE_ACCESS_ERROR = 5,
|
|
OAL_CONFIG_FILE_ERROR = 6,
|
|
OAL_NETWORK_UNAVAILABLE_ERROR = 7,
|
|
OAL_NETWORK_BUSY = 8,
|
|
OAL_NETWORK_RESEND_REQUIRED = 9,
|
|
OAL_PROXY_SETTING_ASSIST = 10,
|
|
OAL_THREAD_ERROR = 11,
|
|
OAL_THREAD_TIMEOUT_ERROR = 12,
|
|
|
|
AE_PSVN_UNMATCHED_ERROR = 13,
|
|
AE_SERVER_NOT_AVAILABLE = 14,
|
|
AE_INVALID_PARAMETER = 15,
|
|
AE_READ_RAND_ERROR = 16,
|
|
AE_OUT_OF_MEMORY_ERROR = 17,
|
|
AE_INSUFFICIENT_DATA_IN_BUFFER = 18,
|
|
|
|
/* QUOTING ENCLAVE ERROR CASES*/
|
|
QE_UNEXPECTED_ERROR = 19,
|
|
QE_PARAMETER_ERROR = 20,
|
|
QE_EPIDBLOB_ERROR = 21,
|
|
QE_REVOKED_ERROR = 22,
|
|
QE_SIGRL_ERROR = 23,
|
|
|
|
/* PROVISIONING ENCLAVE ERROR CASES*/
|
|
PVE_UNEXPECTED_ERROR = 24,
|
|
PVE_PARAMETER_ERROR = 25,
|
|
PVE_EPIDBLOB_ERROR = 26,
|
|
PVE_INSUFFICIENT_MEMORY_ERROR = 27,
|
|
PVE_INTEGRITY_CHECK_ERROR = 28,
|
|
PVE_SIGRL_INTEGRITY_CHECK_ERROR = 29,
|
|
PVE_SERVER_REPORTED_ERROR = 30,
|
|
PVE_PEK_SIGN_ERROR = 31,
|
|
PVE_MSG_ERROR = 32,
|
|
PVE_REVOKED_ERROR = 33,
|
|
PVE_SESSION_OUT_OF_ORDER_ERROR = 34,
|
|
PVE_SERVER_BUSY_ERROR = 35,
|
|
PVE_PERFORMANCE_REKEY_NOT_SUPPORTED = 36,
|
|
|
|
/* LICENSING ENCLAVE ERROR CASES*/
|
|
LE_UNEXPECTED_ERROR = 37,
|
|
LE_INVALID_PARAMETER = 38,
|
|
LE_GET_EINITTOKEN_KEY_ERROR = 39,
|
|
LE_INVALID_ATTRIBUTE = 40,
|
|
LE_INVALID_PRIVILEGE_ERROR = 41,
|
|
LE_WHITELIST_UNINITIALIZED_ERROR = 42,
|
|
LE_CALC_LIC_TOKEN_ERROR = 43,
|
|
/* PSE ERROR CASES*/
|
|
PSE_PAIRING_BLOB_SEALING_ERROR = 44,
|
|
PSE_PAIRING_BLOB_UNSEALING_ERROR = 45,
|
|
PSE_PAIRING_BLOB_INVALID_ERROR = 46,
|
|
|
|
/* PSE_OP ERROR CASES*/
|
|
PSE_OP_PARAMETER_ERROR = 47,
|
|
PSE_OP_INTERNAL_ERROR = 48,
|
|
PSE_OP_MAX_NUM_SESSION_REACHED = 49,
|
|
PSE_OP_SESSION_INVALID = 50,
|
|
PSE_OP_SERVICE_MSG_ERROR = 51,
|
|
PSE_OP_EPHEMERAL_SESSION_INVALID = 52,
|
|
PSE_OP_ERROR_EPH_SESSION_ESTABLISHMENT_INTEGRITY_ERROR = 53,
|
|
PSE_OP_UNKNWON_REQUEST_ERROR = 54,
|
|
PSE_OP_PSDA_BUSY_ERROR = 55,
|
|
PSE_OP_LTPB_SEALING_OUT_OF_DATE = 56,
|
|
|
|
// PSDA ERROR CODES
|
|
AESM_PSDA_NOT_AVAILABLE = 57,
|
|
AESM_PSDA_INTERNAL_ERROR = 58,
|
|
AESM_PSDA_NEED_REPAIRING = 59,
|
|
AESM_PSDA_LT_SESSION_INTEGRITY_ERROR = 60,
|
|
AESM_PSDA_NOT_PROVISONED_ERROR = 61,
|
|
AESM_PSDA_PROTOCOL_NOT_SUPPORTED = 62,
|
|
AESM_PSDA_PLATFORM_KEYS_REVOKED = 63,
|
|
AESM_PSDA_SESSION_LOST = 64,
|
|
AESM_PSDA_WRITE_THROTTLED = 65,
|
|
|
|
// PSE_Pr ERROR CASES
|
|
PSE_PR_ERROR = 66,
|
|
PSE_PR_PARAMETER_ERROR = 67,
|
|
PSE_PR_ENCLAVE_EXCEPTION = 68,
|
|
PSE_PR_CALL_ORDER_ERROR = 69,
|
|
PSE_PR_ASN1DER_DECODING_ERROR = 70,
|
|
PSE_PR_PAIRING_BLOB_SIZE_ERROR = 71,
|
|
PSE_PR_BAD_POINTER_ERROR = 72,
|
|
PSE_PR_SIGNING_CSR_ERROR = 73,
|
|
PSE_PR_MSG_SIGNING_ERROR = 74,
|
|
PSE_PR_INSUFFICIENT_MEMORY_ERROR = 75,
|
|
PSE_PR_BUFFER_TOO_SMALL_ERROR = 76,
|
|
PSE_PR_S3_DATA_ERROR = 77,
|
|
PSE_PR_KEY_PAIR_GENERATION_ERROR = 78,
|
|
PSE_PR_DERIVE_SMK_ERROR = 79,
|
|
PSE_PR_CREATE_REPORT_ERROR = 80,
|
|
PSE_PR_HASH_CALC_ERROR = 81,
|
|
PSE_PR_HMAC_CALC_ERROR = 82,
|
|
PSE_PR_ID_CALC_ERROR = 83,
|
|
PSE_PR_HMAC_COMPARE_ERROR = 84,
|
|
PSE_PR_GA_COMPARE_ERROR = 85,
|
|
PSE_PR_TASK_INFO_ERROR = 86,
|
|
PSE_PR_MSG_COMPARE_ERROR = 87,
|
|
PSE_PR_GID_MISMATCH_ERROR = 88,
|
|
PSE_PR_PR_CALC_ERROR = 89,
|
|
PSE_PR_PARAM_CERT_SIZE_ERROR = 90,
|
|
PSE_PR_CERT_SIZE_ERROR = 91,
|
|
PSE_PR_NO_OCSP_RESPONSE_ERROR = 92,
|
|
PSE_PR_X509_PARSE_ERROR = 93,
|
|
PSE_PR_READ_RAND_ERROR = 94,
|
|
PSE_PR_INTERNAL_ERROR = 95,
|
|
PSE_PR_ENCLAVE_BRIDGE_ERROR = 96,
|
|
PSE_PR_ENCLAVE_LOST_ERROR = 97,
|
|
|
|
PSE_PR_PCH_EPID_UNKNOWN_ERROR = 98,
|
|
PSE_PR_PCH_EPID_NOT_IMPLEMENTED = 99,
|
|
PSE_PR_PCH_EPID_SIG_INVALID =100,
|
|
PSE_PR_PCH_EPID_SIG_REVOKED_IN_PRIVRL =101,
|
|
PSE_PR_PCH_EPID_NO_MEMORY_ERR =102,
|
|
PSE_PR_PCH_EPID_BAD_ARG_ERR =103,
|
|
PSE_PR_PCH_EPID_SIG_REVOKED_IN_VERIFIERRL=104,
|
|
PSE_PR_PCH_EPID_DIVIDED_BY_ZERO_ERR =105,
|
|
PSE_PR_PCH_EPID_MATH_ERR =106,
|
|
PSE_PR_PCH_EPID_RAND_MAX_ITER_ERR =107,
|
|
PSE_PR_PCH_EPID_UNDERFLOW_ERR =108,
|
|
PSE_PR_PCH_EPID_HASH_ALGORITHM_NOT_SUPPORTED =109,
|
|
PSE_PR_PCH_EPID_DUPLICATE_ERR =110,
|
|
PSE_PR_PCH_EPID_SIG_REVOKED_IN_GROUPRL =111,
|
|
PSE_PR_PCH_EPID_SIG_REVOKED_IN_SIGRL =112,
|
|
PSE_PR_PCH_EPID_INCONSISTENT_BASENAME_SET_ERR =113,
|
|
|
|
/* AESM PSE_Pr ERROR CASES*/
|
|
AESM_PSE_PR_ERROR_GETTING_GROUP_ID_FROM_ME =114,
|
|
AESM_PSE_PR_INIT_QUOTE_ERROR =115,
|
|
AESM_PSE_PR_GET_QUOTE_ERROR =116,
|
|
AESM_PSE_PR_INSUFFICIENT_MEMORY_ERROR =117,
|
|
AESM_PSE_PR_BUFFER_TOO_SMALL =118,
|
|
AESM_PSE_PR_MAX_SIGRL_ENTRIES_EXCEEDED =119,
|
|
AESM_PSE_PR_MAX_PRIVRL_ENTRIES_EXCEEDED =120,
|
|
AESM_PSE_PR_GET_SIGRL_ERROR =121,
|
|
AESM_PSE_PR_GET_OCSPRESP_ERROR =122,
|
|
AESM_PSE_PR_CERT_SAVE_ERROR =123,
|
|
AESM_PSE_PR_CERT_LOAD_ERROR =124,
|
|
AESM_PSE_PR_CERT_DELETE_ERROR =125,
|
|
AESM_PSE_PR_PSDA_LOAD_ERROR =126,
|
|
AESM_PSE_PR_PSDA_PROVISION_ERROR =127,
|
|
AESM_PSE_PR_PSDA_NOT_PROVISIONED =128,
|
|
AESM_PSE_PR_PSDA_GET_GROUP_ID =129,
|
|
AESM_PSE_PR_PSDA_LTP_EXCHANGE_ERROR =130,
|
|
AESM_PSE_PR_PSDA_LTP_S1_ERROR =131,
|
|
AESM_PSE_PR_PERSISTENT_STORAGE_DELETE_ERROR =132,
|
|
AESM_PSE_PR_PERSISTENT_STORAGE_OPEN_ERROR=133,
|
|
AESM_PSE_PR_PERSISTENT_STORAGE_WRITE_ERROR=134,
|
|
AESM_PSE_PR_PERSISTENT_STORAGE_READ_ERROR=135,
|
|
AESM_PSE_PR_BAD_POINTER_ERROR =136,
|
|
AESM_PSE_PR_CALL_ORDER_ERROR =137,
|
|
AESM_PSE_PR_INTERNAL_ERROR =138,
|
|
AESM_PRSE_HECI_INIT_ERROR =139,
|
|
AESM_PSE_PR_LOAD_VERIFIER_CERT_ERROR =140,
|
|
AESM_PSE_PR_EXCEPTION =141,
|
|
AESM_PSE_PR_OCSP_RESPONSE_STATUS_MALFORMEDREQUEST =142,
|
|
AESM_PSE_PR_OCSP_RESPONSE_STATUS_INTERNALERROR =143,
|
|
AESM_PSE_PR_OCSP_RESPONSE_STATUS_TRYLATER=144,
|
|
AESM_PSE_PR_OCSP_RESPONSE_STATUS_SIGREQUIRED =145,
|
|
AESM_PSE_PR_OCSP_RESPONSE_STATUS_UNAUTHORIZED =146,
|
|
AESM_PSE_PR_OCSP_RESPONSE_INTERNAL_ERROR =147,
|
|
AESM_PSE_PR_OCSP_RESPONSE_NO_NONCE_ERROR =148,
|
|
AESM_PSE_PR_OCSP_RESPONSE_NONCE_VERIFY_ERROR =149,
|
|
AESM_PSE_PR_OCSP_RESPONSE_VERIFY_ERROR =150,
|
|
AESP_PSE_PR_OCSP_RESPONSE_CERT_COUNT_ERROR =151,
|
|
AESM_PSE_PR_ICLS_CLIENT_MISSING_ERROR =152,
|
|
AESM_PSE_PR_NO_OCSP_RESPONSE_ERROR =153,
|
|
AESM_PSE_PR_RL_RESP_HEADER_ERROR =154,
|
|
AESM_PSE_PR_RL_SERVER_ERROR =155,
|
|
AESM_PSE_PR_BACKEND_INVALID_GID =156,
|
|
AESM_PSE_PR_BACKEND_GID_REVOKED =157,
|
|
AESM_PSE_PR_BACKEND_INVALID_QUOTE =158,
|
|
AESM_PSE_PR_BACKEND_INVALID_REQUEST =159,
|
|
AESM_PSE_PR_BACKEND_UNKNOWN_PROTOCOL_RESPONSE =160,
|
|
AESM_PSE_PR_BACKEND_SERVER_BUSY =161,
|
|
AESM_PSE_PR_BACKEND_INTEGRITY_CHECK_FAIL =162,
|
|
AESM_PSE_PR_BACKEND_INCORRECT_SYNTAX =163,
|
|
AESM_PSE_PR_BACKEND_INCOMPATIBLE_VERSION =164,
|
|
AESM_PSE_PR_BACKEND_TRANSACTION_STATE_LOST =165,
|
|
AESM_PSE_PR_BACKEND_PROTOCOL_ERROR =166,
|
|
AESM_PSE_PR_BACKEND_INTERNAL_ERROR =167,
|
|
AESM_PSE_PR_BACKEND_UNKNOWN_GENERAL_RESPONSE =168,
|
|
AESM_PSE_PR_BACKEND_MSG1_GENERATE =169,
|
|
AESM_PSE_PR_BACKEND_MSG2_RESPONSE_HEADER_INTEGRITY =170,
|
|
AESM_PSE_PR_BACKEND_MSG3_GENERATE =171,
|
|
AESM_PSE_PR_BACKEND_MSG4_RESPONSE_HEADER_INTEGRITY =172,
|
|
AESM_PSE_PR_BACKEND_MSG4_TLV_INTEGRITY =173,
|
|
AESM_PSE_PR_BACKEND_MSG4_PLATFORM_INFO_BLOB_SIZE =174,
|
|
AESM_PSE_PR_BACKEND_MSG4_LEAF_CERTIFICATE_SIZE =175,
|
|
AESM_PSE_PR_BACKEND_MSG4_UNEXPECTED_TLV_TYPE =176,
|
|
AESM_PSE_PR_BACKEND_INVALID_URL =177,
|
|
AESM_PSE_PR_BACKEND_NOT_INITIALIZED =178,
|
|
AESM_NLTP_NO_LTP_BLOB =179,
|
|
AESM_NLTP_DONT_NEED_UPDATE_PAIR_LTP =180,
|
|
AESM_NLTP_MAY_NEED_UPDATE_LTP =181,
|
|
AESM_NLTP_OLD_EPID11_RLS =182,
|
|
AESM_PCP_NEED_PSE_UPDATE =183,
|
|
AESM_PCP_PSE_CERT_PROVISIONING_ATTESTATION_FAILURE_NEED_EPID_UPDATE =184,
|
|
AESM_PCP_PSE_CERT_PROVISIONING_ATTESTATION_FAILURE_MIGHT_NEED_EPID_UPDATE =185,
|
|
AESM_PCP_SIMPLE_PSE_CERT_PROVISIONING_ERROR =186,
|
|
AESM_PCP_SIMPLE_EPID_PROVISION_ERROR =187,
|
|
AESM_NPC_DONT_NEED_PSEP =188,
|
|
AESM_NPC_NO_PSE_CERT =189,
|
|
AESM_NPC_DONT_NEED_UPDATE_PSEP =190,
|
|
AESM_NPC_MAY_NEED_UPDATE_PSEP =191,
|
|
AESM_NEP_DONT_NEED_EPID_PROVISIONING =192,
|
|
AESM_NEP_DONT_NEED_UPDATE_PVEQE =193,
|
|
AESM_NEP_PERFORMANCE_REKEY =194,
|
|
AESM_NEP_MAY_NEED_UPDATE =195,
|
|
AESM_CP_ATTESTATION_FAILURE =196,
|
|
AESM_LTP_PSE_CERT_REVOKED =197,
|
|
AESM_LTP_SIMPLE_LTP_ERROR =198,
|
|
AESM_PSE_PR_GET_PRIVRL_ERROR =199,
|
|
AESM_NETWORK_TIMEOUT =200,
|
|
|
|
PSW_UPDATE_REQUIRED =201,
|
|
AESM_AE_OUT_OF_EPC =202,
|
|
|
|
PVE_PROV_ATTEST_KEY_NOT_FOUND =203,
|
|
PVE_INVALID_REPORT =204,
|
|
PVE_XEGDSK_SIGN_ERROR =205,
|
|
|
|
// PCE ERROR CODES
|
|
PCE_UNEXPECTED_ERROR =206,
|
|
PCE_INVALID_PRIVILEGE =207,
|
|
PCE_INVALID_REPORT =208,
|
|
|
|
LE_WHITE_LIST_QUERY_BUSY =209,
|
|
AESM_AE_NO_DEVICE =210,
|
|
EXTENDED_GROUP_NOT_AVAILABLE =211,
|
|
|
|
// MORE PSE_OP ERROR CASES
|
|
PSE_OP_ERROR_KDF_MISMATCH =212,
|
|
|
|
LE_WHITE_LIST_ALREADY_UPDATED =213,
|
|
|
|
PCE_CRYPTO_ERROR =215,
|
|
|
|
PVE_PROV_ATTEST_KEY_TCB_OUT_OF_DATE =216,
|
|
} ae_error_t;
|
|
|
|
#define AE_FAILED(x) (AE_SUCCESS != (x))
|
|
#define AE_SUCCEEDED(x) (AE_SUCCESS == (x))
|
|
|
|
/* These definitions are usable to exit a loop*/
|
|
#define BREAK_IF_TRUE(x, Sts, ErrCode) if (x) { Sts = ErrCode; break; }
|
|
#define BREAK_IF_FALSE(x, Sts, ErrCode) if (!(x)) { Sts = ErrCode; break; }
|
|
#define BREAK_IF_FAILED(x) if (AE_SUCCESS != (x)) { break; }
|
|
#define BREAK_IF_FAILED_ERR(x, ErrCode) if (AE_SUCCESS != (x)) { x = ErrCode; break; }
|
|
|
|
|
|
#endif/*_AE_ERROR_H_*/
|
|
|