OLD | NEW |
1 /* | 1 /* |
2 * chacha20.h - header file for ChaCha20 implementation. | 2 * chacha20.h - header file for ChaCha20 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_CHACHA20_H_ | 8 #ifndef FREEBL_CHACHA20_H_ |
9 #define FREEBL_CHACHA20_H_ | 9 #define FREEBL_CHACHA20_H_ |
10 | 10 |
| 11 #if defined(_MSC_VER) && _MSC_VER < 1600 |
| 12 #include "prtypes.h" |
| 13 typedef PRUint32 uint32_t; |
| 14 typedef PRUint64 uint64_t; |
| 15 #else |
11 #include <stdint.h> | 16 #include <stdint.h> |
| 17 #endif |
12 | 18 |
13 /* ChaCha20XOR encrypts |inLen| bytes from |in| with the given key and | 19 /* ChaCha20XOR encrypts |inLen| bytes from |in| with the given key and |
14 * nonce and writes the result to |out|, which may be equal to |in|. The | 20 * nonce and writes the result to |out|, which may be equal to |in|. The |
15 * initial block counter is specified by |counter|. */ | 21 * initial block counter is specified by |counter|. */ |
16 extern void ChaCha20XOR(unsigned char *out, | 22 extern void ChaCha20XOR(unsigned char *out, const unsigned char *in, |
17 » » » const unsigned char *in, unsigned int inLen, | 23 unsigned int inLen, const unsigned char key[32], |
18 » » » const unsigned char key[32], | 24 const unsigned char nonce[12], uint32_t counter); |
19 » » » const unsigned char nonce[8], | |
20 » » » uint64_t counter); | |
21 | 25 |
22 #endif /* FREEBL_CHACHA20_H_ */ | 26 #endif /* FREEBL_CHACHA20_H_ */ |
OLD | NEW |