MAGMA
Cryptographic Library
Loading...
Searching...
No Matches
mac.h
Go to the documentation of this file.
1#ifndef MAGMA_MAC_H
2#define MAGMA_MAC_H
3
4#include <stddef.h>
5#include <stdint.h>
6#include "core/keys.h"
7#include "core/crypt.h"
8#include "core/utils.h"
9
20 const unsigned char keys[ITER_KEYS_COUNT][ITER_KEY_LEN],
21 const size_t mac_size,
22 const unsigned char *input,
23 unsigned char *mac,
24 const size_t length
25);
26
38 const unsigned char keys[ITER_KEYS_COUNT][ITER_KEY_LEN],
39 const size_t mac_size,
40 const unsigned char *input,
41 const unsigned char *mac,
42 const size_t length,
43 int *result
44);
45
57 unsigned char K1_output[MAGMA_BLOCK_SIZE],
58 unsigned char K2_output[MAGMA_BLOCK_SIZE],
59 const unsigned char keys[ITER_KEYS_COUNT][ITER_KEY_LEN]
60);
61
62#endif
#define MAGMA_BLOCK_SIZE
Definition crypt.h:13
#define ITER_KEYS_COUNT
Definition keys.h:9
#define ITER_KEY_LEN
Definition keys.h:10
MagmaResult magma_mac(const unsigned char keys[ITER_KEYS_COUNT][ITER_KEY_LEN], const size_t mac_size, const unsigned char *input, unsigned char *mac, const size_t length)
Processing data to produce a Message Authentication Code (MAC) using the specified keys.
Definition mac.c:3
MagmaResult calc_additional_keys(unsigned char K1_output[MAGMA_BLOCK_SIZE], unsigned char K2_output[MAGMA_BLOCK_SIZE], const unsigned char keys[ITER_KEYS_COUNT][ITER_KEY_LEN])
Calculates additional keys K1 and K2 used in the MAC generation process.
Definition mac.c:124
MagmaResult magma_mac_verify(const unsigned char keys[ITER_KEYS_COUNT][ITER_KEY_LEN], const size_t mac_size, const unsigned char *input, const unsigned char *mac, const size_t length, int *result)
Verifies a Message Authentication Code (MAC) in constant time.
Definition mac.c:94
MagmaResult
Definition types.h:4