CRYPTO-C v1.1.3
C/C++ Documentation
sha3.h
Go to the documentation of this file.
1
54/* include guard */
55#ifndef CRYPTO_SHA3_H
56#define CRYPTO_SHA3_H
57
58
59#include "utildev.h"
60
61#define SHA3LEN224 28
62#define SHA3LEN256 32
63#define SHA3LEN384 48
64#define SHA3LEN512 64
65#define KECCAKLEN224 28
66#define KECCAKLEN256 32
67#define KECCAKLEN384 48
68#define KECCAKLEN512 64
70#define KECCAKFROUNDS 24
71
75typedef struct {
76 union {
77 uint8_t b[200];
78 uint64_t q[25];
79 } st;
80 uint32_t outlen;
81 uint32_t rsiz;
82 uint32_t pt;
84
85/* C/C++ compatible function prototypes */
86#ifdef __cplusplus
87extern "C" {
88#endif
89
90void sha3_init(SHA3_KECCAK_CTX *ctx, int outlen);
91void sha3_update(SHA3_KECCAK_CTX *ctx, const void *in, size_t inlen);
92void sha3_final(SHA3_KECCAK_CTX *ctx, void *out);
93void sha3(const void *in, size_t inlen, void *out, int outlen);
94void keccak_init(SHA3_KECCAK_CTX *ctx, int outlen);
95void keccak_update(SHA3_KECCAK_CTX *ctx, const void *in, size_t inlen);
96void keccak_final(SHA3_KECCAK_CTX *ctx, void *out);
97void keccak(const void *in, size_t inlen, void *out, int outlen);
98
99/* CUDA testing functions */
100#ifdef CUDA
101 void test_kcu_sha3(const void *in, size_t *inlen, size_t max_inlen,
102 void *out, int outlen, int num);
103 void test_kcu_keccak(const void *in, size_t *inlen, size_t max_inlen,
104 void *out, int outlen, int num);
105#endif
106
107/* end extern "C" {} for C++ */
108#ifdef __cplusplus
109}
110#endif
111
112/* end include guard */
113#endif
void sha3_init(SHA3_KECCAK_CTX *ctx, int outlen)
Initialize a SHA3 context.
Definition: sha3.c:318
void keccak(const void *in, size_t inlen, void *out, int outlen)
Convenient all-in-one Keccak computation.
Definition: sha3.c:427
void keccak_final(SHA3_KECCAK_CTX *ctx, void *out)
Finalize a Keccak message digest.
Definition: sha3.c:408
void sha3_final(SHA3_KECCAK_CTX *ctx, void *out)
Finalize a SHA3 message digest.
Definition: sha3.c:351
void sha3(const void *in, size_t inlen, void *out, int outlen)
Convenient all-in-one SHA3 computation.
Definition: sha3.c:371
void keccak_init(SHA3_KECCAK_CTX *ctx, int outlen)
Initialize a Keccak context.
Definition: sha3.c:386
void sha3_update(SHA3_KECCAK_CTX *ctx, const void *in, size_t inlen)
Add inlen bytes from in to a SHA3 context for hashing.
Definition: sha3.c:332
void keccak_update(SHA3_KECCAK_CTX *ctx, const void *in, size_t inlen)
Add inlen bytes from in to a Keccak context for hashing.
Definition: sha3.c:397
SHA3/Keccak hashing context.
Definition: sha3.h:75
uint32_t rsiz
Rate size, in bytes.
Definition: sha3.h:81
uint32_t outlen
Digest length, in bytes.
Definition: sha3.h:80
uint32_t pt
Length of buffered input.
Definition: sha3.h:82
Device utilities and includes support.