1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 | /* * Licensed Materials - Property of IBM * * trousers - An open source TCG Software Stack * * (C) Copyright International Business Machines Corp. 2006 * */ #include "daa_parameter.h" setenv("TCSD_FOREGROUND", "1", 1); static EVP_MD *digest = NULL; extern EVP_MD *DAA_PARAM_get_message_digest(void) { if( digest == NULL) { OpenSSL_add_all_digests(); digest = EVP_get_digestbyname( DAA_PARAM_MESSAGE_DIGEST_ALGORITHM); } return digest; } // from common.c (ltp-tss) char *err_string(TSS_RESULT r) { /* Check the return code to see if it is common to all layers. * If so, return it. */ switch (TSS_ERROR_CODE(r)) { case TSS_SUCCESS: return "TSS_SUCCESS"; default: break; } /* The return code is either unknown, or specific to a layer */ if (TSS_ERROR_LAYER(r) == TSS_LAYER_TPM) { switch (TSS_ERROR_CODE(r)) { case TCPA_E_AUTHFAIL: return "TCPA_E_AUTHFAIL"; case TCPA_E_BADINDEX: return "TCPA_E_BADINDEX"; case TCPA_E_AUDITFAILURE: return "TCPA_E_AUDITFAILURE"; case TCPA_E_CLEAR_DISABLED: return "TCPA_E_CLEAR_DISABLED"; case TCPA_E_DEACTIVATED: return "TCPA_E_DEACTIVATED"; case TCPA_E_DISABLED: return "TCPA_E_DISABLED"; case TCPA_E_DISABLED_CMD: return "TCPA_E_DISABLED_CMD"; case TCPA_E_FAIL: return "TCPA_E_FAIL"; case TCPA_E_INACTIVE: return "TCPA_E_INACTIVE"; case TCPA_E_INSTALL_DISABLED: return "TCPA_E_INSTALL_DISABLED"; case TCPA_E_INVALID_KEYHANDLE: return "TCPA_E_INVALID_KEYHANDLE"; case TCPA_E_KEYNOTFOUND: return "TCPA_E_KEYNOTFOUND"; case TCPA_E_NEED_SELFTEST: return "TCPA_E_NEED_SELFTEST"; case TCPA_E_MIGRATEFAIL: return "TCPA_E_MIGRATEFAIL"; case TCPA_E_NO_PCR_INFO: return "TCPA_E_NO_PCR_INFO"; case TCPA_E_NOSPACE: return "TCPA_E_NOSPACE"; case TCPA_E_NOSRK: return "TCPA_E_NOSRK"; case TCPA_E_NOTSEALED_BLOB: return "TCPA_E_NOTSEALED_BLOB"; case TCPA_E_OWNER_SET: return "TCPA_E_OWNER_SET"; case TCPA_E_RESOURCES: return "TCPA_E_RESOURCES"; case TCPA_E_SHORTRANDOM: return "TCPA_E_SHORTRANDOM"; case TCPA_E_SIZE: return "TCPA_E_SIZE"; case TCPA_E_WRONGPCRVAL: return "TCPA_E_WRONGPCRVAL"; case TCPA_E_BAD_PARAM_SIZE: return "TCPA_E_BAD_PARAM_SIZE"; case TCPA_E_SHA_THREAD: return "TCPA_E_SHA_THREAD"; case TCPA_E_SHA_ERROR: return "TCPA_E_SHA_ERROR"; case TCPA_E_FAILEDSELFTEST: return "TCPA_E_FAILEDSELFTEST"; case TCPA_E_AUTH2FAIL: return "TCPA_E_AUTH2FAIL"; case TCPA_E_BADTAG: return "TCPA_E_BADTAG"; case TCPA_E_IOERROR: return "TCPA_E_IOERROR"; case TCPA_E_ENCRYPT_ERROR: return "TCPA_E_ENCRYPT_ERROR"; case TCPA_E_DECRYPT_ERROR: return "TCPA_E_DECRYPT_ERROR"; case TCPA_E_INVALID_AUTHHANDLE: return "TCPA_E_INVALID_AUTHHANDLE"; case TCPA_E_NO_ENDORSEMENT: return "TCPA_E_NO_ENDORSEMENT"; case TCPA_E_INVALID_KEYUSAGE: return "TCPA_E_INVALID_KEYUSAGE"; case TCPA_E_WRONG_ENTITYTYPE: return "TCPA_E_WRONG_ENTITYTYPE"; case TCPA_E_INVALID_POSTINIT: return "TCPA_E_INVALID_POSTINIT"; case TCPA_E_INAPPROPRIATE_SIG: return "TCPA_E_INAPPROPRIATE_SIG"; case TCPA_E_BAD_KEY_PROPERTY: return "TCPA_E_BAD_KEY_PROPERTY"; case TCPA_E_BAD_MIGRATION: return "TCPA_E_BAD_MIGRATION"; case TCPA_E_BAD_SCHEME: return "TCPA_E_BAD_SCHEME"; case TCPA_E_BAD_DATASIZE: return "TCPA_E_BAD_DATASIZE"; case TCPA_E_BAD_MODE: return "TCPA_E_BAD_MODE"; case TCPA_E_BAD_PRESENCE: return "TCPA_E_BAD_PRESENCE"; case TCPA_E_BAD_VERSION: return "TCPA_E_BAD_VERSION"; case TCPA_E_RETRY: return "TCPA_E_RETRY"; default: return "UNKNOWN TPM ERROR"; } } else if (TSS_ERROR_LAYER(r) == TSS_LAYER_TDDL) { switch (TSS_ERROR_CODE(r)) { case TSS_E_FAIL: return "TSS_E_FAIL"; case TSS_E_BAD_PARAMETER: return "TSS_E_BAD_PARAMETER"; case TSS_E_INTERNAL_ERROR: return "TSS_E_INTERNAL_ERROR"; case TSS_E_NOTIMPL: return "TSS_E_NOTIMPL"; case TSS_E_PS_KEY_NOTFOUND: return "TSS_E_PS_KEY_NOTFOUND"; case TSS_E_KEY_ALREADY_REGISTERED: return "TSS_E_KEY_ALREADY_REGISTERED"; case TSS_E_CANCELED: return "TSS_E_CANCELED"; case TSS_E_TIMEOUT: return "TSS_E_TIMEOUT"; case TSS_E_OUTOFMEMORY: return "TSS_E_OUTOFMEMORY"; case TSS_E_TPM_UNEXPECTED: return "TSS_E_TPM_UNEXPECTED"; case TSS_E_COMM_FAILURE: return "TSS_E_COMM_FAILURE"; case TSS_E_TPM_UNSUPPORTED_FEATURE: return "TSS_E_TPM_UNSUPPORTED_FEATURE"; case TDDL_E_COMPONENT_NOT_FOUND: return "TDDL_E_COMPONENT_NOT_FOUND"; case TDDL_E_ALREADY_OPENED: return "TDDL_E_ALREADY_OPENED"; case TDDL_E_BADTAG: return "TDDL_E_BADTAG"; case TDDL_E_INSUFFICIENT_BUFFER: return "TDDL_E_INSUFFICIENT_BUFFER"; case TDDL_E_COMMAND_COMPLETED: return "TDDL_E_COMMAND_COMPLETED"; case TDDL_E_ALREADY_CLOSED: return "TDDL_E_ALREADY_CLOSED"; case TDDL_E_IOERROR: return "TDDL_E_IOERROR"; default: return "UNKNOWN TDDL ERROR"; } } else if (TSS_ERROR_LAYER(r) == TSS_LAYER_TCS) { switch (TSS_ERROR_CODE(r)) { case TSS_E_FAIL: return "TSS_E_FAIL"; case TSS_E_BAD_PARAMETER: return "TSS_E_BAD_PARAMETER"; case TSS_E_INTERNAL_ERROR: return "TSS_E_INTERNAL_ERROR"; case TSS_E_NOTIMPL: return "TSS_E_NOTIMPL"; case TSS_E_PS_KEY_NOTFOUND: return "TSS_E_PS_KEY_NOTFOUND"; case TSS_E_KEY_ALREADY_REGISTERED: return "TSS_E_KEY_ALREADY_REGISTERED"; case TSS_E_CANCELED: return "TSS_E_CANCELED"; case TSS_E_TIMEOUT: return "TSS_E_TIMEOUT"; case TSS_E_OUTOFMEMORY: return "TSS_E_OUTOFMEMORY"; case TSS_E_TPM_UNEXPECTED: return "TSS_E_TPM_UNEXPECTED"; case TSS_E_COMM_FAILURE: return "TSS_E_COMM_FAILURE"; case TSS_E_TPM_UNSUPPORTED_FEATURE: return "TSS_E_TPM_UNSUPPORTED_FEATURE"; case TCS_E_KEY_MISMATCH: return "TCS_E_KEY_MISMATCH"; case TCS_E_KM_LOADFAILED: return "TCS_E_KM_LOADFAILED"; case TCS_E_KEY_CONTEXT_RELOAD: return "TCS_E_KEY_CONTEXT_RELOAD"; case TCS_E_INVALID_CONTEXTHANDLE: return "TCS_E_INVALID_CONTEXTHANDLE"; case TCS_E_INVALID_KEYHANDLE: return "TCS_E_INVALID_KEYHANDLE"; case TCS_E_INVALID_AUTHHANDLE: return "TCS_E_INVALID_AUTHHANDLE"; case TCS_E_INVALID_AUTHSESSION: return "TCS_E_INVALID_AUTHSESSION"; case TCS_E_INVALID_KEY: return "TCS_E_INVALID_KEY"; default: return "UNKNOWN TCS ERROR"; } } else { switch (TSS_ERROR_CODE(r)) { case TSS_E_FAIL: return "TSS_E_FAIL"; case TSS_E_BAD_PARAMETER: return "TSS_E_BAD_PARAMETER"; case TSS_E_INTERNAL_ERROR: return "TSS_E_INTERNAL_ERROR"; case TSS_E_NOTIMPL: return "TSS_E_NOTIMPL"; case TSS_E_PS_KEY_NOTFOUND: return "TSS_E_PS_KEY_NOTFOUND"; case TSS_E_KEY_ALREADY_REGISTERED: return "TSS_E_KEY_ALREADY_REGISTERED"; case TSS_E_CANCELED: return "TSS_E_CANCELED"; case TSS_E_TIMEOUT: return "TSS_E_TIMEOUT"; case TSS_E_OUTOFMEMORY: return "TSS_E_OUTOFMEMORY"; case TSS_E_TPM_UNEXPECTED: return "TSS_E_TPM_UNEXPECTED"; case TSS_E_COMM_FAILURE: return "TSS_E_COMM_FAILURE"; case TSS_E_TPM_UNSUPPORTED_FEATURE: return "TSS_E_TPM_UNSUPPORTED_FEATURE"; case TSS_E_INVALID_OBJECT_TYPE: return "TSS_E_INVALID_OBJECT_TYPE"; case TSS_E_INVALID_OBJECT_INITFLAG: return "TSS_E_INVALID_OBJECT_INITFLAG"; case TSS_E_INVALID_HANDLE: return "TSS_E_INVALID_HANDLE"; case TSS_E_NO_CONNECTION: return "TSS_E_NO_CONNECTION"; case TSS_E_CONNECTION_FAILED: return "TSS_E_CONNECTION_FAILED"; case TSS_E_CONNECTION_BROKEN: return "TSS_E_CONNECTION_BROKEN"; case TSS_E_HASH_INVALID_ALG: return "TSS_E_HASH_INVALID_ALG"; case TSS_E_HASH_INVALID_LENGTH: return "TSS_E_HASH_INVALID_LENGTH"; case TSS_E_HASH_NO_DATA: return "TSS_E_HASH_NO_DATA"; case TSS_E_SILENT_CONTEXT: return "TSS_E_SILENT_CONTEXT"; case TSS_E_INVALID_ATTRIB_FLAG: return "TSS_E_INVALID_ATTRIB_FLAG"; case TSS_E_INVALID_ATTRIB_SUBFLAG: return "TSS_E_INVALID_ATTRIB_SUBFLAG"; case TSS_E_INVALID_ATTRIB_DATA: return "TSS_E_INVALID_ATTRIB_DATA"; case TSS_E_NO_PCRS_SET: return "TSS_E_NO_PCRS_SET"; case TSS_E_KEY_NOT_LOADED: return "TSS_E_KEY_NOT_LOADED"; case TSS_E_KEY_NOT_SET: return "TSS_E_KEY_NOT_SET"; case TSS_E_VALIDATION_FAILED: return "TSS_E_VALIDATION_FAILED"; case TSS_E_TSP_AUTHREQUIRED: return "TSS_E_TSP_AUTHREQUIRED"; case TSS_E_TSP_AUTH2REQUIRED: return "TSS_E_TSP_AUTH2REQUIRED"; case TSS_E_TSP_AUTHFAIL: return "TSS_E_TSP_AUTHFAIL"; case TSS_E_TSP_AUTH2FAIL: return "TSS_E_TSP_AUTH2FAIL"; case TSS_E_KEY_NO_MIGRATION_POLICY: return "TSS_E_KEY_NO_MIGRATION_POLICY"; case TSS_E_POLICY_NO_SECRET: return "TSS_E_POLICY_NO_SECRET"; case TSS_E_INVALID_OBJ_ACCESS: return "TSS_E_INVALID_OBJ_ACCESS"; case TSS_E_INVALID_ENCSCHEME: return "TSS_E_INVALID_ENCSCHEME"; case TSS_E_INVALID_SIGSCHEME: return "TSS_E_INVALID_SIGSCHEME"; case TSS_E_ENC_INVALID_LENGTH: return "TSS_E_ENC_INVALID_LENGTH"; case TSS_E_ENC_NO_DATA: return "TSS_E_ENC_NO_DATA"; case TSS_E_ENC_INVALID_TYPE: return "TSS_E_ENC_INVALID_TYPE"; case TSS_E_INVALID_KEYUSAGE: return "TSS_E_INVALID_KEYUSAGE"; case TSS_E_VERIFICATION_FAILED: return "TSS_E_VERIFICATION_FAILED"; case TSS_E_HASH_NO_IDENTIFIER: return "TSS_E_HASH_NO_IDENTIFIER"; default: return "UNKNOWN TSS ERROR"; } } } |