AES128ESP32 Library
Loading...
Searching...
No Matches
psaerr2str.cpp
Go to the documentation of this file.
1#include "AES128ESP32.h"
2// #include "psaerr2str.h"
3
4
5static psa_status_t _psa_last_error = 0;
6
8psa_status_t getLastAES128error() {
9 return _psa_last_error;
10}
11
15void cryptodump(String title, unsigned char *buf, int lenbuff) {
16 DEBUG2("lenbuff="+String(lenbuff));
17 char hexbuffer[3];
18 Serial.print(title);
19 Serial.print(" ");
20 for (int i = 0; i < lenbuff; i++) {
21 sprintf(hexbuffer, "%02X", buf[i]);
22 Serial.print(hexbuffer);
23 }
24 Serial.print(" ");
25 for (int i = 0; i < lenbuff; i++) {
26 if (buf[i] < 32)
27 Serial.print(".");
28 else if (buf[i] > 127)
29 Serial.print(".");
30 else {
31 sprintf(hexbuffer, "%c", buf[i]);
32 Serial.print(hexbuffer);
33 }
34 }
35 Serial.println("");
36}
37
71String cryptoerrortoString(psa_status_t err) {
72 DEBUG2(String(err));
73 String rtn = "";
74 _psa_last_error = err;
75 switch (err) {
76 // from psa_crypto_init
77 case PSA_SUCCESS:
78 rtn = "PSA_SUCCESS";
79 break;
80 case PSA_ERROR_INSUFFICIENT_MEMORY:
81 rtn = "PSA_ERROR_INSUFFICIENT_MEMORY";
82 break;
83 case PSA_ERROR_INSUFFICIENT_STORAGE:
84 rtn = "PSA_ERROR_INSUFFICIENT_STORAGE";
85 break;
86 case PSA_ERROR_COMMUNICATION_FAILURE:
87 rtn = "PSA_ERROR_COMMUNICATION_FAILURE";
88 break;
89 case PSA_ERROR_HARDWARE_FAILURE:
90 rtn = "PSA_ERROR_HARDWARE_FAILURE";
91 break;
92 case PSA_ERROR_CORRUPTION_DETECTED:
93 rtn = "PSA_ERROR_CORRUPTION_DETECTED";
94 break;
95 case PSA_ERROR_INSUFFICIENT_ENTROPY:
96 rtn = "PSA_ERROR_INSUFFICIENT_ENTROPY";
97 break;
98 case PSA_ERROR_STORAGE_FAILURE:
99 rtn = "PSA_ERROR_STORAGE_FAILURE";
100 break;
101 case PSA_ERROR_DATA_INVALID:
102 rtn = "PSA_ERROR_DATA_INVALID";
103 break;
104 case PSA_ERROR_DATA_CORRUPT:
105 rtn = "PSA_ERROR_DATA_CORRUPT";
106 break;
107 // from psa_import_key
108 // case PSA_ERROR_INSUFFICIENT_MEMORY: rtn = "PSA_ERROR_INSUFFICIENT_MEMORY"; break;
109 // case PSA_ERROR_INSUFFICIENT_STORAGE: rtn = "PSA_ERROR_INSUFFICIENT_STORAGE"; break;
110 // case PSA_ERROR_COMMUNICATION_FAILURE: rtn = "PSA_ERROR_COMMUNICATION_FAILURE"; break;
111 // case PSA_ERROR_HARDWARE_FAILURE: rtn = "PSA_ERROR_HARDWARE_FAILURE"; break;
112 // case PSA_ERROR_CORRUPTION_DETECTED: rtn = "PSA_ERROR_CORRUPTION_DETECTED"; break;
113 // case PSA_ERROR_INSUFFICIENT_ENTROPY: rtn = "PSA_ERROR_INSUFFICIENT_ENTROPY"; break;
114 // case PSA_ERROR_STORAGE_FAILURE: rtn = "PSA_ERROR_STORAGE_FAILURE"; break;
115 // case PSA_ERROR_DATA_INVALID: rtn = "PSA_ERROR_DATA_INVALID"; break;
116 // case PSA_ERROR_DATA_CORRUPT: rtn = "PSA_ERROR_DATA_CORRUPT"; break;
117
118 // from psa_aead_update
119 case PSA_ERROR_BUFFER_TOO_SMALL: rtn = "PSA_ERROR_BUFFER_TOO_SMALL"; break;
120 case PSA_ERROR_INVALID_ARGUMENT: rtn = "PSA_ERROR_INVALID_ARGUMENT"; break;
121 case PSA_ERROR_BAD_STATE: rtn = "PSA_ERROR_BAD_STATE"; break;
122
123 // from psa_aead_finish
124 case PSA_ERROR_INVALID_SIGNATURE:
125 rtn = "PSA_ERROR_INVALID_SIGNATURE";
126 break;
127 // case PSA_ERROR_BUFFER_TOO_SMALL: rtn="PSA_ERROR_BUFFER_TOO_SMALL"; break;
128
129 case PSA_ERROR_NOT_SUPPORTED:
130 rtn = "PSA_ERROR_NOT_SUPPORTED";
131 break;
132
133 // from psa_export_key
134 // case PSA_SUCCESS: rtn="" ; break;
135 case PSA_ERROR_INVALID_HANDLE:
136 rtn = "PSA_ERROR_INVALID_HANDLE";
137 break;
138 // case PSA_ERROR_INVALID_ARGUMENT: rtn="" ; break;
139 // * The key is neither a public key nor a key pair.
140 // case PSA_ERROR_NOT_SUPPORTED: rtn="" ; break;
141 // case PSA_ERROR_BUFFER_TOO_SMALL: rtn="" ; break;
142 /* The size of the \p data buffer is too small. You can determine a
143 * sufficient buffer size by calling
144 * #PSA_EXPORT_KEY_OUTPUT_SIZE(#PSA_KEY_TYPE_PUBLIC_KEY_OF_KEY_PAIR(\c type), \c bits)
145 * where \c type is the key type
146 * and \c bits is the key size in bits.
147 */
148 // case PSA_ERROR_COMMUNICATION_FAILURE: rtn="" ; break;
149 // case PSA_ERROR_HARDWARE_FAILURE: rtn="" ; break;
150 // case PSA_ERROR_CORRUPTION_DETECTED: rtn="" ; break;
151 // case PSA_ERROR_STORAGE_FAILURE: rtn="" ; break;
152 // case PSA_ERROR_INSUFFICIENT_MEMORY: rtn="" ; break;
153 // case PSA_ERROR_BAD_STATE: rtn="" ; break;
154
155 case PSA_ERROR_INSUFFICIENT_DATA: rtn = "PSA_ERROR_INSUFFICIENT_DATA"; break;
156 case PSA_ERROR_NOT_PERMITTED: rtn = "PSA_ERROR_NOT_PERMITTED"; break;
157
158 // AES128ESP32 Library errors
159
160 case AES128_ERROR1:
161 rtn = "AES128_ERROR1 bytes invalid size.";
162 break;
163 case AES128_ERROR2:
164 rtn = "AES128_ERROR2 newkeyid is not valid.";
165 break;
166 case AES128_ERROR3:
167 rtn = "AES128_ERROR3 masterkeyid is not valid.";
168 break;
169 case AES128_ERROR4:
170 rtn = "AES128_ERROR4 masterkey invalid size.";
171 break;
172 case AES128_ERROR5:
173 rtn = "AES128_ERROR5 masterkey has already been created.";
174 break;
175 case AES128_ERROR6:
176 rtn = "AES128_ERROR6 masterkey has not been set.";
177 break;
178
180 default:
181 rtn = "Unknown error " + String(err);
182 }
183 return rtn;
184}
#define DEBUG2
Definition delays.h:35
void cryptodump(String title, unsigned char *buf, int lenbuff)
String cryptoerrortoString(psa_status_t err)
psa_status_t getLastAES128error()
Definition psaerr2str.cpp:8
#define AES128_ERROR5
Definition psaerr2str.h:29
#define AES128_ERROR3
Definition psaerr2str.h:27
#define AES128_ERROR4
Definition psaerr2str.h:28
#define AES128_ERROR6
Definition psaerr2str.h:30
#define AES128_ERROR2
Definition psaerr2str.h:26
#define AES128_ERROR1
Definition psaerr2str.h:25