11f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt/*
21f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt * SHA-256 internal definitions
31f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt * Copyright (c) 2003-2011, Jouni Malinen <j@w1.fi>
41f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt *
5c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * This software may be distributed under the terms of the BSD license.
6c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * See README for more details.
71f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt */
81f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt
91f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt#ifndef SHA256_I_H
101f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt#define SHA256_I_H
111f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt
121f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt#define SHA256_BLOCK_SIZE 64
131f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt
141f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtstruct sha256_state {
151f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt	u64 length;
161f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt	u32 state[8], curlen;
171f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt	u8 buf[SHA256_BLOCK_SIZE];
181f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt};
191f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt
201f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtvoid sha256_init(struct sha256_state *md);
211f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtint sha256_process(struct sha256_state *md, const unsigned char *in,
221f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt		   unsigned long inlen);
231f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtint sha256_done(struct sha256_state *md, unsigned char *out);
241f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt
251f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt#endif /* SHA256_I_H */
26