mirror of
https://github.com/OpenIntelWireless/itlwm.git
synced 2025-03-14 23:48:25 +00:00
27 lines
696 B
C
27 lines
696 B
C
/*
|
|
* Public Domain poly1305 from Andrew Moon
|
|
*
|
|
* poly1305 implementation using 32 bit * 32 bit = 64 bit multiplication
|
|
* and 64 bit addition from https://github.com/floodyberry/poly1305-donna
|
|
*/
|
|
|
|
#ifndef _POLY1305_H_
|
|
#define _POLY1305_H_
|
|
|
|
#define poly1305_block_size 16
|
|
|
|
typedef struct poly1305_state {
|
|
unsigned long r[5];
|
|
unsigned long h[5];
|
|
unsigned long pad[4];
|
|
size_t leftover;
|
|
unsigned char buffer[poly1305_block_size];
|
|
unsigned char final;
|
|
} poly1305_state;
|
|
|
|
void poly1305_init(poly1305_state *, const unsigned char[32]);
|
|
void poly1305_update(poly1305_state *, const unsigned char *, size_t);
|
|
void poly1305_finish(poly1305_state *, unsigned char[16]);
|
|
|
|
#endif /* _POLY1305_H_ */
|