Lines Matching refs:desc
25 void poly1305_init(struct poly1305_desc_ctx *desc, in poly1305_init() argument
28 desc->s[0] = get_unaligned_le32(key + 16); in poly1305_init()
29 desc->s[1] = get_unaligned_le32(key + 20); in poly1305_init()
30 desc->s[2] = get_unaligned_le32(key + 24); in poly1305_init()
31 desc->s[3] = get_unaligned_le32(key + 28); in poly1305_init()
32 desc->buflen = 0; in poly1305_init()
33 poly1305_block_init(&desc->state, key); in poly1305_init()
37 void poly1305_update(struct poly1305_desc_ctx *desc, in poly1305_update() argument
40 if (desc->buflen + nbytes >= POLY1305_BLOCK_SIZE) { in poly1305_update()
43 if (desc->buflen) { in poly1305_update()
44 unsigned int l = POLY1305_BLOCK_SIZE - desc->buflen; in poly1305_update()
46 memcpy(&desc->buf[desc->buflen], src, l); in poly1305_update()
50 poly1305_blocks(&desc->state, desc->buf, in poly1305_update()
52 desc->buflen = 0; in poly1305_update()
59 poly1305_blocks(&desc->state, src, bulk_len, 1); in poly1305_update()
64 memcpy(&desc->buf[desc->buflen], src, nbytes); in poly1305_update()
65 desc->buflen += nbytes; in poly1305_update()
70 void poly1305_final(struct poly1305_desc_ctx *desc, u8 *dst) in poly1305_final() argument
72 if (unlikely(desc->buflen)) { in poly1305_final()
73 desc->buf[desc->buflen++] = 1; in poly1305_final()
74 memset(desc->buf + desc->buflen, 0, in poly1305_final()
75 POLY1305_BLOCK_SIZE - desc->buflen); in poly1305_final()
76 poly1305_blocks(&desc->state, desc->buf, POLY1305_BLOCK_SIZE, in poly1305_final()
80 poly1305_emit(&desc->state.h, dst, desc->s); in poly1305_final()
81 *desc = (struct poly1305_desc_ctx){}; in poly1305_final()