/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef _SHA_256_H_ #define _SHA_256_H_ #include "prtypes.h" struct SHA256ContextStr; typedef void (*sha256_compress_t)(struct SHA256ContextStr *); typedef void (*sha256_update_t)(struct SHA256ContextStr *, const unsigned char *, unsigned int); struct SHA256ContextStr { union { PRUint32 w[64]; /* message schedule, input buffer, plus 48 words */ PRUint8 b[256]; } u; PRUint32 h[8]; /* 8 state variables */ PRUint32 sizeHi, sizeLo; /* 64-bit count of hashed bytes. */ sha256_compress_t compress; sha256_update_t update; }; #endif /* _SHA_256_H_ */