1*36ebd06eSchristos /* 2*36ebd06eSchristos * SHA-512 internal definitions 3*36ebd06eSchristos * Copyright (c) 2015, Pali Rohár <pali.rohar@gmail.com> 4*36ebd06eSchristos * 5*36ebd06eSchristos * This software may be distributed under the terms of the BSD license. 6*36ebd06eSchristos * See README for more details. 7*36ebd06eSchristos */ 8*36ebd06eSchristos 9*36ebd06eSchristos #ifndef SHA512_I_H 10*36ebd06eSchristos #define SHA512_I_H 11*36ebd06eSchristos 12*36ebd06eSchristos #define SHA512_BLOCK_SIZE 128 13*36ebd06eSchristos 14*36ebd06eSchristos struct sha512_state { 15*36ebd06eSchristos u64 length, state[8]; 16*36ebd06eSchristos u32 curlen; 17*36ebd06eSchristos u8 buf[SHA512_BLOCK_SIZE]; 18*36ebd06eSchristos }; 19*36ebd06eSchristos 20*36ebd06eSchristos void sha512_init(struct sha512_state *md); 21*36ebd06eSchristos int sha512_process(struct sha512_state *md, const unsigned char *in, 22*36ebd06eSchristos unsigned long inlen); 23*36ebd06eSchristos int sha512_done(struct sha512_state *md, unsigned char *out); 24*36ebd06eSchristos 25*36ebd06eSchristos #endif /* SHA512_I_H */ 26