From 0d6b7868692f0629329b0f342a6727921a61675f Mon Sep 17 00:00:00 2001 From: Zane Beckwith Date: Tue, 7 Aug 2018 12:49:52 -0500 Subject: [PATCH] Examples: Use gid=sha(gpk | basename) --- examples/xtt_client.c | 14 ++++++++++++-- examples/xtt_server.c | 14 ++++++++++++-- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/examples/xtt_client.c b/examples/xtt_client.c index 97c0f56d..1e19137f 100644 --- a/examples/xtt_client.c +++ b/examples/xtt_client.c @@ -510,9 +510,19 @@ int initialize_daa(struct xtt_client_group_context *group_ctx, int use_tpm, TSS2 } } - // 2) Generate gid from gpk (gid = SHA-256(gpk)) + // 2) Generate gid from gpk (gid = SHA-256(gpk | basename)) xtt_group_id gid; - int hash_ret = crypto_hash_sha256(gid.data, gpk.data, sizeof(gpk)); + crypto_hash_sha256_state hash_state; + int hash_ret = crypto_hash_sha256_init(&hash_state); + if (0 != hash_ret) + return -1; + hash_ret = crypto_hash_sha256_update(&hash_state, gpk.data, sizeof(gpk)); + if (0 != hash_ret) + return -1; + hash_ret = crypto_hash_sha256_update(&hash_state, basename, basename_len); + if (0 != hash_ret) + return -1; + hash_ret = crypto_hash_sha256_final(&hash_state, gid.data); if (0 != hash_ret) return -1; diff --git a/examples/xtt_server.c b/examples/xtt_server.c index 1d11e914..1b5d5101 100644 --- a/examples/xtt_server.c +++ b/examples/xtt_server.c @@ -159,8 +159,18 @@ int initialize(struct xtt_server_certificate_context *cert_ctx, if (XTT_RETURN_SUCCESS != rc) return -1; - // 4) Generate GID from GPK (GID = SHA-256(GPK)) - int hash_ret = crypto_hash_sha256(gpk_db[0].gid.data, gpk.data, sizeof(gpk)); + // 4) Generate GID from GPK (GID = SHA-256(GPK | basename)) + crypto_hash_sha256_state hash_state; + int hash_ret = crypto_hash_sha256_init(&hash_state); + if (0 != hash_ret) + return -1; + hash_ret = crypto_hash_sha256_update(&hash_state, gpk.data, sizeof(gpk)); + if (0 != hash_ret) + return -1; + hash_ret = crypto_hash_sha256_update(&hash_state, basename, basename_len); + if (0 != hash_ret) + return -1; + hash_ret = crypto_hash_sha256_final(&hash_state, gpk_db[0].gid.data); if (0 != hash_ret) return -1;