+const char * CKMErrorToString(int error) {
+ switch (error) {
+ ERRORDESCRIBE(CKM_API_SUCCESS);
+ ERRORDESCRIBE(CKM_API_ERROR_SOCKET);
+ ERRORDESCRIBE(CKM_API_ERROR_BAD_REQUEST);
+ ERRORDESCRIBE(CKM_API_ERROR_BAD_RESPONSE);
+ ERRORDESCRIBE(CKM_API_ERROR_SEND_FAILED);
+ ERRORDESCRIBE(CKM_API_ERROR_RECV_FAILED);
+ ERRORDESCRIBE(CKM_API_ERROR_AUTHENTICATION_FAILED);
+ ERRORDESCRIBE(CKM_API_ERROR_INPUT_PARAM);
+ ERRORDESCRIBE(CKM_API_ERROR_BUFFER_TOO_SMALL);
+ ERRORDESCRIBE(CKM_API_ERROR_OUT_OF_MEMORY);
+ ERRORDESCRIBE(CKM_API_ERROR_ACCESS_DENIED);
+ ERRORDESCRIBE(CKM_API_ERROR_SERVER_ERROR);
+ ERRORDESCRIBE(CKM_API_ERROR_DB_LOCKED);
+ ERRORDESCRIBE(CKM_API_ERROR_DB_ERROR);
+ ERRORDESCRIBE(CKM_API_ERROR_DB_ALIAS_EXISTS);
+ ERRORDESCRIBE(CKM_API_ERROR_DB_ALIAS_UNKNOWN);
+ ERRORDESCRIBE(CKM_API_ERROR_VERIFICATION_FAILED);
+ ERRORDESCRIBE(CKM_API_ERROR_INVALID_FORMAT);
+ ERRORDESCRIBE(CKM_API_ERROR_FILE_ACCESS_DENIED);
+ ERRORDESCRIBE(CKM_API_ERROR_NOT_EXPORTABLE);
+ ERRORDESCRIBE(CKM_API_ERROR_FILE_SYSTEM);
+ ERRORDESCRIBE(CKM_API_ERROR_NOT_SUPPORTED);
+ ERRORDESCRIBE(CKM_API_ERROR_UNKNOWN);
+ default: return "Error not defined";
+ }
+}
+#undef ERRORDESCRIBE
+