mpi/ec: fix when 'unsigned long' is 32-bit but limb size is 64-bit
[libgcrypt.git] / cipher / sha1.h
1 /* sha1.h - SHA-1 context definition
2  * Copyright (C) 1998, 2001, 2002, 2003, 2008 Free Software Foundation, Inc.
3  *
4  * This file is part of Libgcrypt.
5  *
6  * Libgcrypt is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU Lesser General Public License as
8  * published by the Free Software Foundation; either version 2.1 of
9  * the License, or (at your option) any later version.
10  *
11  * Libgcrypt is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this program; if not, see <http://www.gnu.org/licenses/>.
18  */
19 #ifndef GCRY_SHA1_H
20 #define GCRY_SHA1_H
21
22 #include "hash-common.h"
23
24 /* We need this here for direct use by random-csprng.c. */
25 typedef struct
26 {
27   gcry_md_block_ctx_t bctx;
28   u32          h0,h1,h2,h3,h4;
29   unsigned int use_ssse3:1;
30   unsigned int use_avx:1;
31   unsigned int use_bmi2:1;
32   unsigned int use_neon:1;
33   unsigned int use_arm_ce:1;
34 } SHA1_CONTEXT;
35
36
37 void _gcry_sha1_mixblock_init (SHA1_CONTEXT *hd);
38 unsigned int _gcry_sha1_mixblock (SHA1_CONTEXT *hd, void *blockof64byte);
39
40 #endif /*GCRY_SHA1_H*/