summaryrefslogtreecommitdiff
path: root/src/tspi/daa/daa_parameter.c
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2012-11-25 14:36:20 +0000
committerIgor Pashev <pashev.igor@gmail.com>2012-11-25 14:36:20 +0000
commitc3649a2def02c41d837ae1f79dda729ccb91e677 (patch)
treebea46dff212fdef977fe9094a70a939e8cc21885 /src/tspi/daa/daa_parameter.c
downloadtrousers-upstream.tar.gz
Imported Upstream version 0.3.9upstream/0.3.9upstream
Diffstat (limited to 'src/tspi/daa/daa_parameter.c')
-rw-r--r--src/tspi/daa/daa_parameter.c184
1 files changed, 184 insertions, 0 deletions
diff --git a/src/tspi/daa/daa_parameter.c b/src/tspi/daa/daa_parameter.c
new file mode 100644
index 0000000..58f240f
--- /dev/null
+++ b/src/tspi/daa/daa_parameter.c
@@ -0,0 +1,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";
+ }
+ }
+}