1 /* Copyright (c) (2017-2021) Apple Inc. All rights reserved. 2 * 3 * corecrypto is licensed under Apple Inc.’s Internal Use License Agreement (which 4 * is contained in the License.txt file distributed with corecrypto) and only to 5 * people who accept that license. IMPORTANT: Any license rights granted to you by 6 * Apple Inc. (if any) are limited to internal use within your organization only on 7 * devices and computers you own or control, for the sole purpose of verifying the 8 * security characteristics and correct functioning of the Apple Software. You may 9 * not, directly or indirectly, redistribute the Apple Software or any portions thereof. 10 */ 11 12 #ifndef _CORECRYPTO_CC_ERROR_H_ 13 #define _CORECRYPTO_CC_ERROR_H_ 14 15 enum { 16 CCERR_OK = 0, 17 18 /* the default error code */ 19 CCERR_INTERNAL = -1, 20 21 CCERR_INTEGRITY = -2, 22 23 CCERR_DEVICE = -3, 24 CCERR_INTERRUPTS = -4, 25 CCERR_CRYPTO_CONFIG = -5, 26 CCERR_PERMS = -6, 27 CCERR_PARAMETER = -7, 28 CCERR_MEMORY = -8, 29 CCERR_FILEDESC = -9, 30 CCERR_OUT_OF_ENTROPY = -10, 31 CCERR_ATFORK = -11, 32 CCERR_OVERFLOW = -12, 33 34 CCERR_MEMORY_ALLOC_FAIL = -13, 35 36 CCEC_GENERATE_KEY_DEFAULT_ERR = -14, 37 CCEC_GENERATE_KEY_TOO_MANY_TRIES = -15, 38 CCEC_GENERATE_KEY_MULT_FAIL = -16, 39 CCEC_GENERATE_KEY_AFF_FAIL = -17, 40 CCEC_GENERATE_KEY_CONSISTENCY = -18, 41 CCEC_GENERATE_NOT_ON_CURVE = -19, 42 CCEC_GENERATE_NOT_ENOUGH_ENTROPY = -20, 43 CCEC_GENERATE_NOT_SUPPORTED = -21, 44 CCEC_GENERATE_INVALID_INPUT = -22, 45 46 // Program error: buffer too small or encrypted message is too small 47 CCRSA_INVALID_INPUT = -23, 48 // Invalid crypto configuration: Hash length versus RSA key size 49 CCRSA_INVALID_CONFIG = -24, 50 CCRSA_ENCODING_ERROR = -25, 51 CCRSA_DECODING_ERROR = -26, 52 53 // The data is invalid (we won't say more for security) 54 CCRSA_PRIVATE_OP_ERROR = -27, 55 CCRSA_KEY_ERROR = -28, 56 57 // Key generation specific 58 CCRSA_KEYGEN_PRIME_NOT_FOUND = -29, 59 CCRSA_KEYGEN_PRIME_NEED_NEW_SEED = -30, 60 CCRSA_KEYGEN_PRIME_TOO_MANY_ITERATIONS = -31, 61 CCRSA_KEYGEN_PRIME_SEED_GENERATION_ERROR = -32, 62 CCRSA_KEYGEN_MODULUS_CRT_INV_ERROR = -33, 63 CCRSA_KEYGEN_NEXT_PRIME_ERROR = -34, 64 CCRSA_KEYGEN_SEED_X_ERROR = -35, 65 CCRSA_KEYGEN_SEED_r_ERROR = -36, 66 CCRSA_KEYGEN_KEYGEN_CONSISTENCY_FAIL = -37, 67 CCRSA_KEYGEN_R1R2_SIZE_ERROR = -38, 68 CCRSA_KEYGEN_PQ_DELTA_ERROR = -39, 69 70 CCRSA_FIPS_KEYGEN_DISABLED = -40, 71 72 CCZP_INV_ERROR = -41, 73 CCZP_INV_NO_INVERSE = -42, 74 CCZP_INV_INVALID_INPUT = -43, 75 76 CCZ_INVALID_INPUT_ERROR = -44, 77 CCZ_INVALID_RADIX_ERROR = -45, 78 79 CCDH_ERROR_DEFAULT = -46, 80 CCDH_GENERATE_KEY_TOO_MANY_TRIES = -47, 81 CCDH_NOT_SUPPORTED_CONFIGURATION = -48, 82 CCDH_SAFETY_CHECK = -49, 83 CCDH_PUBLIC_KEY_MISSING = -50, 84 CCDH_INVALID_DOMAIN_PARAMETER = -51, 85 CCDH_INVALID_INPUT = -52, 86 CCDH_DOMAIN_PARAMETER_MISMATCH = -53, 87 CCDH_GENERATE_KEY_CONSISTENCY = -54, 88 89 CCSRP_ERROR_DEFAULT = -55, 90 CCSRP_GENERATE_KEY_TOO_MANY_TRIES = -56, 91 CCSRP_NOT_SUPPORTED_CONFIGURATION = -57, 92 CCSRP_SAFETY_CHECK = -58, 93 CCSRP_PUBLIC_KEY_MISSING = -59, 94 CCSRP_INVALID_DOMAIN_PARAMETER = -60, 95 96 CCDRBG_STATUS_ERROR = -61, 97 CCDRBG_STATUS_NEED_RESEED = -62, 98 CCDRBG_STATUS_PARAM_ERROR = -63, 99 // If this value is returned, the caller must abort or panic the process for 100 // security reasons. For example in the case of catastrophic error in 101 // http://csrc.nist.gov/publications/drafts/800-90/sp800_90a_r1_draft.pdf 102 // ccdrbg calls abort() or panic(), if they are available in the system. 103 CCDRBG_STATUS_ABORT = -64, 104 105 CCKPRNG_NEED_ENTROPY = -65, 106 CCKPRNG_ABORT = -66, 107 108 CCMODE_INVALID_INPUT = -67, 109 CCMODE_INVALID_CALL_SEQUENCE = -68, 110 CCMODE_INTEGRITY_FAILURE = -69, 111 CCMODE_NOT_SUPPORTED = -70, 112 CCMODE_INTERNAL_ERROR = -71, 113 114 // Configuration or unexpected issue 115 CCPOST_GENERIC_FAILURE = -72, 116 CCPOST_LIBRARY_ERROR = -73, 117 CCPOST_INTEGRITY_ERROR = -74, 118 // Output of the algo is not as expected 119 CCPOST_KAT_FAILURE = -75, 120 121 CCKPRNG_SEEDFILE_OPEN = -76, 122 CCKPRNG_SEEDFILE_READ = -78, 123 CCKPRNG_SEEDFILE_WRITE = -79, 124 CCKPRNG_SEEDFILE_CHMOD = -80, 125 CCKPRNG_SEEDFILE_CHOWN = -81, 126 CCKPRNG_RANDOMDEV_OPEN = -82, 127 CCKPRNG_RANDOMDEV_WRITE = -83, 128 CCKPRNG_GETENTROPY = -84, 129 130 CCSAE_HUNTPECK_EXCEEDED_MAX_TRIALS = -85, 131 132 CCERR_CALL_SEQUENCE = -86, 133 134 CCVRF_POINT_DECODE_FAILURE = -87, 135 CCVRF_POINT_INVALID_PUBLIC_KEY = -88, 136 CCVRF_VERIFY_FAILURE = -89, 137 138 // Error codes for Authenticated Encryption Modes 139 CCMODE_TAG_LENGTH_REQUEST_TOO_LONG = -100, 140 CCMODE_TAG_LENGTH_TOO_SHORT = -101, 141 CCMODE_NONCE_EMPTY = -102, 142 CCMODE_AD_EMPTY = -103, 143 CCMODE_DECRYPTION_OR_VERIFICATION_ERR=-104, 144 CCMODE_BUFFER_OUT_IN_OVERLAP = -105, 145 146 // Error codes for Secret Sharing 147 CCSS_ELEMENT_TOO_LARGE_FOR_FIELD = -120, 148 CCSS_NOT_ENOUGH_SHARES = -121, 149 CCSS_TOO_MANY_SHARES = -122, 150 CCSS_IMPROPER_DEGREE = -123, 151 CCSS_TWO_SHARES_FOR_SAME_X = -124, 152 CCSS_THRESHOLD_NOT_LARGE_ENOUGH = -125, 153 CCSS_SHARE_BAG_FULL = -126, 154 CCSS_SHARE_ALREADY_PRESENT_IN_SHARE_BAG = -127, 155 CCSS_THRESHOLD_LARGER_OR_EQUAL_TO_FIELD = -128, 156 CCSS_TOO_MANY_SHARES_REQUESTED = -129, 157 CCSS_FIELD_MISMATCH = -130, 158 CCSS_INDEX_OUT_OF_RANGE = -131, 159 160 CCSAE_NOT_ENOUGH_COMMIT_PARTIAL_CALLS = -132, 161 CCSAE_GENERATE_COMMIT_CALL_AGAIN = -133, 162 163 CCERR_VALID_SIGNATURE = CCERR_OK, 164 CCERR_INVALID_SIGNATURE = -146, 165 166 CCERR_IOSERVICE_GETMATCHING = -147, 167 CCERR_IOSERVICE_OPEN = -148, 168 CCERR_IOCONNECT_CALL = -149, 169 170 CCEC_KEY_CANNOT_BE_UNIT = -160, 171 CCEC_COMPRESSED_POINT_ENCODING_ERROR = -161, 172 173 CCERR_RNG_NOT_SEEDED = -162, 174 175 CCERR_BUFFER_TOO_SMALL = -163, 176 177 CCERR_XTS_KEYS_EQUAL = -164, 178 179 CCERR_RETRY = -165, 180 181 CCDH_GP_P_NOTPRIME = -166, 182 CCDH_GP_Q_NOTPRIME = -167, 183 CCDH_GP_NONSAFE_PRIME = -168, 184 185 CCELGAMAL_DECRYPTION_FAILED = -169, 186 187 CCEC_POINT_CANNOT_BE_UNIT = CCEC_KEY_CANNOT_BE_UNIT, 188 CCEC_UNCOMPRESSED_POINT_ENCODING_ERROR = -170, 189 CCEC_HYBRID_POINT_ENCODING_ERROR = -171, 190 CCEC_COMPACT_POINT_ENCODING_ERROR = -172, 191 192 CCERR_NOT_SUPPORTED = -173, 193 194 CCEC_INVALID_BSGS_TABLE_VERSION = -174, 195 }; 196 197 #define CCDRBG_STATUS_OK CCERR_OK 198 #define CCKPRNG_OK CCERR_OK 199 200 #endif /* _CORECRYPTO_CC_ERROR_H_ */ 201