Lines Matching refs:ctx

67 # define readLane(x, y)     load64(ctx->state+sizeof(uint64_t)*idx(x, y))
68 # define writeLane(x, y, v) store64(ctx->state+sizeof(uint64_t)*idx(x, y), v)
69 # define XORLane(x, y, v) xor64(ctx->state+sizeof(uint64_t)*idx(x, y), v)
71 # define readLane(x, y) (((uint64_t*)ctx->state)[idx(x,y)])
72 # define writeLane(x, y, v) (((uint64_t*)ctx->state)[idx(x,y)] = v)
73 # define XORLane(x, y, v) (((uint64_t*)ctx->state)[idx(x,y)] ^= v)
90 static void permute(PHP_SHA3_CTX* ctx) { in permute() argument
152 static void PHP_SHA3_Init(PHP_SHA3_CTX* ctx, in PHP_SHA3_Init() argument
154 memset(ctx, 0, sizeof(PHP_SHA3_CTX)); in PHP_SHA3_Init()
157 static void PHP_SHA3_Update(PHP_SHA3_CTX* ctx, in PHP_SHA3_Update() argument
162 size_t len = block_size - ctx->pos; in PHP_SHA3_Update()
171 ctx->state[ctx->pos++] ^= *(buf++); in PHP_SHA3_Update()
174 if (ctx->pos >= block_size) { in PHP_SHA3_Update()
175 permute(ctx); in PHP_SHA3_Update()
176 ctx->pos = 0; in PHP_SHA3_Update()
182 PHP_SHA3_CTX* ctx, in PHP_SHA3_Final() argument
188 ctx->state[ctx->pos++] ^= 0x06; in PHP_SHA3_Final()
189 ctx->state[block_size-1] ^= 0x80; in PHP_SHA3_Final()
190 permute(ctx); in PHP_SHA3_Final()
195 memcpy(digest, ctx->state, bs); in PHP_SHA3_Final()
199 permute(ctx); in PHP_SHA3_Final()
203 ZEND_SECURE_ZERO(ctx, sizeof(PHP_SHA3_CTX)); in PHP_SHA3_Final()
209 void PHP_SHA3##bits##Init(PHP_SHA3_##bits##_CTX* ctx) { \
210 PHP_SHA3_Init(ctx, bits); \
212 void PHP_SHA3##bits##Update(PHP_SHA3_##bits##_CTX* ctx, \
215 PHP_SHA3_Update(ctx, input, inputLen, \
219 PHP_SHA3_##bits##_CTX* ctx) { \
220 PHP_SHA3_Final(digest, ctx, \
254 void PHP_SHA3##bits##Init(PHP_SHA3_##bits##_CTX* ctx) { \
255 ctx->hashinstance = emalloc(sizeof(Keccak_HashInstance)); \
256 Keccak_HashInitialize_SHA3_##bits((Keccak_HashInstance *)ctx->hashinstance); \
258 void PHP_SHA3##bits##Update(PHP_SHA3_##bits##_CTX* ctx, \
261 Keccak_HashUpdate((Keccak_HashInstance *)ctx->hashinstance, input, inputLen * 8); \
264 PHP_SHA3_##bits##_CTX* ctx) { \
265 Keccak_HashFinal((Keccak_HashInstance *)ctx->hashinstance, digest); \
266 efree(ctx->hashinstance); \
267 ctx->hashinstance = NULL; \