version 1.3, 2013/12/15 21:42:35 |
version 1.4, 2014/01/31 16:39:19 |
|
|
* Run ChaCha20 once to generate the Poly1305 key. The IV is the |
* Run ChaCha20 once to generate the Poly1305 key. The IV is the |
* packet sequence number. |
* packet sequence number. |
*/ |
*/ |
bzero(poly_key, sizeof(poly_key)); |
memset(poly_key, 0, sizeof(poly_key)); |
put_u64(seqbuf, seqnr); |
put_u64(seqbuf, seqnr); |
chacha_ivsetup(&ctx->main_ctx, seqbuf, NULL); |
chacha_ivsetup(&ctx->main_ctx, seqbuf, NULL); |
chacha_encrypt_bytes(&ctx->main_ctx, |
chacha_encrypt_bytes(&ctx->main_ctx, |
|
|
r = 0; |
r = 0; |
|
|
out: |
out: |
bzero(expected_tag, sizeof(expected_tag)); |
explicit_bzero(expected_tag, sizeof(expected_tag)); |
bzero(seqbuf, sizeof(seqbuf)); |
explicit_bzero(seqbuf, sizeof(seqbuf)); |
bzero(poly_key, sizeof(poly_key)); |
explicit_bzero(poly_key, sizeof(poly_key)); |
return r; |
return r; |
} |
} |
|
|