File indexing completed on 2026-08-06 09:38:11
0001 #ifndef crypto_core_keccak1600_H
0002 #define crypto_core_keccak1600_H
0003
0004 #include <stddef.h>
0005
0006 #include "export.h"
0007
0008 #ifdef __cplusplus
0009 # ifdef __GNUC__
0010 # pragma GCC diagnostic ignored "-Wlong-long"
0011 # endif
0012 extern "C" {
0013 #endif
0014
0015 #ifdef __IBMC__
0016 # pragma pack(1)
0017 #elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
0018 # pragma pack(1)
0019 #else
0020 # pragma pack(push, 1)
0021 #endif
0022
0023 typedef struct CRYPTO_ALIGN(16) crypto_core_keccak1600_state {
0024 unsigned char opaque[224];
0025 } crypto_core_keccak1600_state;
0026
0027 #ifdef __IBMC__
0028 # pragma pack(pop)
0029 #elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
0030 # pragma pack()
0031 #else
0032 # pragma pack(pop)
0033 #endif
0034
0035 SODIUM_EXPORT
0036 size_t crypto_core_keccak1600_statebytes(void);
0037
0038 SODIUM_EXPORT
0039 void crypto_core_keccak1600_init(crypto_core_keccak1600_state *state)
0040 __attribute__ ((nonnull));
0041
0042 SODIUM_EXPORT
0043 void crypto_core_keccak1600_xor_bytes(crypto_core_keccak1600_state *state,
0044 const unsigned char *bytes,
0045 size_t offset, size_t length)
0046 __attribute__ ((nonnull));
0047
0048 SODIUM_EXPORT
0049 void crypto_core_keccak1600_extract_bytes(const crypto_core_keccak1600_state *state,
0050 unsigned char *bytes,
0051 size_t offset, size_t length)
0052 __attribute__ ((nonnull));
0053
0054 SODIUM_EXPORT
0055 void crypto_core_keccak1600_permute_24(crypto_core_keccak1600_state *state)
0056 __attribute__ ((nonnull));
0057
0058 SODIUM_EXPORT
0059 void crypto_core_keccak1600_permute_12(crypto_core_keccak1600_state *state)
0060 __attribute__ ((nonnull));
0061
0062 #ifdef __cplusplus
0063 }
0064 #endif
0065
0066 #endif