nrfxlib API 3.3.99
Loading...
Searching...
No Matches
ocrypto_shake.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
29#ifndef OCRYPTO_SHAKE_H
30#define OCRYPTO_SHAKE_H
31
32#include <stddef.h>
33#include <stdint.h>
34
35#include "ocrypto_sha3.h"
36
37
38#ifdef __cplusplus
39extern "C" {
40#endif
41
42
44typedef ocrypto_sha3_ctx ocrypto_shake_ctx;
65 ocrypto_shake_ctx *ctx);
66
82 ocrypto_shake_ctx *ctx,
83 const uint8_t *in, size_t in_len);
84
100 ocrypto_shake_ctx *ctx,
101 const uint8_t *in, size_t in_len);
102
121 ocrypto_shake_ctx *ctx,
122 uint8_t *r, size_t r_len);
123
142 ocrypto_shake_ctx *ctx,
143 uint8_t *r, size_t r_len);
144
160 ocrypto_shake_ctx *ctx,
161 uint8_t *r, size_t r_len);
162
178 ocrypto_shake_ctx *ctx,
179 uint8_t *r, size_t r_len);
193 uint8_t *r, size_t r_len,
194 const uint8_t *in, size_t in_len);
195
207 uint8_t *r, size_t r_len,
208 const uint8_t *in, size_t in_len);
209
210#ifdef __cplusplus
211}
212#endif
213
214#endif
215
void ocrypto_shake128_final(ocrypto_shake_ctx *ctx, uint8_t *r, size_t r_len)
void ocrypto_shake256_update(ocrypto_shake_ctx *ctx, const uint8_t *in, size_t in_len)
void ocrypto_shake256(uint8_t *r, size_t r_len, const uint8_t *in, size_t in_len)
void ocrypto_shake128(uint8_t *r, size_t r_len, const uint8_t *in, size_t in_len)
void ocrypto_shake128_update(ocrypto_shake_ctx *ctx, const uint8_t *in, size_t in_len)
void ocrypto_shake256_final(ocrypto_shake_ctx *ctx, uint8_t *r, size_t r_len)
void ocrypto_shake256_ext(ocrypto_shake_ctx *ctx, uint8_t *r, size_t r_len)
void ocrypto_shake128_ext(ocrypto_shake_ctx *ctx, uint8_t *r, size_t r_len)
void ocrypto_shake_init(ocrypto_shake_ctx *ctx)
SHA3 algorithms, with 224, 256, 384 and 512 bit outputs.