From 474dbe4ded87bbe04a5a21555c7d5bfb3046b1ff Mon Sep 17 00:00:00 2001 From: Vadim Bendebury Date: Fri, 29 Sep 2017 18:59:37 -0700 Subject: rma_reset: fix board ID ordering and add the missing break The Board ID is stored in Cr50 in reversed byte order, make sure it is used in the challenge calculation in the same form. BRANCH=none BUG=b:37952913 TEST=verified that the proper byte order is used when challenge source is created. Change-Id: I6c6b46431005ce9438a4be9aa43aafed30a645aa Signed-off-by: Vadim Bendebury Reviewed-on: https://chromium-review.googlesource.com/693615 Reviewed-by: Michael Tang --- extra/rma_reset/rma_reset.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/extra/rma_reset/rma_reset.c b/extra/rma_reset/rma_reset.c index f86eff878d..966ff16863 100644 --- a/extra/rma_reset/rma_reset.c +++ b/extra/rma_reset/rma_reset.c @@ -94,6 +94,7 @@ int rma_create_challenge(void) uint8_t secret[32]; struct rma_challenge c; uint8_t *cptr = (uint8_t *)&c; + uint32_t bid; /* Clear the current challenge and authcode, if any */ memset(challenge, 0, sizeof(challenge)); @@ -103,7 +104,10 @@ int rma_create_challenge(void) c.version_key_id = RMA_CHALLENGE_VKID_BYTE( RMA_CHALLENGE_VERSION, server_key_id); - memcpy(c.board_id, board_id, sizeof(c.board_id)); + memcpy(&bid, board_id, sizeof(bid)); + bid = be32toh(bid); + memcpy(c.board_id, &bid, sizeof(c.board_id)); + memcpy(c.device_id, device_id, sizeof(c.device_id)); /* Calculate a new ephemeral key pair */ @@ -356,6 +360,7 @@ int main(int argc, char **argv) return 1; } w_flag = 1; + break; case 'h': usage(); return 0; -- cgit v1.2.1