keccak-fast.c

Minimal SIMD keccak implementation
git clone git://git.finwo.net/lib/keccak-fast.c
Log | Files | Refs | README | LICENSE

keccak-fast.h (1538B)


      1 #ifndef FINWO_KECCAK_FAST_H
      2 #define FINWO_KECCAK_FAST_H
      3 
      4 #include <stddef.h>
      5 #include <stdint.h>
      6 
      7 typedef int (*kf_hash_fn)(uint8_t *out, size_t outlen, const uint8_t *in,
      8                           size_t inlen);
      9 
     10 extern kf_hash_fn kf_shake128;
     11 extern kf_hash_fn kf_shake256;
     12 extern kf_hash_fn kf_sha3_224;
     13 extern kf_hash_fn kf_sha3_256;
     14 extern kf_hash_fn kf_sha3_384;
     15 extern kf_hash_fn kf_sha3_512;
     16 extern kf_hash_fn kf_turboshake128;
     17 extern kf_hash_fn kf_turboshake256;
     18 
     19 int kf_shake128_batch(size_t count, const uint8_t *in, size_t inlen,
     20                       uint8_t *out, size_t outlen);
     21 int kf_shake256_batch(size_t count, const uint8_t *in, size_t inlen,
     22                       uint8_t *out, size_t outlen);
     23 int kf_sha3_224_batch(size_t count, const uint8_t *in, size_t inlen,
     24                       uint8_t *out, size_t outlen);
     25 int kf_sha3_256_batch(size_t count, const uint8_t *in, size_t inlen,
     26                       uint8_t *out, size_t outlen);
     27 int kf_sha3_384_batch(size_t count, const uint8_t *in, size_t inlen,
     28                       uint8_t *out, size_t outlen);
     29 int kf_sha3_512_batch(size_t count, const uint8_t *in, size_t inlen,
     30                       uint8_t *out, size_t outlen);
     31 int kf_turboshake128_batch(size_t count, const uint8_t *in, size_t inlen,
     32                            uint8_t *out, size_t outlen);
     33 int kf_turboshake256_batch(size_t count, const uint8_t *in, size_t inlen,
     34                            uint8_t *out, size_t outlen);
     35 
     36 const char *kf_backend_name(void);
     37 const char *kf_batch_name(void);
     38 
     39 #endif