diff options
author | Daisuke Nojiri <dnojiri@chromium.org> | 2016-05-19 19:09:10 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2016-05-20 20:49:35 -0700 |
commit | 31d756465dbc53ff4dd19a332939a67a3bc55d49 (patch) | |
tree | 45fe9cbeffff14f24763f5fdf3fae4d368e62f45 /firmware/2lib/2sha256.c | |
parent | 6b5c4e961fb69579cf2ba5e14e48bca178652d53 (diff) | |
download | vboot-31d756465dbc53ff4dd19a332939a67a3bc55d49.tar.gz |
vb2_sha: Add sha256 extend
This patch adds vb2_sha256_extend, which extends a hash using a given block.
BUG=chrome-os-partner:51907
BRANCH=tot
TEST=make runtests
Change-Id: I512674f18dffc55692907c85b19ff19df88a5eeb
Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/346234
Commit-Ready: Daisuke Nojiri <dnojiri@google.com>
Tested-by: Daisuke Nojiri <dnojiri@google.com>
Reviewed-by: Randall Spangler <rspangler@google.com>
Diffstat (limited to 'firmware/2lib/2sha256.c')
-rw-r--r-- | firmware/2lib/2sha256.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/firmware/2lib/2sha256.c b/firmware/2lib/2sha256.c index fd41258c..d2cf6726 100644 --- a/firmware/2lib/2sha256.c +++ b/firmware/2lib/2sha256.c @@ -314,3 +314,21 @@ void vb2_sha256_finalize(struct vb2_sha256_context *ctx, uint8_t *digest) UNPACK32(ctx->h[7], &digest[28]); #endif /* !UNROLL_LOOPS */ } + +void vb2_sha256_extend(const uint8_t *from, const uint8_t *by, uint8_t *to) +{ + struct vb2_sha256_context dc; + int i; + + for (i = 0; i < 8; i++) { + PACK32(from, &dc.h[i]); + from += 4; + } + + vb2_sha256_transform(&dc, by, 1); + + for (i = 0; i < 8; i++) { + UNPACK32(dc.h[i], to); + to += 4; + } +} |