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_ */
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)