nrfxlib API 3.3.99
Loading...
Searching...
No Matches
ocrypto_kmac.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2016 - 2025 Nordic Semiconductor ASA
3 * Copyright (c) since 2013 Oberon microsystems AG
4 *
5 * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
6 */
7
8
30#ifndef OCRYPTO_KMAC_H
31#define OCRYPTO_KMAC_H
32
33#include <stddef.h>
34#include <stdint.h>
35
36#include "ocrypto_sha3.h"
37
38
39#ifdef __cplusplus
40extern "C" {
41#endif
42
43
45typedef ocrypto_sha3_ctx ocrypto_kmac_ctx;
69 ocrypto_kmac_ctx *ctx,
70 const uint8_t *key, size_t key_len,
71 const uint8_t *s, size_t s_len);
72
85 ocrypto_kmac_ctx *ctx,
86 const uint8_t *key, size_t key_len,
87 const uint8_t *s, size_t s_len);
88
104 ocrypto_kmac_ctx *ctx,
105 const uint8_t *in, size_t in_len);
106
122 ocrypto_kmac_ctx *ctx,
123 const uint8_t *in, size_t in_len);
124
143 ocrypto_kmac_ctx *ctx,
144 uint8_t *r, size_t r_len);
145
164 ocrypto_kmac_ctx *ctx,
165 uint8_t *r, size_t r_len);
183 uint8_t *r, size_t r_len,
184 const uint8_t *key, size_t key_len,
185 const uint8_t *in, size_t in_len,
186 const uint8_t *s, size_t s_len);
187
203 uint8_t *r, size_t r_len,
204 const uint8_t *key, size_t key_len,
205 const uint8_t *in, size_t in_len,
206 const uint8_t *s, size_t s_len);
207
208#ifdef __cplusplus
209}
210#endif
211
212#endif
213
void ocrypto_kmac128_update(ocrypto_kmac_ctx *ctx, const uint8_t *in, size_t in_len)
void ocrypto_kmac128(uint8_t *r, size_t r_len, const uint8_t *key, size_t key_len, const uint8_t *in, size_t in_len, const uint8_t *s, size_t s_len)
void ocrypto_kmac256_update(ocrypto_kmac_ctx *ctx, const uint8_t *in, size_t in_len)
void ocrypto_kmac256(uint8_t *r, size_t r_len, const uint8_t *key, size_t key_len, const uint8_t *in, size_t in_len, const uint8_t *s, size_t s_len)
void ocrypto_kmac256_final(ocrypto_kmac_ctx *ctx, uint8_t *r, size_t r_len)
void ocrypto_kmac256_init(ocrypto_kmac_ctx *ctx, const uint8_t *key, size_t key_len, const uint8_t *s, size_t s_len)
void ocrypto_kmac128_init(ocrypto_kmac_ctx *ctx, const uint8_t *key, size_t key_len, const uint8_t *s, size_t s_len)
void ocrypto_kmac128_final(ocrypto_kmac_ctx *ctx, uint8_t *r, size_t r_len)
SHA3 algorithms, with 224, 256, 384 and 512 bit outputs.