} \
void PHP_SHA3##bits##Update(PHP_SHA3_##bits##_CTX* ctx, \
const unsigned char* input, \
size_t inputLen) { \
} \
void PHP_SHA3##bits##Final(unsigned char* digest, \
PHP_SHA3_##bits##_CTX* ctx) { \
Keccak_HashFinal((Keccak_HashInstance *)ctx, digest); \
} \
"sha3-" #bits, \
php_keccak_serialize, \
php_keccak_unserialize, \
bits >> 3, \
(1600 - (2 * bits)) >> 3, \
sizeof(PHP_SHA3_CTX), \
1 \
}
PHP_HASH_API zend_result php_hash_copy(const void *ops, const void *orig_context, void *dest_context)
void(* php_hash_final_func_t)(unsigned char *digest, void *context)
void(* php_hash_init_func_t)(void *context, HashTable *args)
void(* php_hash_update_func_t)(void *context, const unsigned char *buf, size_t count)
struct _php_hash_ops php_hash_ops
#define ZEND_ATTRIBUTE_UNUSED
struct _zend_array HashTable