1pub mod cl;
2pub mod bls;
3pub mod logger;
4
5use errors::prelude::*;
6
7use libc::c_char;
8
9#[derive(Debug, PartialEq, Copy, Clone)]
10#[repr(usize)]
11pub enum ErrorCode
12{
13 Success = 0,
14
15 CommonInvalidParam1 = 100,
19
20 CommonInvalidParam2 = 101,
22
23 CommonInvalidParam3 = 102,
25
26 CommonInvalidParam4 = 103,
28
29 CommonInvalidParam5 = 104,
31
32 CommonInvalidParam6 = 105,
34
35 CommonInvalidParam7 = 106,
37
38 CommonInvalidParam8 = 107,
40
41 CommonInvalidParam9 = 108,
43
44 CommonInvalidParam10 = 109,
46
47 CommonInvalidParam11 = 110,
49
50 CommonInvalidParam12 = 111,
52
53 CommonInvalidState = 112,
55
56 CommonInvalidStructure = 113,
58
59 CommonIOError = 114,
61
62 AnoncredsRevocationAccumulatorIsFull = 115,
64
65 AnoncredsInvalidRevocationAccumulatorIndex = 116,
67
68 AnoncredsCredentialRevoked = 117,
70
71 AnoncredsProofRejected = 118,
73}
74
75#[no_mangle]
90pub extern fn indy_crypto_get_current_error(error_json_p: *mut *const c_char) {
91 trace!("indy_crypto_get_current_error >>> error_json_p: {:?}", error_json_p);
92
93 let error = get_current_error_c_json();
94 unsafe { *error_json_p = error };
95
96 trace!("indy_crypto_get_current_error: <<<");
97}
98
99#[cfg(test)]
100mod tests {
101 use super::*;
102
103 use std::ptr;
104 use ffi::cl::issuer::indy_crypto_cl_credential_private_key_from_json;
105 use utils::ctypes::*;
106
107 #[test]
108 fn indy_crypto_get_current_error_works() {
109
110 indy_crypto_cl_credential_private_key_from_json(ptr::null(), &mut ptr::null());
111
112 let mut error_json_p: *const c_char = ptr::null();
113 indy_crypto_get_current_error(&mut error_json_p);
114
115 let error_json_1 = c_str_to_string(error_json_p).unwrap();
116 assert!(error_json_1.is_some());
117
118 let credential_priv_key = string_to_cstring("some wrong data".to_string());
119 indy_crypto_cl_credential_private_key_from_json(credential_priv_key.as_ptr(), &mut ptr::null());
120
121 indy_crypto_get_current_error(&mut error_json_p);
122
123 let error_json_2 = c_str_to_string(error_json_p).unwrap();
124 assert!(error_json_2.is_some());
125
126 assert_ne!(error_json_1.unwrap(), error_json_2.unwrap());
127 }
128}