diff options
author | Vadim Bendebury <vbendeb@google.com> | 2017-09-29 18:59:37 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2017-09-30 18:50:37 -0700 |
commit | 474dbe4ded87bbe04a5a21555c7d5bfb3046b1ff (patch) | |
tree | 94a2153e1e7cd7393209b901cf81f8d52129fbc7 | |
parent | f1084d6a737a8b14deacb59cdfb501dd9d8c436d (diff) | |
download | chrome-ec-474dbe4ded87bbe04a5a21555c7d5bfb3046b1ff.tar.gz |
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 <vbendeb@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/693615
Reviewed-by: Michael Tang <ntang@chromium.org>
-rw-r--r-- | extra/rma_reset/rma_reset.c | 7 |
1 files changed, 6 insertions, 1 deletions
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; |