Lines Matching refs:dctx
24 struct poly1305_desc_ctx *dctx = shash_desc_ctx(desc);
26 poly1305_core_init(&dctx->h);
27 dctx->buflen = 0;
28 dctx->rset = 0;
29 dctx->sset = false;
34 static unsigned int crypto_poly1305_setdesckey(struct poly1305_desc_ctx *dctx,
37 if (!dctx->sset) {
38 if (!dctx->rset && srclen >= POLY1305_BLOCK_SIZE) {
39 poly1305_core_setkey(&dctx->core_r, src);
42 dctx->rset = 2;
45 dctx->s[0] = get_unaligned_le32(src + 0);
46 dctx->s[1] = get_unaligned_le32(src + 4);
47 dctx->s[2] = get_unaligned_le32(src + 8);
48 dctx->s[3] = get_unaligned_le32(src + 12);
51 dctx->sset = true;
57 static void poly1305_blocks(struct poly1305_desc_ctx *dctx, const u8 *src,
62 if (unlikely(!dctx->sset)) {
63 datalen = crypto_poly1305_setdesckey(dctx, src, srclen);
68 poly1305_core_blocks(&dctx->h, &dctx->core_r, src,
75 struct poly1305_desc_ctx *dctx = shash_desc_ctx(desc);
78 if (unlikely(dctx->buflen)) {
79 bytes = min(srclen, POLY1305_BLOCK_SIZE - dctx->buflen);
80 memcpy(dctx->buf + dctx->buflen, src, bytes);
83 dctx->buflen += bytes;
85 if (dctx->buflen == POLY1305_BLOCK_SIZE) {
86 poly1305_blocks(dctx, dctx->buf,
88 dctx->buflen = 0;
93 poly1305_blocks(dctx, src, srclen);
99 dctx->buflen = srclen;
100 memcpy(dctx->buf, src, srclen);
108 struct poly1305_desc_ctx *dctx = shash_desc_ctx(desc);
110 if (unlikely(!dctx->sset))
113 poly1305_final_generic(dctx, dst);