1/*
2 * cc_error.h
3 * corecrypto
4 *
5 * Created on 11/14/2017
6 *
7 * Copyright (c) 2017 Apple Inc. All rights reserved.
8 *
9 */
10
11#ifndef _CORECRYPTO_CC_ERROR_H_
12#define _CORECRYPTO_CC_ERROR_H_
13
14enum {
15 CCERR_OK = 0,
16
17 /* the default error code */
18 CCERR_INTERNAL = -1,
19
20 CCERR_INTEGRITY = -2,
21
22 CCERR_DEVICE = -3,
23 CCERR_INTERRUPTS = -4,
24 CCERR_CRYPTO_CONFIG = -5,
25 CCERR_PERMS = -6,
26 CCERR_PARAMETER = -7,
27 CCERR_MEMORY = -8,
28 CCERR_FILEDESC = -9,
29 CCERR_OUT_OF_ENTROPY = -10,
30 CCERR_ATFORK = -11,
31 CCERR_OVERFLOW = -12,
32
33 CCERR_MEMORY_ALLOC_FAIL = -13,
34
35 CCEC_GENERATE_KEY_DEFAULT_ERR = -14,
36 CCEC_GENERATE_KEY_TOO_MANY_TRIES = -15,
37 CCEC_GENERATE_KEY_MULT_FAIL = -16,
38 CCEC_GENERATE_KEY_AFF_FAIL = -17,
39 CCEC_GENERATE_KEY_CONSISTENCY = -18,
40 CCEC_GENERATE_NOT_ON_CURVE = -19,
41 CCEC_GENERATE_NOT_ENOUGH_ENTROPY = -20,
42 CCEC_GENERATE_NOT_SUPPORTED = -21,
43 CCEC_GENERATE_INVALID_INPUT = -22,
44
45 // Program error: buffer too small or encrypted message is too small
46 CCRSA_INVALID_INPUT = -23,
47 // Invalid crypto configuration: Hash length versus RSA key size
48 CCRSA_INVALID_CONFIG = -24,
49 CCRSA_ENCODING_ERROR = -25,
50 CCRSA_DECODING_ERROR = -26,
51
52 // The data is invalid (we won't say more for security)
53 CCRSA_PRIVATE_OP_ERROR = -27,
54 CCRSA_KEY_ERROR = -28,
55
56 // Key generation specific
57 CCRSA_KEYGEN_PRIME_NOT_FOUND = -29,
58 CCRSA_KEYGEN_PRIME_NEED_NEW_SEED = -30,
59 CCRSA_KEYGEN_PRIME_TOO_MANY_ITERATIONS = -31,
60 CCRSA_KEYGEN_PRIME_SEED_GENERATION_ERROR = -32,
61 CCRSA_KEYGEN_MODULUS_CRT_INV_ERROR = -33,
62 CCRSA_KEYGEN_NEXT_PRIME_ERROR = -34,
63 CCRSA_KEYGEN_SEED_X_ERROR = -35,
64 CCRSA_KEYGEN_SEED_r_ERROR = -36,
65 CCRSA_KEYGEN_KEYGEN_CONSISTENCY_FAIL = -37,
66 CCRSA_KEYGEN_R1R2_SIZE_ERROR = -38,
67 CCRSA_KEYGEN_PQ_DELTA_ERROR = -39,
68
69 CCRSA_FIPS_KEYGEN_DISABLED = -40,
70
71 CCZP_INV_ERROR = -41,
72 CCZP_INV_NO_INVERSE = -42,
73 CCZP_INV_INVALID_INPUT = -43,
74
75 CCZ_INVALID_INPUT_ERROR = -44,
76 CCZ_INVALID_RADIX_ERROR = -45,
77
78 CCDH_ERROR_DEFAULT = -46,
79 CCDH_GENERATE_KEY_TOO_MANY_TRIES = -47,
80 CCDH_NOT_SUPPORTED_CONFIGURATION = -48,
81 CCDH_SAFETY_CHECK = -49,
82 CCDH_PUBLIC_KEY_MISSING = -50,
83 CCDH_INVALID_DOMAIN_PARAMETER = -51,
84 CCDH_INVALID_INPUT = -52,
85 CCDH_DOMAIN_PARAMETER_MISMATCH = -53,
86 CCDH_GENERATE_KEY_CONSISTENCY = -54,
87
88 CCSRP_ERROR_DEFAULT = -55,
89 CCSRP_GENERATE_KEY_TOO_MANY_TRIES = -56,
90 CCSRP_NOT_SUPPORTED_CONFIGURATION = -57,
91 CCSRP_SAFETY_CHECK = -58,
92 CCSRP_PUBLIC_KEY_MISSING = -59,
93 CCSRP_INVALID_DOMAIN_PARAMETER = -60,
94
95 CCDRBG_STATUS_ERROR = -61,
96 CCDRBG_STATUS_NEED_RESEED = -62,
97 CCDRBG_STATUS_PARAM_ERROR = -63,
98 // If this value is returned, the caller must abort or panic the process for
99 // security reasons. for example in the case of catastrophic error in
100 // http://csrc.nist.gov/publications/drafts/800-90/sp800_90a_r1_draft.pdf
101 // ccdrbg calls abort() or panic(), if they are available in the system.
102 CCDRBG_STATUS_ABORT = -64,
103
104 CCKPRNG_NEED_ENTROPY = -65,
105 CCKPRNG_ABORT = -66,
106
107 CCMODE_INVALID_INPUT = -67,
108 CCMODE_INVALID_CALL_SEQUENCE = -68,
109 CCMODE_INTEGRITY_FAILURE = -69,
110 CCMODE_NOT_SUPPORTED = -70,
111 CCMODE_INTERNAL_ERROR = -71,
112
113 // Configuration or unexpected issue
114 CCPOST_GENERIC_FAILURE = -72,
115 CCPOST_LIBRARY_ERROR = -73,
116 CCPOST_INTEGRITY_ERROR = -74,
117 // Output of the algo is not as expected
118 CCPOST_KAT_FAILURE = -75,
119};
120
121#define CCDRBG_STATUS_OK CCERR_OK
122#define CCKPRNG_OK CCERR_OK
123
124#endif /* _CORECRYPTO_CC_ERROR_H_ */
125