libhasha 2.2.2
Loading...
Searching...
No Matches
keccak.h
Go to the documentation of this file.
1
26
27#if !defined(__HASHA_KECCAK_H)
28#define __HASHA_KECCAK_H
29
30#include "internal/internal.h"
31/* #include "keccak1600.h" */ /* not used in header */
32
40#define HA_KECCAK_224_DIGEST_SIZE ha_bB(224)
41
49#define HA_KECCAK_256_DIGEST_SIZE ha_bB(256)
50
58#define HA_KECCAK_384_DIGEST_SIZE ha_bB(384)
59
67#define HA_KECCAK_512_DIGEST_SIZE ha_bB(512)
68
70enum ha_pb ha_enum_base(uint8_t)
71{
72 HA_PB_KECCAK = 0x01,
73 HA_PB_SHA3 = 0x06,
74};
75
77
86typedef struct ha_keccak_context
87{
94 uint8_t state[200];
95
102 size_t rate;
103
110 size_t capacity;
111
119
128
139
153 size_t len);
154
166HA_PUBFUN void ha_keccak_final(ha_keccak_context *ctx, enum ha_pb padbyte,
167 ha_digest_t digest, size_t digestlen);
168
183HA_PUBFUN void ha_keccak_hash(size_t rate, enum ha_pb padbyte,
184 ha_inbuf_t buf, size_t len,
185 ha_digest_t digest, size_t digestlen);
186
189
199
211 ha_inbuf_t data, size_t length);
212
222 ha_digest_t digest);
223
235HA_PUBFUN void ha_keccak_224_hash(ha_inbuf_t data, size_t length,
236 ha_digest_t digest);
237
246
257 ha_inbuf_t data, size_t length);
258
268 ha_digest_t digest);
269
281HA_PUBFUN void ha_keccak_256_hash(ha_inbuf_t data, size_t length,
282 ha_digest_t digest);
283
290
297 ha_inbuf_t data, size_t length);
298
306 ha_digest_t digest);
307
314HA_PUBFUN void ha_keccak_384_hash(ha_inbuf_t data, size_t length,
315 ha_digest_t digest);
316
323
330 ha_inbuf_t data, size_t length);
331
339 ha_digest_t digest);
340
347HA_PUBFUN void ha_keccak_512_hash(ha_inbuf_t data, size_t length,
348 ha_digest_t digest);
349
351
352#endif // __HASHA_KECCAK_H
#define ha_enum_base(T)
Definition hadefs.h:97
#define HA_PUBFUN
Definition hadefs.h:34
#define HA_EXTERN_C_END
Definition hadefs.h:78
#define HA_EXTERN_C_BEG
Definition hadefs.h:70
HA_PUBFUN void ha_keccak_384_final(ha_keccak_384_context *ctx, ha_digest_t digest)
Finalizes the Keccak-384 context.
HA_PUBFUN void ha_keccak_256_final(ha_keccak_256_context *ctx, ha_digest_t digest)
Finalizes the Keccak-256 context.
ha_keccak_context ha_keccak_256_context
Definition keccak.h:187
HA_PUBFUN void ha_keccak_512_hash(ha_inbuf_t data, size_t length, ha_digest_t digest)
Computes the Keccak-512 hash in a single operation.
HA_PUBFUN void ha_keccak_final(ha_keccak_context *ctx, enum ha_pb padbyte, ha_digest_t digest, size_t digestlen)
Finalizes the Keccak-Based computation.
HA_PUBFUN void ha_keccak_512_init(ha_keccak_512_context *ctx)
Initializes the Keccak-512 context.
HA_PUBFUN void ha_keccak_512_final(ha_keccak_512_context *ctx, ha_digest_t digest)
Finalizes the Keccak-512 context.
HA_PUBFUN void ha_keccak_384_hash(ha_inbuf_t data, size_t length, ha_digest_t digest)
Computes the Keccak-384 hash in a single operation.
HA_PUBFUN void ha_keccak_256_update(ha_keccak_256_context *ctx, ha_inbuf_t data, size_t length)
Absorbs input data for Keccak-256.
HA_PUBFUN void ha_keccak_224_hash(ha_inbuf_t data, size_t length, ha_digest_t digest)
Computes the Keccak-224 hash in a single operation.
ha_keccak_context ha_keccak_224_context
Definition keccak.h:187
ha_keccak_context ha_keccak_512_context
Definition keccak.h:188
HA_PUBFUN void ha_keccak_224_init(ha_keccak_224_context *ctx)
Initializes the Keccak-224 context.
HA_PUBFUN void ha_keccak_hash(size_t rate, enum ha_pb padbyte, ha_inbuf_t buf, size_t len, ha_digest_t digest, size_t digestlen)
Computes the Keccak-Based hash in a one-shot operation.
HA_PUBFUN void ha_keccak_update(ha_keccak_context *ctx, ha_inbuf_t buf, size_t len)
Absorbs data into the Keccak-Based context.
HA_PUBFUN void ha_keccak_384_init(ha_keccak_384_context *ctx)
Initializes the Keccak-384 context.
HA_PUBFUN void ha_keccak_224_final(ha_keccak_224_context *ctx, ha_digest_t digest)
Finalizes the Keccak-224 context.
HA_PUBFUN void ha_keccak_init(ha_keccak_context *ctx, size_t rate)
Initializes the Keccak-Based context.
HA_PUBFUN void ha_keccak_384_update(ha_keccak_384_context *ctx, ha_inbuf_t data, size_t length)
Absorbs input data for Keccak-384.
HA_PUBFUN void ha_keccak_224_update(ha_keccak_224_context *ctx, ha_inbuf_t data, size_t length)
Absorbs input data for Keccak-224.
HA_PUBFUN void ha_keccak_512_update(ha_keccak_512_context *ctx, ha_inbuf_t data, size_t length)
Absorbs input data for Keccak-512.
HA_PUBFUN void ha_keccak_256_init(ha_keccak_256_context *ctx)
Initializes the Keccak-256 context.
HA_PUBFUN void ha_keccak_256_hash(ha_inbuf_t data, size_t length, ha_digest_t digest)
Computes the Keccak-256 hash in a single operation.
ha_keccak_context ha_keccak_384_context
Definition keccak.h:188
Keccak hash state context.
Definition keccak.h:87
size_t squeeze_index
The current index for squeezing data.
Definition keccak.h:126
size_t capacity
The capacity (remaining bits).
Definition keccak.h:110
size_t rate
The rate (number of bits processed per round).
Definition keccak.h:102
size_t absorb_index
The current index for absorbing data.
Definition keccak.h:118
uint8_t state[200]
The Keccak state array.
Definition keccak.h:94
__ha_out_buf_type ha_digest_t
Definition types.h:15
__ha_in_buf_type ha_inbuf_t
Definition types.h:12