| 179 | } |
| 180 | |
| 181 | uint64_t |
| 182 | SipHash_End(SIPHASH_CTX *ctx) |
| 183 | { |
| 184 | uint64_t r; |
| 185 | |
| 186 | KASSERT(ctx->initialized == 2, |
| 187 | ("%s: context %p not properly initialized", __func__, ctx)); |
| 188 | |
| 189 | SipBuf(ctx, NULL, 0, 1); |
| 190 | ctx->v[2] ^= 0xff; |
| 191 | SipRounds(ctx, 1); |
| 192 | r = (ctx->v[0] ^ ctx->v[1]) ^ (ctx->v[2] ^ ctx->v[3]); |
| 193 | |
| 194 | bzero(ctx, sizeof(*ctx)); |
| 195 | return (r); |
| 196 | } |
| 197 | |
| 198 | uint64_t |
| 199 | SipHashX(SIPHASH_CTX *ctx, int rc, int rf, |
no test coverage detected