* @file ckmc-error.h
* @version 1.0
* @brief This file contains error codes of the Key Manager
-*/
+ */
#ifndef __TIZEN_CORE_CKMC_ERROR_H_
#define __TIZEN_CORE_CKMC_ERROR_H_
* @{
*/
-
#define KEY_MANAGER_ERROR_CLASS 0x0FFF0000
-
/**
* @brief Enumeration for Key Manager Errors.
* @since_tizen 2.3
*/
+
typedef enum{
CKMC_ERROR_NONE = TIZEN_ERROR_NONE, /**< Successful */
CKMC_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid function parameter */
CKMC_ERROR_VERIFICATION_FAILED = KEY_MANAGER_ERROR_CLASS | 0x0D, /**< CA certificate(s) were unknown and chain could not be created */
CKMC_ERROR_INVALID_FORMAT = KEY_MANAGER_ERROR_CLASS | 0x0E, /**< A provided file or binary has not a valid format */
CKMC_ERROR_FILE_ACCESS_DENIED = KEY_MANAGER_ERROR_CLASS | 0x0F, /**< A provided file or binary has not a valid format */
- CKMC_ERROR_NOT_EXPORTABLE = KEY_MANAGER_ERROR_CLASS | 0x10, /**< Key is not exportable. It could not be returned to client */
- CKMC_ERROR_UNKNOWN = KEY_MANAGER_ERROR_CLASS | 0x11, /**< A provided file or binary has not a valid format */
+ CKMC_ERROR_NOT_EXPORTABLE = KEY_MANAGER_ERROR_CLASS | 0x10, /**< Key is not exportable. It could not be returned to client */
+ CKMC_ERROR_UNKNOWN = KEY_MANAGER_ERROR_CLASS | 0xFF, /**< A provided file or binary has not a valid format */
} key_manager_error_e;
-
/**
* @}
*/
* @retval #CKMC_ERROR_DB_ERROR failed due to the error with unknown reason
* @retval #CKMC_ERROR_DB_ALIAS_UNKNOWN alias doesn't exists.
* @retval #CKMC_ERROR_PERMISSION_DENIED failed to access key manager
- *
+ * @retval #CKMC_ERROR_NOT_EXPORTABLE a key is not exportable and could not be returned to client
* @pre User must be already logged in and his user key is already loaded into memory in plain text form.
*
* @see ckmc_save_key()
* @retval #CKMC_ERROR_DB_ERROR failed due to the error with unknown reason
* @retval #CKMC_ERROR_DB_ALIAS_UNKNOWN alias doesn't exists.
* @retval #CKMC_ERROR_PERMISSION_DENIED failed to access key manager
+ * @retval #CKMC_ERROR_NOT_EXPORTABLE a certification is not exportable and could not be returned to client
*
* @pre User must be already logged in and his user key is already loaded into memory in plain text form.
*
* @retval #CKMC_ERROR_DB_ERROR failed due to the error with unknown reason
* @retval #CKMC_ERROR_DB_ALIAS_UNKNOWN alias doesn't exists.
* @retval #CKMC_ERROR_PERMISSION_DENIED failed to access key manager
+ * @retval #CKMC_ERROR_NOT_EXPORTABLE data is not exportable and could not be returned to client
*
* @pre User must be already logged in and his user key is already loaded into memory in plain text form.
*
#include <ckmc/ckmc-error.h>
#include <ckm/ckm-type.h>
+#include <ckmc-type-converter.h>
const char * ckmc_error_to_string(int error) {
- return CKM::ErrorToString(error);
+ return CKM::ErrorToString(to_ckm_error(error));
}
#endif
int to_ckmc_error(int ckm_error);
+int to_ckm_error(int ckmc_error);
#ifdef __cplusplus
}
return ckmc_cert_new(output.data(), output.size(), CKMC_FORM_DER, cert);
}
+int to_ckm_error(int ckmc_error) {
+ switch(ckmc_error) {
+ case CKMC_ERROR_NONE: return CKM_API_SUCCESS;
+ case CKMC_ERROR_SOCKET: return CKM_API_ERROR_SOCKET;
+ case CKMC_ERROR_BAD_REQUEST: return CKM_API_ERROR_BAD_REQUEST;
+ case CKMC_ERROR_BAD_RESPONSE: return CKM_API_ERROR_BAD_RESPONSE;
+ case CKMC_ERROR_SEND_FAILED: return CKM_API_ERROR_SEND_FAILED;
+ case CKMC_ERROR_RECV_FAILED: return CKM_API_ERROR_RECV_FAILED;
+ case CKMC_ERROR_AUTHENTICATION_FAILED: return CKM_API_ERROR_AUTHENTICATION_FAILED;
+ case CKMC_ERROR_INVALID_PARAMETER: return CKM_API_ERROR_INPUT_PARAM;
+ case CKMC_ERROR_BUFFER_TOO_SMALL: return CKM_API_ERROR_BUFFER_TOO_SMALL;
+ case CKMC_ERROR_OUT_OF_MEMORY: return CKM_API_ERROR_OUT_OF_MEMORY;
+ case CKMC_ERROR_PERMISSION_DENIED: return CKM_API_ERROR_ACCESS_DENIED;
+ case CKMC_ERROR_SERVER_ERROR: return CKM_API_ERROR_SERVER_ERROR;
+ case CKMC_ERROR_DB_LOCKED: return CKM_API_ERROR_DB_LOCKED;
+ case CKMC_ERROR_DB_ERROR: return CKM_API_ERROR_DB_ERROR;
+ case CKMC_ERROR_DB_ALIAS_EXISTS: return CKM_API_ERROR_DB_ALIAS_EXISTS;
+ case CKMC_ERROR_DB_ALIAS_UNKNOWN: return CKM_API_ERROR_DB_ALIAS_UNKNOWN;
+ case CKMC_ERROR_VERIFICATION_FAILED: return CKM_API_ERROR_VERIFICATION_FAILED;
+ case CKMC_ERROR_INVALID_FORMAT: return CKM_API_ERROR_INVALID_FORMAT;
+ case CKMC_ERROR_FILE_ACCESS_DENIED: return CKM_API_ERROR_FILE_ACCESS_DENIED;
+ case CKMC_ERROR_NOT_EXPORTABLE: return CKM_API_ERROR_NOT_EXPORTABLE;
+ case CKMC_ERROR_UNKNOWN: return CKM_API_ERROR_UNKNOWN;
+ }
+ return CKMC_ERROR_UNKNOWN;
+}
+
int to_ckmc_error(int ckm_error) {
switch(ckm_error) {
case CKM_API_SUCCESS: return CKMC_ERROR_NONE;
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_UNKNOWN);
default:
return "Error not defined";