OLD | NEW |
1 /* | 1 /* |
2 * poly1305.h - header file for Poly1305 implementation. | 2 * poly1305.h - header file for Poly1305 implementation. |
3 * | 3 * |
4 * This Source Code Form is subject to the terms of the Mozilla Public | 4 * This Source Code Form is subject to the terms of the Mozilla Public |
5 * License, v. 2.0. If a copy of the MPL was not distributed with this | 5 * License, v. 2.0. If a copy of the MPL was not distributed with this |
6 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ | 6 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
7 | 7 |
8 #ifndef FREEBL_POLY1305_H_ | 8 #ifndef FREEBL_POLY1305_H_ |
9 #define FREEBL_POLY1305_H_ | 9 #define FREEBL_POLY1305_H_ |
10 | 10 |
11 typedef unsigned char poly1305_state[512]; | 11 typedef unsigned char poly1305_state[512]; |
12 | 12 |
13 /* Poly1305Init sets up |state| so that it can be used to calculate an | 13 /* Poly1305Init sets up |state| so that it can be used to calculate an |
14 * authentication tag with the one-time key |key|. Note that |key| is a | 14 * authentication tag with the one-time key |key|. Note that |key| is a |
15 * one-time key and therefore there is no `reset' method because that would | 15 * one-time key and therefore there is no `reset' method because that would |
16 * enable several messages to be authenticated with the same key. */ | 16 * enable several messages to be authenticated with the same key. */ |
17 extern void Poly1305Init(poly1305_state* state, | 17 extern void Poly1305Init(poly1305_state* state, const unsigned char key[32]); |
18 » » » const unsigned char key[32]); | |
19 | 18 |
20 /* Poly1305Update processes |in_len| bytes from |in|. It can be called zero or | 19 /* Poly1305Update processes |in_len| bytes from |in|. It can be called zero or |
21 * more times after poly1305_init. */ | 20 * more times after poly1305_init. */ |
22 extern void Poly1305Update(poly1305_state* state, | 21 extern void Poly1305Update(poly1305_state* state, const unsigned char* in, |
23 » » » const unsigned char *in, | 22 size_t inLen); |
24 » » » size_t inLen); | |
25 | 23 |
26 /* Poly1305Finish completes the poly1305 calculation and writes a 16 byte | 24 /* Poly1305Finish completes the poly1305 calculation and writes a 16 byte |
27 * authentication tag to |mac|. */ | 25 * authentication tag to |mac|. */ |
28 extern void Poly1305Finish(poly1305_state* state, | 26 extern void Poly1305Finish(poly1305_state* state, unsigned char mac[16]); |
29 » » » unsigned char mac[16]); | |
30 | 27 |
31 #endif /* FREEBL_POLY1305_H_ */ | 28 #endif /* FREEBL_POLY1305_H_ */ |
OLD | NEW |