/* }}} */
#define PHP_HASH_HAVAL_INIT(p,b) \
-php_hash_ops php_hash_##p##haval##b##_ops = { PHP_##p##HAVAL##b##Init, PHP_HAVALUpdate, PHP_HAVAL##b##Final, ((b) / 8), 128, sizeof(PHP_HAVAL_CTX) }; \
+php_hash_ops php_hash_##p##haval##b##_ops = { \
+ (php_hash_init_func_t) PHP_##p##HAVAL##b##Init, \
+ (php_hash_update_func_t) PHP_HAVALUpdate, \
+ (php_hash_final_func_t) PHP_HAVAL##b##Final, \
+ ((b) / 8), 128, sizeof(PHP_HAVAL_CTX) }; \
PHP_HASH_API void PHP_##p##HAVAL##b##Init(PHP_HAVAL_CTX *context) \
{ int i; context->count[0] = context->count[1] = 0; \
for(i = 0; i < 8; i++) context->state[i] = D0[i]; \
#include "php_hash_md.h"
php_hash_ops php_hash_md5_ops = {
- PHP_MD5Init,
- PHP_MD5Update,
- PHP_MD5Final,
+ (php_hash_init_func_t) PHP_MD5Init,
+ (php_hash_update_func_t) PHP_MD5Update,
+ (php_hash_final_func_t) PHP_MD5Final,
16,
64,
sizeof(PHP_MD5_CTX)
#include "php_hash_ripemd.h"
php_hash_ops php_hash_ripemd128_ops = {
- PHP_RIPEMD128Init,
- PHP_RIPEMD128Update,
- PHP_RIPEMD128Final,
+ (php_hash_init_func_t) PHP_RIPEMD128Init,
+ (php_hash_update_func_t) PHP_RIPEMD128Update,
+ (php_hash_final_func_t) PHP_RIPEMD128Final,
16,
64,
sizeof(PHP_RIPEMD128_CTX)
};
php_hash_ops php_hash_ripemd160_ops = {
- PHP_RIPEMD160Init,
- PHP_RIPEMD160Update,
- PHP_RIPEMD160Final,
+ (php_hash_init_func_t) PHP_RIPEMD160Init,
+ (php_hash_update_func_t) PHP_RIPEMD160Update,
+ (php_hash_final_func_t) PHP_RIPEMD160Final,
20,
64,
sizeof(PHP_RIPEMD160_CTX)
/* }}} */
php_hash_ops php_hash_sha1_ops = {
- PHP_SHA1Init,
- PHP_SHA1Update,
- PHP_SHA1Final,
+ (php_hash_init_func_t) PHP_SHA1Init,
+ (php_hash_update_func_t) PHP_SHA1Update,
+ (php_hash_final_func_t) PHP_SHA1Final,
20,
64,
sizeof(PHP_SHA1_CTX)
/* sha256 */
php_hash_ops php_hash_sha256_ops = {
- PHP_SHA256Init,
- PHP_SHA256Update,
- PHP_SHA256Final,
+ (php_hash_init_func_t) PHP_SHA256Init,
+ (php_hash_update_func_t) PHP_SHA256Update,
+ (php_hash_final_func_t) PHP_SHA256Final,
32,
64,
sizeof(PHP_SHA256_CTX)
/* }}} */
php_hash_ops php_hash_sha384_ops = {
- PHP_SHA384Init,
- PHP_SHA384Update,
- PHP_SHA384Final,
+ (php_hash_init_func_t) PHP_SHA384Init,
+ (php_hash_update_func_t) PHP_SHA384Update,
+ (php_hash_final_func_t) PHP_SHA384Final,
48,
128,
sizeof(PHP_SHA384_CTX)
/* }}} */
php_hash_ops php_hash_sha512_ops = {
- PHP_SHA512Init,
- PHP_SHA512Update,
- PHP_SHA512Final,
+ (php_hash_init_func_t) PHP_SHA512Init,
+ (php_hash_update_func_t) PHP_SHA512Update,
+ (php_hash_final_func_t) PHP_SHA512Final,
64,
128,
sizeof(PHP_SHA512_CTX)
#define PHP_HASH_HMAC 0x0001
+typedef int (*php_hash_init_func_t)(void *context);
+typedef int (*php_hash_update_func_t)(void *context, const unsigned char *buf, unsigned int count);
+typedef int (*php_hash_final_func_t)(unsigned char *digest, void *context);
+
typedef struct _php_hash_ops {
- int (*hash_init)(void *context);
- int (*hash_update)(void *context, const unsigned char *buf, unsigned int count);
- int (*hash_final)(unsigned char *digest, void *context);
+ php_hash_init_func_t hash_init;
+ php_hash_update_func_t hash_update;
+ php_hash_final_func_t hash_final;
int digest_size;
int block_size;
#include "TSRM.h"
#endif
+PHP_HASH_API php_hash_ops *php_hash_fetch_ops(const char *algo, int algo_len);
+PHP_HASH_API void php_hash_register_algo(const char *algo, php_hash_ops *ops);
+
#endif /* PHP_HASH_H */