Simulated product dispenser
Fork of mbed-cloud-workshop-connect-HTS221 by
fcc_utils.c
00001 // ---------------------------------------------------------------------------- 00002 // Copyright 2016-2017 ARM Ltd. 00003 // 00004 // Licensed under the Apache License, Version 2.0 (the "License"); 00005 // you may not use this file except in compliance with the License. 00006 // You may obtain a copy of the License at 00007 // 00008 // http://www.apache.org/licenses/LICENSE-2.0 00009 // 00010 // Unless required by applicable law or agreed to in writing, software 00011 // distributed under the License is distributed on an "AS IS" BASIS, 00012 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00013 // See the License for the specific language governing permissions and 00014 // limitations under the License. 00015 // ---------------------------------------------------------------------------- 00016 00017 #include "factory_configurator_client.h" 00018 #include "fcc_status.h" 00019 #include "fcc_utils.h" 00020 #include "key_config_manager.h" 00021 #include "pv_error_handling.h" 00022 #include "fcc_sotp.h" 00023 00024 00025 const char g_sotp_entropy_data_type_name[] = "EntropyData"; 00026 const char g_sotp_rot_data_type_name[] = "ROTData"; 00027 const char g_sotp_factory_disable_type_name[] = "FactoryDisableFlag"; 00028 const char g_sotp_ca_server_id_type_name[] = "CAServerId"; 00029 const char g_sotp_time_type_name[] = "Time"; 00030 const char g_sotp_wrong_type_name[] = "Wrong_sotp_type"; 00031 00032 00033 fcc_status_e fcc_get_sotp_type_name(sotp_type_e sotp_type,char **sotp_type_name, size_t *sotp_type_name_size) 00034 { 00035 00036 fcc_status_e fcc_status = FCC_STATUS_SUCCESS; 00037 00038 SA_PV_ERR_RECOVERABLE_RETURN_IF((sotp_type_name_size == NULL), fcc_status, "Wrong sotp_type_name_size pointer"); 00039 00040 switch (sotp_type) { 00041 case SOTP_TYPE_ROT: 00042 *sotp_type_name = (char*)g_sotp_rot_data_type_name; 00043 *sotp_type_name_size = (size_t)strlen(g_sotp_rot_data_type_name); 00044 break; 00045 case SOTP_TYPE_FACTORY_DONE: 00046 *sotp_type_name = (char*)g_sotp_factory_disable_type_name; 00047 *sotp_type_name_size = (size_t)strlen(g_sotp_factory_disable_type_name); 00048 break; 00049 case SOTP_TYPE_RANDOM_SEED: 00050 *sotp_type_name = (char*)g_sotp_entropy_data_type_name; 00051 *sotp_type_name_size = (size_t)strlen(g_sotp_entropy_data_type_name); 00052 break; 00053 case SOTP_TYPE_SAVED_TIME: 00054 *sotp_type_name = (char*)g_sotp_time_type_name; 00055 *sotp_type_name_size = (size_t)strlen(g_sotp_time_type_name); 00056 break; 00057 case SOTP_TYPE_TRUSTED_TIME_SRV_ID: 00058 *sotp_type_name = (char*)g_sotp_ca_server_id_type_name; 00059 *sotp_type_name_size = (size_t)strlen(g_sotp_ca_server_id_type_name); 00060 break; 00061 default: 00062 SA_PV_LOG_ERR("Non existent sotp_type provided"); 00063 *sotp_type_name = (char*)g_sotp_wrong_type_name; 00064 *sotp_type_name_size = (size_t)strlen(g_sotp_wrong_type_name); 00065 return FCC_STATUS_INVALID_PARAMETER; 00066 } 00067 00068 return fcc_status; 00069 } 00070 00071 fcc_status_e fcc_convert_kcm_to_fcc_status(kcm_status_e kcm_result) 00072 { 00073 fcc_status_e fcc_status = FCC_STATUS_SUCCESS; 00074 00075 switch (kcm_result) { 00076 case KCM_STATUS_SUCCESS: 00077 fcc_status = FCC_STATUS_SUCCESS; 00078 break; 00079 case KCM_STATUS_ERROR: 00080 case KCM_STATUS_INVALID_PARAMETER: 00081 case KCM_STATUS_OUT_OF_MEMORY: 00082 case KCM_STATUS_INSUFFICIENT_BUFFER: 00083 fcc_status = FCC_STATUS_KCM_ERROR; 00084 break; 00085 case KCM_STATUS_ITEM_NOT_FOUND: 00086 fcc_status = FCC_STATUS_ITEM_NOT_EXIST; 00087 break; 00088 case KCM_STATUS_STORAGE_ERROR: 00089 case KCM_STATUS_META_DATA_NOT_FOUND: 00090 case KCM_STATUS_META_DATA_SIZE_ERROR: 00091 case KCM_STATUS_NOT_PERMITTED: 00092 case KCM_STATUS_ITEM_IS_EMPTY: 00093 case KCM_STATUS_INVALID_FILE_VERSION: 00094 case KCM_STATUS_UNKNOWN_STORAGE_ERROR: 00095 case KCM_STATUS_NOT_INITIALIZED: 00096 case KCM_STATUS_CLOSE_INCOMPLETE_CHAIN: 00097 case KCM_STATUS_INVALID_NUM_OF_CERT_IN_CHAIN: 00098 case KCM_STATUS_FILE_CORRUPTED: 00099 case KCM_STATUS_FILE_NAME_CORRUPTED: 00100 case KCM_STATUS_INVALID_FILE_ACCESS_MODE: 00101 case KCM_STATUS_CORRUPTED_CHAIN_FILE: 00102 case KCM_STATUS_FILE_NAME_TOO_LONG: 00103 fcc_status = FCC_STATUS_KCM_STORAGE_ERROR; 00104 break; 00105 case KCM_STATUS_SELF_GENERATED_CERTIFICATE_VERIFICATION_ERROR: 00106 fcc_status = FCC_STATUS_CERTIFICATE_PUBLIC_KEY_CORRELATION_ERROR; 00107 break; 00108 case KCM_STATUS_FILE_EXIST: 00109 case KCM_STATUS_KEY_EXIST: 00110 fcc_status = FCC_STATUS_KCM_FILE_EXIST_ERROR; 00111 break; 00112 case KCM_CRYPTO_STATUS_UNSUPPORTED_HASH_MODE: 00113 case KCM_CRYPTO_STATUS_PARSING_DER_PRIVATE_KEY: 00114 case KCM_CRYPTO_STATUS_PARSING_DER_PUBLIC_KEY: 00115 case KCM_CRYPTO_STATUS_PK_KEY_INVALID_FORMAT: 00116 case KCM_CRYPTO_STATUS_INVALID_PK_PUBKEY: 00117 case KCM_CRYPTO_STATUS_ECP_INVALID_KEY: 00118 case KCM_CRYPTO_STATUS_PK_KEY_INVALID_VERSION: 00119 case KCM_CRYPTO_STATUS_PK_PASSWORD_REQUIRED: 00120 case KCM_CRYPTO_STATUS_PRIVATE_KEY_VERIFICATION_FAILED: 00121 case KCM_CRYPTO_STATUS_PUBLIC_KEY_VERIFICATION_FAILED: 00122 case KCM_CRYPTO_STATUS_PK_UNKNOWN_PK_ALG: 00123 case KCM_CRYPTO_STATUS_UNSUPPORTED_CURVE: 00124 case KCM_CRYPTO_STATUS_PARSING_DER_CERT: 00125 case KCM_CRYPTO_STATUS_CERT_EXPIRED: 00126 case KCM_CRYPTO_STATUS_CERT_FUTURE: 00127 case KCM_CRYPTO_STATUS_CERT_MD_ALG: 00128 case KCM_CRYPTO_STATUS_CERT_PUB_KEY_TYPE: 00129 case KCM_CRYPTO_STATUS_CERT_PUB_KEY: 00130 case KCM_CRYPTO_STATUS_CERT_NOT_TRUSTED: 00131 case KCM_CRYPTO_STATUS_INVALID_X509_ATTR: 00132 case KCM_CRYPTO_STATUS_VERIFY_SIGNATURE_FAILED: 00133 case KCM_CRYPTO_STATUS_INVALID_MD_TYPE: 00134 case KCM_CRYPTO_STATUS_FAILED_TO_WRITE_SIGNATURE: 00135 case KCM_STATUS_CERTIFICATE_CHAIN_VERIFICATION_FAILED: 00136 case KCM_CRYPTO_STATUS_FAILED_TO_WRITE_PRIVATE_KEY: 00137 case KCM_CRYPTO_STATUS_FAILED_TO_WRITE_PUBLIC_KEY: 00138 case KCM_CRYPTO_STATUS_INVALID_OID: 00139 case KCM_CRYPTO_STATUS_INVALID_NAME_FORMAT: 00140 case KCM_CRYPTO_STATUS_FAILED_TO_WRITE_CSR: 00141 case KCM_MAX_STATUS: 00142 fcc_status = FCC_STATUS_KCM_CRYPTO_ERROR; 00143 break; 00144 00145 } 00146 return fcc_status; 00147 }
Generated on Tue Jul 12 2022 19:12:12 by 1.7.2