From e8f1d1a403adc7e8961c9f29a64b56f406eb172e Mon Sep 17 00:00:00 2001 From: Michael Preisach Date: Sat, 11 Sep 2021 14:51:25 +0200 Subject: [PATCH] changing file format of pubkey and handle to %02X --- create_tpm_key-util.c | 8 +++---- member-tpm.c | 50 ++++++++++++------------------------------- member.c | 4 +--- 3 files changed, 19 insertions(+), 43 deletions(-) diff --git a/create_tpm_key-util.c b/create_tpm_key-util.c index e198d0e..f3e9ef8 100644 --- a/create_tpm_key-util.c +++ b/create_tpm_key-util.c @@ -170,8 +170,8 @@ int save_public_key_info(const struct test_context *ctx, const char* pub_key_fil //cur=&buffer[1]; for (unsigned i=0; i < ctx->out_public.publicArea.unique.ecc.x.size; i++) { - if (fprintf(pub_key_file_ptr, "%c", ctx->out_public.publicArea.unique.ecc.x.buffer[i]) != 1) { - //if (fprintf(pub_key_file_ptr, "%02X", ctx->out_public.publicArea.unique.ecc.x.buffer[i]) != 2) { + //if (fprintf(pub_key_file_ptr, "%c", ctx->out_public.publicArea.unique.ecc.x.buffer[i]) != 1) { + if (fprintf(pub_key_file_ptr, "%02X", ctx->out_public.publicArea.unique.ecc.x.buffer[i]) != 2) { //if (sprintf(cur, "%02X", ctx->out_public.publicArea.unique.ecc.x.buffer[i]) != 2) { write_ret = -1; break; @@ -182,8 +182,8 @@ int save_public_key_info(const struct test_context *ctx, const char* pub_key_fil break; for (unsigned i=0; i < ctx->out_public.publicArea.unique.ecc.y.size; i++) { - if (fprintf(pub_key_file_ptr, "%c", ctx->out_public.publicArea.unique.ecc.y.buffer[i]) != 1) { - //if (fprintf(pub_key_file_ptr, "%02X", ctx->out_public.publicArea.unique.ecc.y.buffer[i]) != 2) { + //if (fprintf(pub_key_file_ptr, "%c", ctx->out_public.publicArea.unique.ecc.y.buffer[i]) != 1) { + if (fprintf(pub_key_file_ptr, "%02X", ctx->out_public.publicArea.unique.ecc.y.buffer[i]) != 2) { //if (sprintf(cur, "%02X", ctx->out_public.publicArea.unique.ecc.y.buffer[i]) != 2) { write_ret = -1; break; diff --git a/member-tpm.c b/member-tpm.c index 0fb1bde..2eae60b 100644 --- a/member-tpm.c +++ b/member-tpm.c @@ -271,34 +271,14 @@ int member_verifymsg(char *buffer) { return 2; //send to verifier before closing } -//"PUBLISH" > "PUBLISH " -/* int member_publish(char *buffer) { */ -/* char *current; */ -/* int ret = 0; */ -/* uint8_t binbuf[MAX_BUFSIZE]; */ -/* bzero(buffer, MAX_BUFSIZE); */ - -/* strncpy(buffer, "PUBLISH ", 8); */ - -/* current = &buffer[8]; */ -/* bzero(binbuf, MAX_BUFSIZE); */ -/* ecdaa_member_public_key_FP256BN_serialize(binbuf, &member.mpk); */ -/* ret = ecdaa_encode(binbuf, current, ECDAA_MEMBER_PUBLIC_KEY_FP256BN_LENGTH); */ - -/* current[ret] = '\n'; */ - -/* return 0; */ -/* } */ - //"JOINSTART " > "APPEND " int member_joinappend(char *buffer) { char *current = &buffer[10]; uint8_t binbuf[MAX_BUFSIZE]; - int ret = ecdaa_decode(current, member.nonce, NONCE_SIZE); + int bytes = ecdaa_decode(current, member.nonce, NONCE_SIZE); ecdaa_write_buffer_to_file(member_nonce_file, member.nonce, NONCE_SIZE); - ret = ecdaa_member_key_pair_TPM_FP256BN_generate(&member.mpk, member.pk_in, member.nonce, NONCE_SIZE, &member.ctx); - if (0 != ret) { - fprintf(stderr, "Error generating member key-pair. Error %d\n", ret); + if (0 != 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\n"); return -1; } bzero(buffer, MAX_BUFSIZE); @@ -307,8 +287,8 @@ int member_joinappend(char *buffer) { current = &buffer[7]; bzero(binbuf, MAX_BUFSIZE); ecdaa_member_public_key_FP256BN_serialize(binbuf, &member.mpk); - ret = ecdaa_encode(binbuf, current, ECDAA_MEMBER_PUBLIC_KEY_FP256BN_LENGTH); - current[ret] = '\n'; + bytes = ecdaa_encode(binbuf, current, ECDAA_MEMBER_PUBLIC_KEY_FP256BN_LENGTH); + current[bytes] = '\n'; return 0; } @@ -317,31 +297,29 @@ int member_joinfinish(char *buffer) { char *current = &buffer[12]; uint8_t *bincur; uint8_t binbuf[MAX_BUFSIZE]; + int bytes = 0; int ret = 0; bzero(binbuf, MAX_BUFSIZE); - ret = ecdaa_decode(current, binbuf, ECDAA_CREDENTIAL_FP256BN_LENGTH); + bytes = ecdaa_decode(current, binbuf, ECDAA_CREDENTIAL_FP256BN_LENGTH); - current = ¤t[ret]; + current = ¤t[bytes]; bincur = &binbuf[ECDAA_CREDENTIAL_FP256BN_LENGTH]; ecdaa_decode(current, bincur, ECDAA_CREDENTIAL_FP256BN_SIGNATURE_LENGTH); ret = ecdaa_credential_FP256BN_deserialize_with_signature(&member.cred, &member.mpk, &member.ipk.gpk, binbuf, bincur); if(-1 == ret) { printf("member_joinfinish: credential is malformed!\n"); - strncpy(buffer, "ERR", 3); ret = -1; } else if(-2 == ret) { printf("member_joinfinish: siganture of credential is invalid\n"); - strncpy(buffer, "ERR", 3); ret = -1; } - printf("member_joinfinish: writing key-pair and credential to disk\n"); + 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)) { printf("issuer_setup: Error saving key-pair or credential to disk\n"); - strncpy(buffer, "ERR", 3); ret = -1; } else { - strncpy(buffer, "OK", 2); + ret = 1; } return ret; @@ -360,8 +338,8 @@ int read_public_key_from_files(uint8_t *public_key, TPM2_HANDLE *key_handle, con for (unsigned i=0; i < ECP_FP256BN_LENGTH; i++) { unsigned char byt; int ret=0; - //if (fscanf(pub_key_file_ptr, "%02X", &byt) != 1) { - if (ret = fscanf(pub_key_file_ptr, "%c", &byt) != 1) { + if (fscanf(pub_key_file_ptr, "%02X", &byt) != 1) { + //if (ret = fscanf(pub_key_file_ptr, "%c", &byt) != 1) { printf("read_public_key: i=%d, len=%d, returnvalue=%d\n", i, ECP_FP256BN_LENGTH, ret); ret = -1; break; @@ -384,8 +362,8 @@ int read_public_key_from_files(uint8_t *public_key, TPM2_HANDLE *key_handle, con do { for (int i=(sizeof(TPM2_HANDLE)-1); i >= 0; i--) { unsigned char byt; - //if (fscanf(handle_file_ptr, "%02X", &byt) != 1) { - if (fscanf(handle_file_ptr, "%c", &byt) != 1) { + if (fscanf(handle_file_ptr, "%02X", &byt) != 1) { + //if (fscanf(handle_file_ptr, "%c", &byt) != 1) { ret = -1; break; } diff --git a/member.c b/member.c index 76fe14e..a300f7e 100644 --- a/member.c +++ b/member.c @@ -244,11 +244,9 @@ int member_joinfinish(char *buffer) { bzero(buffer, MAX_BUFSIZE); if(-1 == ret) { printf("member_joinfinish: credential is malformed!\n"); - strncpy(buffer, "ERR", 3); ret = -1; } else if(-2 == ret) { printf("member_joinfinish: siganture of credential is invalid\n"); - strncpy(buffer, "ERR", 3); ret = -1; } printf("member_joinfinish: writing key-pair and credential to disk\n"); @@ -258,7 +256,7 @@ int member_joinfinish(char *buffer) { printf("issuer_joinfinish: Error saving key-pair or credential to disk\n"); ret = -1; } else { - ret = 1; + ret = 1; } return ret; }