2 * Copyright (c) 2000 - 2014 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License
17 * @file ckmc-type-converter.cpp
18 * @author Dongsun Lee(ds73.lee@samsung.com)
20 * @brief new and free methods for the struct of CAPI
23 #include <ckmc/ckmc-type.h>
24 #include <ckmc-type-converter.h>
26 int to_ckm_error(int ckmc_error) {
28 case CKMC_ERROR_NONE: return CKM_API_SUCCESS;
29 case CKMC_ERROR_SOCKET: return CKM_API_ERROR_SOCKET;
30 case CKMC_ERROR_BAD_REQUEST: return CKM_API_ERROR_BAD_REQUEST;
31 case CKMC_ERROR_BAD_RESPONSE: return CKM_API_ERROR_BAD_RESPONSE;
32 case CKMC_ERROR_SEND_FAILED: return CKM_API_ERROR_SEND_FAILED;
33 case CKMC_ERROR_RECV_FAILED: return CKM_API_ERROR_RECV_FAILED;
34 case CKMC_ERROR_AUTHENTICATION_FAILED: return CKM_API_ERROR_AUTHENTICATION_FAILED;
35 case CKMC_ERROR_INVALID_PARAMETER: return CKM_API_ERROR_INPUT_PARAM;
36 case CKMC_ERROR_BUFFER_TOO_SMALL: return CKM_API_ERROR_BUFFER_TOO_SMALL;
37 case CKMC_ERROR_OUT_OF_MEMORY: return CKM_API_ERROR_OUT_OF_MEMORY;
38 case CKMC_ERROR_PERMISSION_DENIED: return CKM_API_ERROR_ACCESS_DENIED;
39 case CKMC_ERROR_SERVER_ERROR: return CKM_API_ERROR_SERVER_ERROR;
40 case CKMC_ERROR_DB_LOCKED: return CKM_API_ERROR_DB_LOCKED;
41 case CKMC_ERROR_DB_ERROR: return CKM_API_ERROR_DB_ERROR;
42 case CKMC_ERROR_DB_ALIAS_EXISTS: return CKM_API_ERROR_DB_ALIAS_EXISTS;
43 case CKMC_ERROR_DB_ALIAS_UNKNOWN: return CKM_API_ERROR_DB_ALIAS_UNKNOWN;
44 case CKMC_ERROR_VERIFICATION_FAILED: return CKM_API_ERROR_VERIFICATION_FAILED;
45 case CKMC_ERROR_INVALID_FORMAT: return CKM_API_ERROR_INVALID_FORMAT;
46 case CKMC_ERROR_FILE_ACCESS_DENIED: return CKM_API_ERROR_FILE_ACCESS_DENIED;
47 case CKMC_ERROR_NOT_EXPORTABLE: return CKM_API_ERROR_NOT_EXPORTABLE;
48 case CKMC_ERROR_FILE_SYSTEM: return CKM_API_ERROR_FILE_SYSTEM;
49 case CKMC_ERROR_NOT_SUPPORTED: return CKM_API_ERROR_NOT_SUPPORTED;
50 case CKMC_ERROR_UNKNOWN: return CKM_API_ERROR_UNKNOWN;
52 return CKM_API_ERROR_UNKNOWN;
55 int to_ckmc_error(int ckm_error) {
57 case CKM_API_SUCCESS: return CKMC_ERROR_NONE;
58 case CKM_API_ERROR_SOCKET: return CKMC_ERROR_SOCKET;
59 case CKM_API_ERROR_BAD_REQUEST: return CKMC_ERROR_BAD_REQUEST;
60 case CKM_API_ERROR_BAD_RESPONSE: return CKMC_ERROR_BAD_RESPONSE;
61 case CKM_API_ERROR_SEND_FAILED: return CKMC_ERROR_SEND_FAILED;
62 case CKM_API_ERROR_RECV_FAILED: return CKMC_ERROR_RECV_FAILED;
63 case CKM_API_ERROR_AUTHENTICATION_FAILED: return CKMC_ERROR_AUTHENTICATION_FAILED;
64 case CKM_API_ERROR_INPUT_PARAM: return CKMC_ERROR_INVALID_PARAMETER;
65 case CKM_API_ERROR_BUFFER_TOO_SMALL: return CKMC_ERROR_BUFFER_TOO_SMALL;
66 case CKM_API_ERROR_OUT_OF_MEMORY: return CKMC_ERROR_OUT_OF_MEMORY;
67 case CKM_API_ERROR_ACCESS_DENIED: return CKMC_ERROR_PERMISSION_DENIED;
68 case CKM_API_ERROR_SERVER_ERROR: return CKMC_ERROR_SERVER_ERROR;
69 case CKM_API_ERROR_DB_LOCKED: return CKMC_ERROR_DB_LOCKED;
70 case CKM_API_ERROR_DB_ERROR: return CKMC_ERROR_DB_ERROR;
71 case CKM_API_ERROR_DB_ALIAS_EXISTS: return CKMC_ERROR_DB_ALIAS_EXISTS;
72 case CKM_API_ERROR_DB_ALIAS_UNKNOWN: return CKMC_ERROR_DB_ALIAS_UNKNOWN;
73 case CKM_API_ERROR_VERIFICATION_FAILED: return CKMC_ERROR_VERIFICATION_FAILED;
74 case CKM_API_ERROR_INVALID_FORMAT: return CKMC_ERROR_INVALID_FORMAT;
75 case CKM_API_ERROR_FILE_ACCESS_DENIED: return CKMC_ERROR_FILE_ACCESS_DENIED;
76 case CKM_API_ERROR_NOT_EXPORTABLE: return CKMC_ERROR_NOT_EXPORTABLE;
77 case CKM_API_ERROR_FILE_SYSTEM: return CKMC_ERROR_FILE_SYSTEM;
78 case CKM_API_ERROR_NOT_SUPPORTED: return CKMC_ERROR_NOT_SUPPORTED;
79 case CKM_API_ERROR_UNKNOWN: return CKMC_ERROR_UNKNOWN;
81 return CKMC_ERROR_UNKNOWN;
84 ckmc_ocsp_status_e to_ckmc_ocsp_status(int ckm_ocsp_status) {
85 switch(ckm_ocsp_status) {
86 case CKM_API_OCSP_STATUS_GOOD: return CKMC_OCSP_STATUS_GOOD;
87 case CKM_API_OCSP_STATUS_UNSUPPORTED: return CKMC_OCSP_ERROR_UNSUPPORTED;
88 case CKM_API_OCSP_STATUS_REVOKED: return CKMC_OCSP_STATUS_REVOKED;
89 case CKM_API_OCSP_STATUS_NET_ERROR: return CKMC_OCSP_ERROR_NET;
90 case CKM_API_OCSP_STATUS_INVALID_URL: return CKMC_OCSP_ERROR_INVALID_URL;
91 case CKM_API_OCSP_STATUS_INVALID_RESPONSE: return CKMC_OCSP_ERROR_INVALID_RESPONSE;
92 case CKM_API_OCSP_STATUS_REMOTE_ERROR: return CKMC_OCSP_ERROR_REMOTE;
93 case CKM_API_OCSP_STATUS_INTERNAL_ERROR: return CKMC_OCSP_ERROR_INTERNAL;
94 default: return CKMC_OCSP_STATUS_UNKNOWN;
98 int access_to_permission_mask(ckmc_access_right_e ar, int & permissionMask)
103 permissionMask = CKMC_PERMISSION_READ;
106 case CKMC_AR_READ_REMOVE:
107 permissionMask = CKMC_PERMISSION_READ | CKMC_PERMISSION_REMOVE;
111 return CKMC_ERROR_INVALID_PARAMETER;
113 return CKMC_ERROR_NONE;