summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVadim Bendebury <vbendeb@google.com>2017-09-29 18:59:37 -0700
committerchrome-bot <chrome-bot@chromium.org>2017-09-30 18:50:37 -0700
commit474dbe4ded87bbe04a5a21555c7d5bfb3046b1ff (patch)
tree94a2153e1e7cd7393209b901cf81f8d52129fbc7
parentf1084d6a737a8b14deacb59cdfb501dd9d8c436d (diff)
downloadchrome-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.c7
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;