comparison nss/lib/freebl/alghmac.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 _ALGHMAC_H_
6 #define _ALGHMAC_H_
7
8 typedef struct HMACContextStr HMACContext;
9
10 SEC_BEGIN_PROTOS
11
12 /* destroy HMAC context */
13 extern void
14 HMAC_Destroy(HMACContext *cx, PRBool freeit);
15
16 /* create HMAC context
17 * hash_obj hash object from SECRawHashObjects[]
18 * secret the secret with which the HMAC is performed.
19 * secret_len the length of the secret.
20 * isFIPS true if conforming to FIPS 198.
21 *
22 * NULL is returned if an error occurs.
23 */
24 extern HMACContext *
25 HMAC_Create(const SECHashObject *hash_obj, const unsigned char *secret,
26 unsigned int secret_len, PRBool isFIPS);
27
28 /* like HMAC_Create, except caller allocates HMACContext. */
29 SECStatus
30 HMAC_Init(HMACContext *cx, const SECHashObject *hash_obj,
31 const unsigned char *secret, unsigned int secret_len, PRBool isFIPS);
32
33 /* reset HMAC for a fresh round */
34 extern void
35 HMAC_Begin(HMACContext *cx);
36
37 /* update HMAC
38 * cx HMAC Context
39 * data the data to perform HMAC on
40 * data_len the length of the data to process
41 */
42 extern void
43 HMAC_Update(HMACContext *cx, const unsigned char *data, unsigned int data_len);
44
45 /* Finish HMAC -- place the results within result
46 * cx HMAC context
47 * result buffer for resulting hmac'd data
48 * result_len where the resultant hmac length is stored
49 * max_result_len maximum possible length that can be stored in result
50 */
51 extern SECStatus
52 HMAC_Finish(HMACContext *cx, unsigned char *result, unsigned int *result_len,
53 unsigned int max_result_len);
54
55 /* clone a copy of the HMAC state. this is usefult when you would
56 * need to keep a running hmac but also need to extract portions
57 * partway through the process.
58 */
59 extern HMACContext *
60 HMAC_Clone(HMACContext *cx);
61
62 SEC_END_PROTOS
63
64 #endif
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)