Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: FXAS21002 FXOS8700Q
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 "pal_errors.h" 00023 00024 fcc_status_e fcc_convert_kcm_to_fcc_status(kcm_status_e kcm_result) 00025 { 00026 fcc_status_e fcc_status = FCC_STATUS_SUCCESS; 00027 00028 switch (kcm_result) { 00029 case KCM_STATUS_SUCCESS: 00030 fcc_status = FCC_STATUS_SUCCESS; 00031 break; 00032 case KCM_STATUS_RBP_ERROR: 00033 fcc_status = FCC_STATUS_STORE_ERROR; 00034 break; 00035 case KCM_STATUS_ERROR: 00036 case KCM_STATUS_INVALID_PARAMETER: 00037 case KCM_STATUS_OUT_OF_MEMORY: 00038 case KCM_STATUS_INSUFFICIENT_BUFFER: 00039 fcc_status = FCC_STATUS_KCM_ERROR; 00040 break; 00041 case KCM_STATUS_ITEM_NOT_FOUND: 00042 fcc_status = FCC_STATUS_ITEM_NOT_EXIST; 00043 break; 00044 case KCM_STATUS_STORAGE_ERROR: 00045 case KCM_STATUS_META_DATA_NOT_FOUND: 00046 case KCM_STATUS_META_DATA_SIZE_ERROR: 00047 case KCM_STATUS_NOT_PERMITTED: 00048 case KCM_STATUS_ITEM_IS_EMPTY: 00049 case KCM_STATUS_INVALID_FILE_VERSION: 00050 case KCM_STATUS_UNKNOWN_STORAGE_ERROR: 00051 case KCM_STATUS_NOT_INITIALIZED: 00052 case KCM_STATUS_CLOSE_INCOMPLETE_CHAIN: 00053 case KCM_STATUS_INVALID_NUM_OF_CERT_IN_CHAIN: 00054 case KCM_STATUS_FILE_CORRUPTED: 00055 case KCM_STATUS_FILE_NAME_CORRUPTED: 00056 case KCM_STATUS_INVALID_FILE_ACCESS_MODE: 00057 case KCM_STATUS_CORRUPTED_CHAIN_FILE: 00058 case KCM_STATUS_FILE_NAME_INVALID: 00059 case KCM_STATUS_FILE_NAME_TOO_LONG: 00060 fcc_status = FCC_STATUS_KCM_STORAGE_ERROR; 00061 break; 00062 case KCM_STATUS_SELF_GENERATED_CERTIFICATE_VERIFICATION_ERROR: 00063 fcc_status = FCC_STATUS_CERTIFICATE_PUBLIC_KEY_CORRELATION_ERROR; 00064 break; 00065 case KCM_STATUS_FILE_EXIST: 00066 case KCM_STATUS_KEY_EXIST: 00067 fcc_status = FCC_STATUS_KCM_FILE_EXIST_ERROR; 00068 break; 00069 case KCM_CRYPTO_STATUS_UNSUPPORTED_HASH_MODE: 00070 case KCM_CRYPTO_STATUS_PARSING_DER_PRIVATE_KEY: 00071 case KCM_CRYPTO_STATUS_PARSING_DER_PUBLIC_KEY: 00072 case KCM_CRYPTO_STATUS_PK_KEY_INVALID_FORMAT: 00073 case KCM_CRYPTO_STATUS_INVALID_PK_PUBKEY: 00074 case KCM_CRYPTO_STATUS_ECP_INVALID_KEY: 00075 case KCM_CRYPTO_STATUS_PK_KEY_INVALID_VERSION: 00076 case KCM_CRYPTO_STATUS_PK_PASSWORD_REQUIRED: 00077 case KCM_CRYPTO_STATUS_PRIVATE_KEY_VERIFICATION_FAILED: 00078 case KCM_CRYPTO_STATUS_PUBLIC_KEY_VERIFICATION_FAILED: 00079 case KCM_CRYPTO_STATUS_PK_UNKNOWN_PK_ALG: 00080 case KCM_CRYPTO_STATUS_UNSUPPORTED_CURVE: 00081 case KCM_CRYPTO_STATUS_PARSING_DER_CERT: 00082 case KCM_CRYPTO_STATUS_CERT_EXPIRED: 00083 case KCM_CRYPTO_STATUS_CERT_FUTURE: 00084 case KCM_CRYPTO_STATUS_CERT_MD_ALG: 00085 case KCM_CRYPTO_STATUS_CERT_PUB_KEY_TYPE: 00086 case KCM_CRYPTO_STATUS_CERT_PUB_KEY: 00087 case KCM_CRYPTO_STATUS_CERT_NOT_TRUSTED: 00088 case KCM_CRYPTO_STATUS_INVALID_X509_ATTR: 00089 case KCM_CRYPTO_STATUS_VERIFY_SIGNATURE_FAILED: 00090 case KCM_CRYPTO_STATUS_INVALID_MD_TYPE: 00091 case KCM_CRYPTO_STATUS_FAILED_TO_WRITE_SIGNATURE: 00092 case KCM_STATUS_CERTIFICATE_CHAIN_VERIFICATION_FAILED: 00093 case KCM_CRYPTO_STATUS_FAILED_TO_WRITE_PRIVATE_KEY: 00094 case KCM_CRYPTO_STATUS_FAILED_TO_WRITE_PUBLIC_KEY: 00095 case KCM_CRYPTO_STATUS_INVALID_OID: 00096 case KCM_CRYPTO_STATUS_INVALID_NAME_FORMAT: 00097 case KCM_CRYPTO_STATUS_FAILED_TO_WRITE_CSR: 00098 case KCM_CRYPTO_STATUS_SET_EXTENSION_FAILED: 00099 case KCM_MAX_STATUS: 00100 fcc_status = FCC_STATUS_KCM_CRYPTO_ERROR; 00101 break; 00102 00103 } 00104 return fcc_status; 00105 } 00106 00107 00108 fcc_status_e fcc_convert_pal_to_fcc_status(palStatus_t pal_result) 00109 { 00110 fcc_status_e fcc_status = FCC_STATUS_SUCCESS; 00111 00112 switch (pal_result) { 00113 00114 case PAL_ERR_INVALID_ARGUMENT : 00115 fcc_status = FCC_STATUS_KCM_ERROR; 00116 break; 00117 case PAL_ERR_ITEM_EXIST : 00118 fcc_status = FCC_STATUS_KCM_FILE_EXIST_ERROR; 00119 break; 00120 case PAL_ERR_ITEM_NOT_EXIST : 00121 fcc_status = FCC_STATUS_ITEM_NOT_EXIST; 00122 break; 00123 case PAL_ERR_ENTROPY_EXISTS: 00124 fcc_status = FCC_STATUS_ENTROPY_ERROR; 00125 break; 00126 case PAL_ERR_NOT_SUPPORTED : 00127 fcc_status = FCC_STATUS_NOT_SUPPORTED; 00128 break; 00129 default: 00130 fcc_status = FCC_STATUS_ERROR; 00131 break; 00132 00133 } 00134 00135 return fcc_status; 00136 } 00137 00138
Generated on Tue Jul 12 2022 20:20:59 by
