/**************************************************************************** * include/crypto/poly1305.h * * SPDX-License-Identifier: LicenseRef-NuttX-PublicDomain * * Public Domain poly1305 from Andrew Moon * ****************************************************************************/ #ifndef __INCLUDE_CRYPTO_POLY1305_H #define __INCLUDE_CRYPTO_POLY1305_H /**************************************************************************** * Included Files ****************************************************************************/ #include #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_begin(FAR poly1305_state *, FAR const unsigned char *); void poly1305_update(FAR poly1305_state *, FAR const unsigned char *, size_t); void poly1305_finish(FAR poly1305_state *, FAR unsigned char *); #endif /* __INCLUDE_CRYPTO_POLY1305_H */