ISARA Quantum Resistant Toolkit
Version 1.1
Quantum resistant cryptographic primitives and algorithms.
iqr_mac.h
Go to the documentation of this file.
1
13
#ifndef IQR_MAC_H
14
#define IQR_MAC_H
15
16
#ifdef __cplusplus
17
extern
"C"
{
18
#endif
19
20
#include "
iqr_context.h
"
21
22
#include <stddef.h>
23
#include <stdint.h>
24
25
#include "
iqr_api.h
"
26
#include "
iqr_hash.h
"
27
#include "
iqr_retval.h
"
28
29
// ---------------------------------------------------------------------------------------------------------------------------------
30
// Opaque data type.
31
// ---------------------------------------------------------------------------------------------------------------------------------
32
34
typedef
struct
iqr_MAC_struct
iqr_MAC
;
35
36
// ---------------------------------------------------------------------------------------------------------------------------------
37
// MAC management.
38
// ---------------------------------------------------------------------------------------------------------------------------------
39
53
IQR_API
54
iqr_retval
iqr_MACCreateHMAC
(
const
iqr_Context
*ctx,
iqr_HashAlgorithmType
hash_algo,
iqr_MAC
**mac);
55
65
IQR_API
66
iqr_retval
iqr_MACCreatePoly1305
(
const
iqr_Context
*ctx,
iqr_MAC
**mac);
67
77
IQR_API_UNENFORCED_RETURN
78
iqr_retval
iqr_MACDestroy
(
iqr_MAC
**mac);
79
80
// ---------------------------------------------------------------------------------------------------------------------------------
81
// MAC usage.
82
// ---------------------------------------------------------------------------------------------------------------------------------
83
105
IQR_API
106
iqr_retval
iqr_MACMessage
(
iqr_MAC
*mac,
const
uint8_t *key,
size_t
key_size,
const
uint8_t *msg,
size_t
msg_size,
107
uint8_t *tag,
size_t
tag_size);
108
118
IQR_API
119
iqr_retval
iqr_MACBegin
(
iqr_MAC
*mac,
const
uint8_t *key,
size_t
key_size);
120
133
IQR_API
134
iqr_retval
iqr_MACUpdate
(
iqr_MAC
*mac,
const
uint8_t *data,
size_t
data_size);
135
150
IQR_API
151
iqr_retval
iqr_MACEnd
(
iqr_MAC
*mac, uint8_t *tag,
size_t
tag_size);
152
162
IQR_API
163
iqr_retval
iqr_MACGetTagSize
(
const
iqr_MAC
*mac,
size_t
*tag_size);
164
165
#ifdef __cplusplus
166
}
167
#endif
168
169
#endif
/* IQR_MAC_H */
iqr_MACUpdate
IQR_API iqr_retval iqr_MACUpdate(iqr_MAC *mac, const uint8_t *data, size_t data_size)
iqr_MACMessage
IQR_API iqr_retval iqr_MACMessage(iqr_MAC *mac, const uint8_t *key, size_t key_size, const uint8_t *msg, size_t msg_size, uint8_t *tag, size_t tag_size)
iqr_hash.h
iqr_context.h
iqr_MACBegin
IQR_API iqr_retval iqr_MACBegin(iqr_MAC *mac, const uint8_t *key, size_t key_size)
iqr_MACCreateHMAC
IQR_API iqr_retval iqr_MACCreateHMAC(const iqr_Context *ctx, iqr_HashAlgorithmType hash_algo, iqr_MAC **mac)
iqr_HashAlgorithmType
iqr_HashAlgorithmType
Definition:
iqr_hash.h:50
iqr_MACCreatePoly1305
IQR_API iqr_retval iqr_MACCreatePoly1305(const iqr_Context *ctx, iqr_MAC **mac)
iqr_retval.h
iqr_api.h
iqr_MACEnd
IQR_API iqr_retval iqr_MACEnd(iqr_MAC *mac, uint8_t *tag, size_t tag_size)
iqr_Context
struct iqr_Context_struct iqr_Context
Definition:
iqr_context.h:33
iqr_MACGetTagSize
IQR_API iqr_retval iqr_MACGetTagSize(const iqr_MAC *mac, size_t *tag_size)
iqr_MAC
struct iqr_MAC_struct iqr_MAC
Definition:
iqr_mac.h:34
iqr_MACDestroy
IQR_API_UNENFORCED_RETURN iqr_retval iqr_MACDestroy(iqr_MAC **mac)
iqr_retval
iqr_retval
Definition:
iqr_retval.h:26
include
iqr_mac.h
Generated on Tue Dec 20 2016 14:52:22 for ISARA Quantum Resistant Toolkit by
1.8.12