/* 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 __CROS_EC_SHA1_H #define __CROS_EC_SHA1_H #include "common.h" #ifdef HOST_TOOLS_BUILD #include #define DIV_ROUND_UP(x, y) (((x) + ((y) - 1)) / (y)) #else #include "util.h" #endif #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 /* __CROS_EC_SHA1_H */