keccak-fast-internal.h (2366B)
1 #ifndef FINWO_KECCAK_FAST_INTERNAL_H 2 #define FINWO_KECCAK_FAST_INTERNAL_H 3 4 #include <stddef.h> 5 #include <stdint.h> 6 7 #include "keccak-fast.h" 8 9 typedef void (*kf_batch_perm_fn)(uint64_t states[][25], size_t count); 10 11 #define KF_LANES_MAX 8 12 13 #define KF_PRIO_SCALAR 0 14 #define KF_PRIO_BMI 10 15 #define KF_PRIO_AVX2 20 16 #define KF_PRIO_AVX512 30 17 18 extern kf_batch_perm_fn kf_batch_perm; 19 extern kf_batch_perm_fn kf_batch_perm12; 20 extern int kf_batch_priority; 21 extern int kf_batch_lanes; 22 23 extern int kf_backend_priority; 24 extern const char *kf_backend_label; 25 extern const char *kf_batch_label; 26 27 int kf_scalar_shake128(uint8_t *out, size_t outlen, const uint8_t *in, 28 size_t inlen); 29 int kf_scalar_shake256(uint8_t *out, size_t outlen, const uint8_t *in, 30 size_t inlen); 31 int kf_scalar_sha3_224(uint8_t *out, size_t outlen, const uint8_t *in, 32 size_t inlen); 33 int kf_scalar_sha3_256(uint8_t *out, size_t outlen, const uint8_t *in, 34 size_t inlen); 35 int kf_scalar_sha3_384(uint8_t *out, size_t outlen, const uint8_t *in, 36 size_t inlen); 37 int kf_scalar_sha3_512(uint8_t *out, size_t outlen, const uint8_t *in, 38 size_t inlen); 39 int kf_scalar_turboshake128(uint8_t *out, size_t outlen, const uint8_t *in, 40 size_t inlen); 41 int kf_scalar_turboshake256(uint8_t *out, size_t outlen, const uint8_t *in, 42 size_t inlen); 43 void kf_scalar_permute(uint64_t state[25]); 44 void kf_scalar_batch(uint64_t states[][25], size_t count); 45 void kf_scalar_batch12(uint64_t states[][25], size_t count); 46 47 #if (defined(__x86_64__) || defined(_M_X64) || defined(__i386__)) && \ 48 !defined(KECCAK_FAST_NO_BMI) 49 void kf_bmi_batch(uint64_t states[][25], size_t count); 50 void kf_bmi_batch12(uint64_t states[][25], size_t count); 51 #endif 52 #if (defined(__x86_64__) || defined(_M_X64) || defined(__i386__)) && \ 53 !defined(KECCAK_FAST_NO_AVX2) 54 void kf_avx2_batch(uint64_t states[][25], size_t count); 55 void kf_avx2_batch12(uint64_t states[][25], size_t count); 56 #endif 57 #if (defined(__x86_64__) || defined(_M_X64) || defined(__i386__)) && \ 58 !defined(KECCAK_FAST_NO_AVX512) 59 void kf_avx512_batch(uint64_t states[][25], size_t count); 60 void kf_avx512_batch12(uint64_t states[][25], size_t count); 61 #endif 62 63 #endif