poly1305.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /* $OpenBSD: poly1305.h,v 1.3 2014/07/25 14:04:51 jsing Exp $ */
  2. /*
  3. * Copyright (c) 2014 Joel Sing <[email protected]>
  4. *
  5. * Permission to use, copy, modify, and distribute this software for any
  6. * purpose with or without fee is hereby granted, provided that the above
  7. * copyright notice and this permission notice appear in all copies.
  8. *
  9. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  10. * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  11. * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  12. * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  13. * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  14. * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  15. * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  16. */
  17. #ifndef HEADER_POLY1305_H
  18. #define HEADER_POLY1305_H
  19. #include <openssl/opensslconf.h>
  20. #if defined(OPENSSL_NO_POLY1305)
  21. #error Poly1305 is disabled.
  22. #endif
  23. #include <stddef.h>
  24. #ifdef __cplusplus
  25. extern "C" {
  26. #endif
  27. typedef struct poly1305_context {
  28. size_t aligner;
  29. unsigned char opaque[136];
  30. } poly1305_context;
  31. typedef struct poly1305_context poly1305_state;
  32. void CRYPTO_poly1305_init(poly1305_context *ctx, const unsigned char key[32]);
  33. void CRYPTO_poly1305_update(poly1305_context *ctx, const unsigned char *in,
  34. size_t len);
  35. void CRYPTO_poly1305_finish(poly1305_context *ctx, unsigned char mac[16]);
  36. #ifdef __cplusplus
  37. }
  38. #endif
  39. #endif /* HEADER_POLY1305_H */