@@ -136,7 +136,7 @@ void decaf_sponge_destroy ( | |||||
* @param [in] outlen The length of the output data. | * @param [in] outlen The length of the output data. | ||||
* @param [in] params The parameters of the sponge hash. | * @param [in] params The parameters of the sponge hash. | ||||
*/ | */ | ||||
void decaf_sponge_hash ( | |||||
decaf_error_t decaf_sponge_hash ( | |||||
const uint8_t *in, | const uint8_t *in, | ||||
size_t inlen, | size_t inlen, | ||||
uint8_t *out, | uint8_t *out, | ||||
@@ -163,6 +163,9 @@ void decaf_sponge_hash ( | |||||
decaf_sha3_output(sponge->s, out, outlen); \ | decaf_sha3_output(sponge->s, out, outlen); \ | ||||
decaf_sponge_init(sponge->s, &DECAF_SHAKE##n##_params_s); \ | decaf_sponge_init(sponge->s, &DECAF_SHAKE##n##_params_s); \ | ||||
} \ | } \ | ||||
static inline void DECAF_NONNULL decaf_shake##n##_output(decaf_shake##n##_ctx_t sponge, uint8_t *out, size_t outlen ) { \ | |||||
decaf_sha3_output(sponge->s, out, outlen); \ | |||||
} \ | |||||
static inline void DECAF_NONNULL decaf_shake##n##_hash(uint8_t *out, size_t outlen, const uint8_t *in, size_t inlen) { \ | static inline void DECAF_NONNULL decaf_shake##n##_hash(uint8_t *out, size_t outlen, const uint8_t *in, size_t inlen) { \ | ||||
decaf_sponge_hash(in,inlen,out,outlen,&DECAF_SHAKE##n##_params_s); \ | decaf_sponge_hash(in,inlen,out,outlen,&DECAF_SHAKE##n##_params_s); \ | ||||
} \ | } \ | ||||
@@ -182,12 +185,16 @@ void decaf_sponge_hash ( | |||||
static inline void DECAF_NONNULL decaf_sha3_##n##_update(decaf_sha3_##n##_ctx_t sponge, const uint8_t *in, size_t inlen ) { \ | static inline void DECAF_NONNULL decaf_sha3_##n##_update(decaf_sha3_##n##_ctx_t sponge, const uint8_t *in, size_t inlen ) { \ | ||||
decaf_sha3_update(sponge->s, in, inlen); \ | decaf_sha3_update(sponge->s, in, inlen); \ | ||||
} \ | } \ | ||||
static inline void DECAF_NONNULL decaf_sha3_##n##_final(decaf_sha3_##n##_ctx_t sponge, uint8_t *out, size_t outlen ) { \ | |||||
decaf_sha3_output(sponge->s, out, outlen); \ | |||||
static inline decaf_error_t DECAF_NONNULL decaf_sha3_##n##_final(decaf_sha3_##n##_ctx_t sponge, uint8_t *out, size_t outlen ) { \ | |||||
decaf_error_t ret = decaf_sha3_output(sponge->s, out, outlen); \ | |||||
decaf_sponge_init(sponge->s, &DECAF_SHA3_##n##_params_s); \ | decaf_sponge_init(sponge->s, &DECAF_SHA3_##n##_params_s); \ | ||||
return ret; \ | |||||
} \ | |||||
static inline decaf_error_t DECAF_NONNULL decaf_sha3_##n##_output(decaf_sha3_##n##_ctx_t sponge, uint8_t *out, size_t outlen ) { \ | |||||
return decaf_sha3_output(sponge->s, out, outlen); \ | |||||
} \ | } \ | ||||
static inline void DECAF_NONNULL decaf_sha3_##n##_hash(uint8_t *out, size_t outlen, const uint8_t *in, size_t inlen) { \ | |||||
decaf_sponge_hash(in,inlen,out,outlen,&DECAF_SHA3_##n##_params_s); \ | |||||
static inline decaf_error_t DECAF_NONNULL decaf_sha3_##n##_hash(uint8_t *out, size_t outlen, const uint8_t *in, size_t inlen) { \ | |||||
return decaf_sponge_hash(in,inlen,out,outlen,&DECAF_SHA3_##n##_params_s); \ | |||||
} \ | } \ | ||||
static inline void DECAF_NONNULL decaf_sha3_##n##_destroy(decaf_sha3_##n##_ctx_t sponge) { \ | static inline void DECAF_NONNULL decaf_sha3_##n##_destroy(decaf_sha3_##n##_ctx_t sponge) { \ | ||||
decaf_sponge_destroy(sponge->s); \ | decaf_sponge_destroy(sponge->s); \ | ||||
@@ -136,7 +136,7 @@ void decaf_sponge_destroy ( | |||||
* @param [in] outlen The length of the output data. | * @param [in] outlen The length of the output data. | ||||
* @param [in] params The parameters of the sponge hash. | * @param [in] params The parameters of the sponge hash. | ||||
*/ | */ | ||||
void decaf_sponge_hash ( | |||||
decaf_error_t decaf_sponge_hash ( | |||||
const uint8_t *in, | const uint8_t *in, | ||||
size_t inlen, | size_t inlen, | ||||
uint8_t *out, | uint8_t *out, | ||||
@@ -163,6 +163,9 @@ void decaf_sponge_hash ( | |||||
decaf_sha3_output(sponge->s, out, outlen); \ | decaf_sha3_output(sponge->s, out, outlen); \ | ||||
decaf_sponge_init(sponge->s, &DECAF_SHAKE##n##_params_s); \ | decaf_sponge_init(sponge->s, &DECAF_SHAKE##n##_params_s); \ | ||||
} \ | } \ | ||||
static inline void DECAF_NONNULL decaf_shake##n##_output(decaf_shake##n##_ctx_t sponge, uint8_t *out, size_t outlen ) { \ | |||||
decaf_sha3_output(sponge->s, out, outlen); \ | |||||
} \ | |||||
static inline void DECAF_NONNULL decaf_shake##n##_hash(uint8_t *out, size_t outlen, const uint8_t *in, size_t inlen) { \ | static inline void DECAF_NONNULL decaf_shake##n##_hash(uint8_t *out, size_t outlen, const uint8_t *in, size_t inlen) { \ | ||||
decaf_sponge_hash(in,inlen,out,outlen,&DECAF_SHAKE##n##_params_s); \ | decaf_sponge_hash(in,inlen,out,outlen,&DECAF_SHAKE##n##_params_s); \ | ||||
} \ | } \ | ||||
@@ -182,12 +185,16 @@ void decaf_sponge_hash ( | |||||
static inline void DECAF_NONNULL decaf_sha3_##n##_update(decaf_sha3_##n##_ctx_t sponge, const uint8_t *in, size_t inlen ) { \ | static inline void DECAF_NONNULL decaf_sha3_##n##_update(decaf_sha3_##n##_ctx_t sponge, const uint8_t *in, size_t inlen ) { \ | ||||
decaf_sha3_update(sponge->s, in, inlen); \ | decaf_sha3_update(sponge->s, in, inlen); \ | ||||
} \ | } \ | ||||
static inline void DECAF_NONNULL decaf_sha3_##n##_final(decaf_sha3_##n##_ctx_t sponge, uint8_t *out, size_t outlen ) { \ | |||||
decaf_sha3_output(sponge->s, out, outlen); \ | |||||
static inline decaf_error_t DECAF_NONNULL decaf_sha3_##n##_final(decaf_sha3_##n##_ctx_t sponge, uint8_t *out, size_t outlen ) { \ | |||||
decaf_error_t ret = decaf_sha3_output(sponge->s, out, outlen); \ | |||||
decaf_sponge_init(sponge->s, &DECAF_SHA3_##n##_params_s); \ | decaf_sponge_init(sponge->s, &DECAF_SHA3_##n##_params_s); \ | ||||
return ret; \ | |||||
} \ | |||||
static inline decaf_error_t DECAF_NONNULL decaf_sha3_##n##_output(decaf_sha3_##n##_ctx_t sponge, uint8_t *out, size_t outlen ) { \ | |||||
return decaf_sha3_output(sponge->s, out, outlen); \ | |||||
} \ | } \ | ||||
static inline void DECAF_NONNULL decaf_sha3_##n##_hash(uint8_t *out, size_t outlen, const uint8_t *in, size_t inlen) { \ | |||||
decaf_sponge_hash(in,inlen,out,outlen,&DECAF_SHA3_##n##_params_s); \ | |||||
static inline decaf_error_t DECAF_NONNULL decaf_sha3_##n##_hash(uint8_t *out, size_t outlen, const uint8_t *in, size_t inlen) { \ | |||||
return decaf_sponge_hash(in,inlen,out,outlen,&DECAF_SHA3_##n##_params_s); \ | |||||
} \ | } \ | ||||
static inline void DECAF_NONNULL decaf_sha3_##n##_destroy(decaf_sha3_##n##_ctx_t sponge) { \ | static inline void DECAF_NONNULL decaf_sha3_##n##_destroy(decaf_sha3_##n##_ctx_t sponge) { \ | ||||
decaf_sponge_destroy(sponge->s); \ | decaf_sponge_destroy(sponge->s); \ | ||||
@@ -187,7 +187,7 @@ void decaf_sponge_init ( | |||||
decaf_sponge->params->position = 0; | decaf_sponge->params->position = 0; | ||||
} | } | ||||
void decaf_sponge_hash ( | |||||
decaf_error_t decaf_sponge_hash ( | |||||
const uint8_t *in, | const uint8_t *in, | ||||
size_t inlen, | size_t inlen, | ||||
uint8_t *out, | uint8_t *out, | ||||
@@ -197,8 +197,9 @@ void decaf_sponge_hash ( | |||||
decaf_keccak_sponge_t decaf_sponge; | decaf_keccak_sponge_t decaf_sponge; | ||||
decaf_sponge_init(decaf_sponge, params); | decaf_sponge_init(decaf_sponge, params); | ||||
decaf_sha3_update(decaf_sponge, in, inlen); | decaf_sha3_update(decaf_sponge, in, inlen); | ||||
decaf_sha3_output(decaf_sponge, out, outlen); | |||||
decaf_error_t ret = decaf_sha3_output(decaf_sponge, out, outlen); | |||||
decaf_sponge_destroy(decaf_sponge); | decaf_sponge_destroy(decaf_sponge); | ||||
return ret; | |||||
} | } | ||||
#define DEFSHAKE(n) \ | #define DEFSHAKE(n) \ | ||||