diff options
author | Vincent Palatin <vpalatin@chromium.org> | 2014-05-09 10:43:12 -0700 |
---|---|---|
committer | chrome-internal-fetch <chrome-internal-fetch@google.com> | 2014-05-17 20:14:17 +0000 |
commit | 00cf95783210c5b94565b0e0d480271dcef490ca (patch) | |
tree | 7e0f3903f4b5be01b3fc666fc186fde6650a8365 /include/sha1.h | |
parent | 006a3f58b09b44216fb449e2cb6e11bc85043104 (diff) | |
download | chrome-ec-00cf95783210c5b94565b0e0d480271dcef490ca.tar.gz |
Add SHA-1 hash
Imported code from VBoot firmware cryptolib and slightly reformat it for
the EC code base.
We already have SHA-256, but for updates over PD, the maximum payload
size is 192 bits, so SHA-1 seems a better trade-off.
Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
BRANCH=none
BUG=chrome-os-partner:28336
TEST=none
Change-Id: I6da7b71a9af03c6689accfa3c59cfcf7776fcfc6
Reviewed-on: https://chromium-review.googlesource.com/199553
Reviewed-by: Alec Berg <alecaberg@chromium.org>
Tested-by: Vincent Palatin <vpalatin@chromium.org>
Commit-Queue: Vincent Palatin <vpalatin@chromium.org>
Diffstat (limited to 'include/sha1.h')
-rw-r--r-- | include/sha1.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/include/sha1.h b/include/sha1.h new file mode 100644 index 0000000000..152c5757d7 --- /dev/null +++ b/include/sha1.h @@ -0,0 +1,31 @@ +/* Copyright (c) 2014 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +/* SHA-1 functions */ + +#ifndef _SHA1_H +#define _SHA1_H + +#include "common.h" +#include "util.h" + +#define SHA1_DIGEST_SIZE 20 +#define SHA1_BLOCK_SIZE 64 + +/* SHA-1 context */ +struct sha1_ctx { + uint32_t count; + uint32_t state[5]; + union { + uint8_t b[SHA1_BLOCK_SIZE]; + uint32_t w[DIV_ROUND_UP(SHA1_BLOCK_SIZE, sizeof(uint32_t))]; + } buf; +}; + +void sha1_init(struct sha1_ctx *ctx); +void sha1_update(struct sha1_ctx *ctx, const uint8_t *data, uint32_t len); +uint8_t *sha1_final(struct sha1_ctx *ctx); + +#endif /* _SHA1_H */ |