obj_migdata.h revision 1.1.1.2
1 2/* 3 * Licensed Materials - Property of IBM 4 * 5 * trousers - An open source TCG Software Stack 6 * 7 * (C) Copyright International Business Machines Corp. 2007 8 * 9 */ 10 11#ifndef _OBJ_MIGDATA_H_ 12#define _OBJ_MIGDATA_H_ 13 14#ifdef TSS_BUILD_CMK 15 16/* structures */ 17struct tr_migdata_obj { 18 /* TSS_MIGATTRIB_MIGRATIONTICKET (from AuthorizeMigrationTicket) */ 19 UINT32 migTicketSize; 20 BYTE *migTicket; 21 22 /* TSS_MIGATTRIB_AUTHORITY_DATA/TSS_MIGATTRIB_AUTHORITY_MSALIST 23 - Recalculate the msaDigest 24 or 25 TSS_MIGATTRIB_MIGRATIONBLOB/TSS_MIGATTRIB_MIG_MSALIST_PUBKEY_BLOB 26 - Create a digest from the pubkey blob and append to the list 27 - Recalculate the msaDigest */ 28 TPM_MSA_COMPOSITE msaList; 29 /* TSS_MIGATTRIB_AUTHORITY_DATA/TSS_MIGATTRIB_AUTHORITY_DIGEST */ 30 TPM_DIGEST msaDigest; 31 /* TSS_MIGATTRIB_AUTHORITY_DATA/TSS_MIGATTRIB_AUTHORITY_APPROVAL_HMAC */ 32 TPM_HMAC msaHmac; 33 34 /* TSS_MIGATTRIB_MIG_AUTH_DATA/TSS_MIGATTRIB_MIG_AUTH_AUTHORITY_DIGEST 35 or 36 TSS_MIGATTRIB_MIGRATIONBLOB/TSS_MIGATTRIB_MIG_AUTHORITY_PUBKEY_BLOB 37 - Create a digest from the pubkey blob */ 38 TPM_DIGEST maDigest; 39 /* TSS_MIGATTRIB_MIG_AUTH_DATA/TSS_MIGATTRIB_MIG_AUTH_DESTINATION_DIGEST 40 or 41 TSS_MIGATTRIB_MIGRATIONBLOB/TSS_MIGATTRIB_MIG_DESTINATION_PUBKEY_BLOB 42 - Create a digest from the pubkey blob */ 43 TPM_DIGEST destDigest; 44 /* TSS_MIGATTRIB_MIG_AUTH_DATA/TSS_MIGATTRIB_MIG_AUTH_SOURCE_DIGEST 45 or 46 TSS_MIGATTRIB_MIGRATIONBLOB/TSS_MIGATTRIB_MIG_SOURCE_PUBKEY_BLOB 47 - Create a digest from the pubkey blob */ 48 TPM_DIGEST srcDigest; 49 50 /* TSS_MIGATTRIB_TICKET_DATA/TSS_MIGATTRIB_TICKET_SIG_DIGEST */ 51 TPM_DIGEST sigData; 52 /* TSS_MIGATTRIB_TICKET_DATA/TSS_MIGATTRIB_TICKET_SIG_VALUE */ 53 UINT32 sigValueSize; 54 BYTE *sigValue; 55 /* TSS_MIGATTRIB_TICKET_DATA/TSS_MIGATTRIB_TICKET_SIG_TICKET */ 56 TPM_HMAC sigTicket; 57 58 /* TSS_MIGATTRIB_MIGRATIONBLOB/TSS_MIGATTRIB_MIGRATION_XOR_BLOB */ 59 UINT32 blobSize; 60 BYTE *blob; 61}; 62 63/* obj_migdata.c */ 64void migdata_free(void *data); 65TSS_BOOL obj_is_migdata(TSS_HOBJECT); 66TSS_RESULT obj_migdata_add(TSS_HCONTEXT, TSS_HOBJECT *); 67TSS_RESULT obj_migdata_remove(TSS_HMIGDATA, TSS_HOBJECT); 68TSS_RESULT obj_migdata_get_tsp_context(TSS_HMIGDATA, TSS_HCONTEXT *); 69 70TSS_RESULT obj_migdata_set_migrationblob(TSS_HMIGDATA, UINT32, UINT32, BYTE *); 71TSS_RESULT obj_migdata_get_migrationblob(TSS_HMIGDATA, UINT32, UINT32 *, BYTE **); 72TSS_RESULT obj_migdata_set_authoritydata(TSS_HMIGDATA, UINT32, UINT32, BYTE *); 73TSS_RESULT obj_migdata_get_authoritydata(TSS_HMIGDATA, UINT32, UINT32 *, BYTE **); 74TSS_RESULT obj_migdata_set_migauthdata(TSS_HMIGDATA, UINT32, UINT32, BYTE *); 75TSS_RESULT obj_migdata_get_migauthdata(TSS_HMIGDATA, UINT32, UINT32 *, BYTE **); 76TSS_RESULT obj_migdata_set_ticketdata(TSS_HMIGDATA, UINT32, UINT32, BYTE *); 77TSS_RESULT obj_migdata_get_ticketdata(TSS_HMIGDATA, UINT32, UINT32 *, BYTE **); 78 79TSS_RESULT obj_migdata_set_ticket_blob(TSS_HMIGDATA, UINT32, BYTE *); 80TSS_RESULT obj_migdata_get_ticket_blob(TSS_HMIGDATA, UINT32 *, BYTE **); 81 82TSS_RESULT obj_migdata_set_msa_list(TSS_HMIGDATA, UINT32, BYTE *); 83TSS_RESULT obj_migdata_get_msa_list(TSS_HMIGDATA, UINT32 *, BYTE **); 84TSS_RESULT obj_migdata_set_msa_pubkey(TSS_HMIGDATA, UINT32, BYTE *); 85TSS_RESULT obj_migdata_set_msa_digest(TSS_HMIGDATA, UINT32, BYTE *); 86TSS_RESULT obj_migdata_get_msa_digest(TSS_HMIGDATA, UINT32 *, BYTE **); 87TSS_RESULT obj_migdata_get_msa_list_blob(TSS_HMIGDATA, UINT32 *, BYTE **); 88 89TSS_RESULT obj_migdata_set_msa_hmac(TSS_HMIGDATA, UINT32, BYTE *); 90TSS_RESULT obj_migdata_get_msa_hmac(TSS_HMIGDATA, UINT32 *, BYTE **); 91 92TSS_RESULT obj_migdata_set_ma_pubkey(TSS_HMIGDATA, UINT32, BYTE *); 93TSS_RESULT obj_migdata_set_ma_digest(TSS_HMIGDATA, UINT32, BYTE *); 94TSS_RESULT obj_migdata_get_ma_digest(TSS_HMIGDATA, UINT32 *, BYTE **); 95TSS_RESULT obj_migdata_set_dest_pubkey(TSS_HMIGDATA, UINT32, BYTE *); 96TSS_RESULT obj_migdata_set_dest_digest(TSS_HMIGDATA, UINT32, BYTE *); 97TSS_RESULT obj_migdata_get_dest_digest(TSS_HMIGDATA, UINT32 *, BYTE **); 98TSS_RESULT obj_migdata_set_src_pubkey(TSS_HMIGDATA, UINT32, BYTE *); 99TSS_RESULT obj_migdata_set_src_digest(TSS_HMIGDATA, UINT32, BYTE *); 100TSS_RESULT obj_migdata_get_src_digest(TSS_HMIGDATA, UINT32 *, BYTE **); 101TSS_RESULT obj_migdata_set_cmk_auth(TSS_HMIGDATA, UINT32, BYTE *); 102TSS_RESULT obj_migdata_get_cmk_auth(TSS_HMIGDATA, TPM_CMK_AUTH *); 103TSS_RESULT obj_migdata_get_cmk_auth_blob(TSS_HMIGDATA, UINT32 *, BYTE **); 104 105TSS_RESULT obj_migdata_set_sig_data(TSS_HMIGDATA, UINT32, BYTE *); 106TSS_RESULT obj_migdata_get_sig_data(TSS_HMIGDATA, UINT32 *, BYTE **); 107TSS_RESULT obj_migdata_set_sig_value(TSS_HMIGDATA, UINT32, BYTE *); 108TSS_RESULT obj_migdata_get_sig_value(TSS_HMIGDATA, UINT32 *, BYTE **); 109TSS_RESULT obj_migdata_set_sig_ticket(TSS_HMIGDATA, UINT32, BYTE *); 110TSS_RESULT obj_migdata_get_sig_ticket(TSS_HMIGDATA, UINT32 *, BYTE **); 111 112TSS_RESULT obj_migdata_set_blob(TSS_HMIGDATA, UINT32, BYTE *); 113TSS_RESULT obj_migdata_get_blob(TSS_HMIGDATA, UINT32 *, BYTE **); 114 115TSS_RESULT obj_migdata_calc_pubkey_digest(UINT32, BYTE *, TPM_DIGEST *); 116TSS_RESULT obj_migdata_calc_msa_digest(struct tr_migdata_obj *); 117TSS_RESULT obj_migdata_calc_sig_data_digest(struct tr_migdata_obj *); 118 119#define MIGDATA_LIST_DECLARE struct obj_list migdata_list 120#define MIGDATA_LIST_DECLARE_EXTERN extern struct obj_list migdata_list 121#define MIGDATA_LIST_INIT() tspi_list_init(&migdata_list) 122#define MIGDATA_LIST_CONNECT(a,b) obj_connectContext_list(&migdata_list, a, b) 123#define MIGDATA_LIST_CLOSE(a) obj_list_close(&migdata_list, &migdata_free, a) 124 125#else 126 127#define obj_is_migdata(a) FALSE 128 129#define MIGDATA_LIST_DECLARE 130#define MIGDATA_LIST_DECLARE_EXTERN 131#define MIGDATA_LIST_INIT() 132#define MIGDATA_LIST_CONNECT(a,b) 133#define MIGDATA_LIST_CLOSE(a) 134 135#endif 136 137#endif 138