Mercurial > trustbridge > nss-cmake-static
comparison nss/lib/util/hasht.h @ 0:1e5118fa0cb1
This is NSS with a Cmake Buildsyste
To compile a static NSS library for Windows we've used the
Chromium-NSS fork and added a Cmake buildsystem to compile
it statically for Windows. See README.chromium for chromium
changes and README.trustbridge for our modifications.
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Mon, 28 Jul 2014 10:47:06 +0200 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:1e5118fa0cb1 |
---|---|
1 /* This Source Code Form is subject to the terms of the Mozilla Public | |
2 * License, v. 2.0. If a copy of the MPL was not distributed with this | |
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ | |
4 | |
5 #ifndef _HASHT_H_ | |
6 #define _HASHT_H_ | |
7 | |
8 #include "prtypes.h" | |
9 | |
10 /* Opaque objects */ | |
11 typedef struct SECHashObjectStr SECHashObject; | |
12 typedef struct HASHContextStr HASHContext; | |
13 | |
14 /* | |
15 * The hash functions the security library supports | |
16 * NOTE the order must match the definition of SECHashObjects[]! | |
17 */ | |
18 typedef enum { | |
19 HASH_AlgNULL = 0, | |
20 HASH_AlgMD2 = 1, | |
21 HASH_AlgMD5 = 2, | |
22 HASH_AlgSHA1 = 3, | |
23 HASH_AlgSHA256 = 4, | |
24 HASH_AlgSHA384 = 5, | |
25 HASH_AlgSHA512 = 6, | |
26 HASH_AlgSHA224 = 7, | |
27 HASH_AlgTOTAL | |
28 } HASH_HashType; | |
29 | |
30 /* | |
31 * Number of bytes each hash algorithm produces | |
32 */ | |
33 #define MD2_LENGTH 16 | |
34 #define MD5_LENGTH 16 | |
35 #define SHA1_LENGTH 20 | |
36 #define SHA224_LENGTH 28 | |
37 #define SHA256_LENGTH 32 | |
38 #define SHA384_LENGTH 48 | |
39 #define SHA512_LENGTH 64 | |
40 #define HASH_LENGTH_MAX SHA512_LENGTH | |
41 | |
42 /* | |
43 * Structure to hold hash computation info and routines | |
44 */ | |
45 struct SECHashObjectStr { | |
46 unsigned int length; /* hash output length (in bytes) */ | |
47 void * (*create)(void); | |
48 void * (*clone)(void *); | |
49 void (*destroy)(void *, PRBool); | |
50 void (*begin)(void *); | |
51 void (*update)(void *, const unsigned char *, unsigned int); | |
52 void (*end)(void *, unsigned char *, unsigned int *, unsigned int); | |
53 unsigned int blocklength; /* hash input block size (in bytes) */ | |
54 HASH_HashType type; | |
55 void (*end_raw)(void *, unsigned char *, unsigned int *, unsigned int); | |
56 }; | |
57 | |
58 struct HASHContextStr { | |
59 const struct SECHashObjectStr *hashobj; | |
60 void *hash_context; | |
61 }; | |
62 | |
63 #endif /* _HASHT_H_ */ |