ReactOS 0.4.16-dev-297-gc569aee
|
This file contains Poly1305 definitions and functions. More...
Go to the source code of this file.
Classes | |
struct | mbedtls_poly1305_context |
Macros | |
#define | MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA -0x0057 |
#define | MBEDTLS_ERR_POLY1305_FEATURE_UNAVAILABLE -0x0059 |
#define | MBEDTLS_ERR_POLY1305_HW_ACCEL_FAILED -0x005B |
Typedefs | |
typedef struct mbedtls_poly1305_context | mbedtls_poly1305_context |
Functions | |
void | mbedtls_poly1305_init (mbedtls_poly1305_context *ctx) |
This function initializes the specified Poly1305 context. | |
void | mbedtls_poly1305_free (mbedtls_poly1305_context *ctx) |
This function releases and clears the specified Poly1305 context. | |
int | mbedtls_poly1305_starts (mbedtls_poly1305_context *ctx, const unsigned char key[32]) |
This function sets the one-time authentication key. | |
int | mbedtls_poly1305_update (mbedtls_poly1305_context *ctx, const unsigned char *input, size_t ilen) |
This functions feeds an input buffer into an ongoing Poly1305 computation. | |
int | mbedtls_poly1305_finish (mbedtls_poly1305_context *ctx, unsigned char mac[16]) |
This function generates the Poly1305 Message Authentication Code (MAC). | |
int | mbedtls_poly1305_mac (const unsigned char key[32], const unsigned char *input, size_t ilen, unsigned char mac[16]) |
This function calculates the Poly1305 MAC of the input buffer with the provided key. | |
This file contains Poly1305 definitions and functions.
Poly1305 is a one-time message authenticator that can be used to authenticate messages. Poly1305-AES was created by Daniel Bernstein https://cr.yp.to/mac/poly1305-20050329.pdf The generic Poly1305 algorithm (not tied to AES) was also standardized in RFC 7539.
Definition in file poly1305.h.
#define MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA -0x0057 |
Invalid input parameter(s).
Definition at line 71 of file poly1305.h.
#define MBEDTLS_ERR_POLY1305_FEATURE_UNAVAILABLE -0x0059 |
Feature not available. For example, s part of the API is not implemented.
Definition at line 75 of file poly1305.h.
#define MBEDTLS_ERR_POLY1305_HW_ACCEL_FAILED -0x005B |
Poly1305 hardware accelerator failed.
Definition at line 79 of file poly1305.h.
int mbedtls_poly1305_finish | ( | mbedtls_poly1305_context * | ctx, |
unsigned char | mac[16] | ||
) |
This function generates the Poly1305 Message Authentication Code (MAC).
ctx | The Poly1305 context to use for the Poly1305 operation. This must be initialized and bound to a key. |
mac | The buffer to where the MAC is written. This must be a writable buffer of length 16 Bytes. |
0
on success. void mbedtls_poly1305_free | ( | mbedtls_poly1305_context * | ctx | ) |
void mbedtls_poly1305_init | ( | mbedtls_poly1305_context * | ctx | ) |
This function initializes the specified Poly1305 context.
It must be the first API called before using the context. It is usually followed by a call to \c mbedtls_poly1305_starts(), then one or more calls to \c mbedtls_poly1305_update(), then one call to \c mbedtls_poly1305_finish(), then finally \c mbedtls_poly1305_free().
ctx | The Poly1305 context to initialize. This must not be NULL . |
int mbedtls_poly1305_mac | ( | const unsigned char | key[32], |
const unsigned char * | input, | ||
size_t | ilen, | ||
unsigned char | mac[16] | ||
) |
This function calculates the Poly1305 MAC of the input buffer with the provided key.
key | The buffer containing the 32 Byte (256 Bit) key. |
ilen | The length of the input data in Bytes. Any value is accepted. |
input | The buffer holding the input data. This pointer can be NULL if ilen == 0 . |
mac | The buffer to where the MAC is written. This must be a writable buffer of length 16 Bytes. |
0
on success. int mbedtls_poly1305_starts | ( | mbedtls_poly1305_context * | ctx, |
const unsigned char | key[32] | ||
) |
This function sets the one-time authentication key.
ctx | The Poly1305 context to which the key should be bound. This must be initialized. |
key | The buffer containing the 32 Byte (256 Bit) key. |
0
on success. int mbedtls_poly1305_update | ( | mbedtls_poly1305_context * | ctx, |
const unsigned char * | input, | ||
size_t | ilen | ||
) |
This functions feeds an input buffer into an ongoing Poly1305 computation.
It is called between mbedtls_cipher_poly1305_starts()
and mbedtls_cipher_poly1305_finish()
. It can be called repeatedly to process a stream of data.
ctx | The Poly1305 context to use for the Poly1305 operation. This must be initialized and bound to a key. |
ilen | The length of the input data in Bytes. Any value is accepted. |
input | The buffer holding the input data. This pointer can be NULL if ilen == 0 . |
0
on success.