|
|
|
@ -56,10 +56,10 @@ int main(int argc, char *argv[]) { |
|
|
|
switch(argc) { |
|
|
|
case 3: |
|
|
|
if(0 == strncasecmp("--join", argv[1], 6) || 0 == strncasecmp("-j", argv[1], 2)) { |
|
|
|
if (0 != read_public_key_from_files(member.pk_in, &sk_handle, member_tpm_key_file, member_tpm_handle_file)) { |
|
|
|
printf("Could not load TPM key with '%s' and '%s', trying to create a new key...\n", member_tpm_key_file, member_tpm_handle_file); |
|
|
|
if (0 != create_key(member_tpm_key_file, member_tpm_handle_file) || 0 != read_public_key_from_files(member.pk_in, &sk_handle, member_tpm_key_file, member_tpm_handle_file)) { |
|
|
|
printf("Error: Creating or Loading TPM key with '%s' and '%s' failed.\n", member_tpm_key_file, member_tpm_handle_file); |
|
|
|
if (0 != read_public_key_from_files(member.pk_in, &sk_handle, MEMBER_TPM_KEY_FILE, MEMBER_TPM_HANDLE_FILE)) { |
|
|
|
printf("Could not load TPM key with '%s' and '%s', trying to create a new key...\n", MEMBER_TPM_KEY_FILE, MEMBER_TPM_HANDLE_FILE); |
|
|
|
if (0 != create_key(MEMBER_TPM_KEY_FILE, MEMBER_TPM_HANDLE_FILE) || 0 != read_public_key_from_files(member.pk_in, &sk_handle, MEMBER_TPM_KEY_FILE, MEMBER_TPM_HANDLE_FILE)) { |
|
|
|
printf("Error: Creating or Loading TPM key with '%s' and '%s' failed.\n", MEMBER_TPM_KEY_FILE, MEMBER_TPM_HANDLE_FILE); |
|
|
|
return 1; |
|
|
|
} |
|
|
|
} |
|
|
|
@ -77,8 +77,8 @@ int main(int argc, char *argv[]) { |
|
|
|
} |
|
|
|
printf("Join process was successful.\n"); |
|
|
|
} else if (0 == strncasecmp("--send", argv[1], 6) || 0 == strncasecmp("-s", argv[1], 2)) { |
|
|
|
if (0 != read_public_key_from_files(member.pk_in, &sk_handle, member_tpm_key_file, member_tpm_handle_file)) { |
|
|
|
printf("Error: reading in public key files '%s' and '%s' failed\n", member_tpm_key_file, member_tpm_handle_file); |
|
|
|
if (0 != read_public_key_from_files(member.pk_in, &sk_handle, MEMBER_TPM_KEY_FILE, MEMBER_TPM_HANDLE_FILE)) { |
|
|
|
printf("Error: reading in public key files '%s' and '%s' failed\n", MEMBER_TPM_KEY_FILE, MEMBER_TPM_HANDLE_FILE); |
|
|
|
return 1; |
|
|
|
} |
|
|
|
if (0 != init_tpm()) { |
|
|
|
@ -86,22 +86,22 @@ int main(int argc, char *argv[]) { |
|
|
|
return 1; |
|
|
|
} |
|
|
|
printf("Initialized TPM with pubkey and handle.\n"); |
|
|
|
msg_len = ecdaa_read_from_file(msg, MAX_MSGSIZE, message_file); |
|
|
|
msg_len = ecdaa_read_from_file(msg, MAX_MSGSIZE, MESSAGE_FILE); |
|
|
|
if (msg_len < 0) { |
|
|
|
printf("Could not open message file %s.\n", message_file); |
|
|
|
printf("Could not open message file %s.\n", MESSAGE_FILE); |
|
|
|
return 1; |
|
|
|
} |
|
|
|
chksum_len = ecdaa_read_from_file(chksum, MAX_CHKSUMSIZE, checksum_file); |
|
|
|
chksum_len = ecdaa_read_from_file(chksum, MAX_CHKSUMSIZE, CHECKSUM_FILE); |
|
|
|
if (chksum_len < 0) { |
|
|
|
printf("Could not open checksum file %s.\n", checksum_file); |
|
|
|
printf("Could not open checksum file %s.\n", CHECKSUM_FILE); |
|
|
|
return 1; |
|
|
|
} |
|
|
|
printf("Loaded message and checksum.\n"); |
|
|
|
if (0 > ecdaa_read_from_file(member.nonce, NONCE_SIZE, member_nonce_file) || |
|
|
|
0 != ecdaa_member_public_key_FP256BN_deserialize_file(&member.mpk, member_public_key_file, member.nonce, NONCE_SIZE) || |
|
|
|
0 != ecdaa_credential_FP256BN_deserialize_file(&member.cred, member_credential_file)) { |
|
|
|
if (0 > ecdaa_read_from_file(member.nonce, NONCE_SIZE, MEMBER_NONCE_FILE) || |
|
|
|
0 != ecdaa_member_public_key_FP256BN_deserialize_file(&member.mpk, MEMBER_PUBLIC_KEY_FILE, member.nonce, NONCE_SIZE) || |
|
|
|
0 != ecdaa_credential_FP256BN_deserialize_file(&member.cred, MEMBER_CREDENTIAL_FILE)) { |
|
|
|
printf("Could not import key files. Importing from either %s, %s or %s was not successful.\n", |
|
|
|
member_nonce_file, member_public_key_file, member_credential_file); |
|
|
|
MEMBER_NONCE_FILE, MEMBER_PUBLIC_KEY_FILE, MEMBER_CREDENTIAL_FILE); |
|
|
|
return 1; |
|
|
|
} |
|
|
|
member.state = JOINED; |
|
|
|
@ -118,7 +118,7 @@ int main(int argc, char *argv[]) { |
|
|
|
printf("Usage: \n Join an issuer's group: %s --join <issuer's IPv4>\n", argv[0]); |
|
|
|
printf("Send a signed message to the verifier: %s --send <verifier's IPv4>\n", argv[0]); |
|
|
|
printf("Before sending a DAA-signed message, the member must join a DAA group\n"); |
|
|
|
printf("%s must not exceed %d Bytes, %s must be smaller than %d Bytes\n", message_file, MAX_MSGSIZE, checksum_file, MAX_CHKSUMSIZE); |
|
|
|
printf("%s must not exceed %d Bytes, %s must be smaller than %d Bytes\n", MESSAGE_FILE, MAX_MSGSIZE, CHECKSUM_FILE, MAX_CHKSUMSIZE); |
|
|
|
break; |
|
|
|
} |
|
|
|
return 0; |
|
|
|
@ -137,8 +137,8 @@ int init_tpm() |
|
|
|
TSS2_TCTI_CONTEXT *tcti_ctx = (TSS2_TCTI_CONTEXT*)member.tcti_buffer; |
|
|
|
|
|
|
|
size_t size; |
|
|
|
init_ret = Tss2_Tcti_Device_Init(NULL, &size, device_conf); |
|
|
|
if (TSS2_RC_SUCCESS != init_ret) { |
|
|
|
ret = Tss2_Tcti_Device_Init(NULL, &size, device_conf); |
|
|
|
if (TSS2_RC_SUCCESS != ret) { |
|
|
|
printf("Error: Failed to get allocation size for tcti context.\n"); |
|
|
|
return -1; |
|
|
|
} |
|
|
|
@ -146,8 +146,8 @@ int init_tpm() |
|
|
|
printf("Error: device TCTI context size larger than pre-allocated buffer.\n"); |
|
|
|
return -1; |
|
|
|
} |
|
|
|
init_ret = Tss2_Tcti_Device_Init(tcti_ctx, &size, device_conf); |
|
|
|
if (TSS2_RC_SUCCESS != init_ret) { |
|
|
|
ret = Tss2_Tcti_Device_Init(tcti_ctx, &size, device_conf); |
|
|
|
if (TSS2_RC_SUCCESS != ret) { |
|
|
|
printf("Error: Unable to initialize device TCTI context.\n"); |
|
|
|
return -1; |
|
|
|
} |
|
|
|
@ -302,7 +302,7 @@ int member_joinappend(char *buffer) { |
|
|
|
uint8_t binbuf[MAX_BUFSIZE]; |
|
|
|
int ret = 0; |
|
|
|
int bytes = ecdaa_decode(current, member.nonce, NONCE_SIZE); |
|
|
|
ecdaa_write_buffer_to_file(member_nonce_file, member.nonce, NONCE_SIZE); |
|
|
|
ecdaa_write_buffer_to_file(MEMBER_NONCE_FILE, member.nonce, NONCE_SIZE); |
|
|
|
bzero(buffer, MAX_BUFSIZE); |
|
|
|
if (0 != (ret = ecdaa_member_key_pair_TPM_FP256BN_generate(&member.mpk, member.pk_in, member.nonce, NONCE_SIZE, &member.ctx))) { |
|
|
|
fprintf(stderr, "Error generating member key-pair: ret = %d\n", ret); |
|
|
|
@ -341,8 +341,8 @@ int member_joinfinish(char *buffer) { |
|
|
|
ret = -1; |
|
|
|
} |
|
|
|
printf("member_joinfinish: writing public key and credential to disk.\n"); |
|
|
|
if(0 != ecdaa_member_public_key_FP256BN_serialize_file(member_public_key_file, &member.mpk) || |
|
|
|
0 != ecdaa_credential_FP256BN_serialize_file(member_credential_file, &member.cred)) { |
|
|
|
if(0 != ecdaa_member_public_key_FP256BN_serialize_file(MEMBER_PUBLIC_KEY_FILE, &member.mpk) || |
|
|
|
0 != ecdaa_credential_FP256BN_serialize_file(MEMBER_CREDENTIAL_FILE, &member.cred)) { |
|
|
|
printf("issuer_setup: Error saving key-pair or credential to disk.\n"); |
|
|
|
ret = -1; |
|
|
|
} else { |
|
|
|
|