Lines Matching refs:H

166 sip_round(struct siphash *H, const int rounds) {  in sip_round()  argument
170 H->v0 += H->v1; in sip_round()
171 H->v1 = SIP_ROTL(H->v1, 13); in sip_round()
172 H->v1 ^= H->v0; in sip_round()
173 H->v0 = SIP_ROTL(H->v0, 32); in sip_round()
175 H->v2 += H->v3; in sip_round()
176 H->v3 = SIP_ROTL(H->v3, 16); in sip_round()
177 H->v3 ^= H->v2; in sip_round()
179 H->v0 += H->v3; in sip_round()
180 H->v3 = SIP_ROTL(H->v3, 21); in sip_round()
181 H->v3 ^= H->v0; in sip_round()
183 H->v2 += H->v1; in sip_round()
184 H->v1 = SIP_ROTL(H->v1, 17); in sip_round()
185 H->v1 ^= H->v2; in sip_round()
186 H->v2 = SIP_ROTL(H->v2, 32); in sip_round()
191 sip24_init(struct siphash *H, const struct sipkey *key) { in sip24_init() argument
192 H->v0 = SIP_ULL(0x736f6d65U, 0x70736575U) ^ key->k[0]; in sip24_init()
193 H->v1 = SIP_ULL(0x646f7261U, 0x6e646f6dU) ^ key->k[1]; in sip24_init()
194 H->v2 = SIP_ULL(0x6c796765U, 0x6e657261U) ^ key->k[0]; in sip24_init()
195 H->v3 = SIP_ULL(0x74656462U, 0x79746573U) ^ key->k[1]; in sip24_init()
197 H->p = H->buf; in sip24_init()
198 H->c = 0; in sip24_init()
200 return H; in sip24_init()
206 sip24_update(struct siphash *H, const void *src, size_t len) { in sip24_update() argument
211 while (p < pe && H->p < sip_endof(H->buf)) in sip24_update()
212 *H->p++ = *p++; in sip24_update()
214 if (H->p < sip_endof(H->buf)) in sip24_update()
217 m = SIP_U8TO64_LE(H->buf); in sip24_update()
218 H->v3 ^= m; in sip24_update()
219 sip_round(H, 2); in sip24_update()
220 H->v0 ^= m; in sip24_update()
222 H->p = H->buf; in sip24_update()
223 H->c += 8; in sip24_update()
226 return H; in sip24_update()
230 sip24_final(struct siphash *H) { in sip24_final() argument
231 const char left = (char)(H->p - H->buf); in sip24_final()
232 uint64_t b = (H->c + left) << 56; in sip24_final()
236 b |= (uint64_t)H->buf[6] << 48; in sip24_final()
239 b |= (uint64_t)H->buf[5] << 40; in sip24_final()
242 b |= (uint64_t)H->buf[4] << 32; in sip24_final()
245 b |= (uint64_t)H->buf[3] << 24; in sip24_final()
248 b |= (uint64_t)H->buf[2] << 16; in sip24_final()
251 b |= (uint64_t)H->buf[1] << 8; in sip24_final()
254 b |= (uint64_t)H->buf[0] << 0; in sip24_final()
260 H->v3 ^= b; in sip24_final()
261 sip_round(H, 2); in sip24_final()
262 H->v0 ^= b; in sip24_final()
263 H->v2 ^= 0xff; in sip24_final()
264 sip_round(H, 4); in sip24_final()
266 return H->v0 ^ H->v1 ^ H->v2 ^ H->v3; in sip24_final()