Lines Matching refs:sctx

163 	struct sha3_state *sctx = shash_desc_ctx(desc);  in crypto_sha3_init()  local
166 sctx->rsiz = 200 - 2 * digest_size; in crypto_sha3_init()
167 sctx->rsizw = sctx->rsiz / 8; in crypto_sha3_init()
168 sctx->partial = 0; in crypto_sha3_init()
170 memset(sctx->st, 0, sizeof(sctx->st)); in crypto_sha3_init()
178 struct sha3_state *sctx = shash_desc_ctx(desc); in crypto_sha3_update() local
185 if ((sctx->partial + len) > (sctx->rsiz - 1)) { in crypto_sha3_update()
186 if (sctx->partial) { in crypto_sha3_update()
187 done = -sctx->partial; in crypto_sha3_update()
188 memcpy(sctx->buf + sctx->partial, data, in crypto_sha3_update()
189 done + sctx->rsiz); in crypto_sha3_update()
190 src = sctx->buf; in crypto_sha3_update()
196 for (i = 0; i < sctx->rsizw; i++) in crypto_sha3_update()
197 sctx->st[i] ^= get_unaligned_le64(src + 8 * i); in crypto_sha3_update()
198 keccakf(sctx->st); in crypto_sha3_update()
200 done += sctx->rsiz; in crypto_sha3_update()
202 } while (done + (sctx->rsiz - 1) < len); in crypto_sha3_update()
204 sctx->partial = 0; in crypto_sha3_update()
206 memcpy(sctx->buf + sctx->partial, src, len - done); in crypto_sha3_update()
207 sctx->partial += (len - done); in crypto_sha3_update()
215 struct sha3_state *sctx = shash_desc_ctx(desc); in crypto_sha3_final() local
216 unsigned int i, inlen = sctx->partial; in crypto_sha3_final()
220 sctx->buf[inlen++] = 0x06; in crypto_sha3_final()
221 memset(sctx->buf + inlen, 0, sctx->rsiz - inlen); in crypto_sha3_final()
222 sctx->buf[sctx->rsiz - 1] |= 0x80; in crypto_sha3_final()
224 for (i = 0; i < sctx->rsizw; i++) in crypto_sha3_final()
225 sctx->st[i] ^= get_unaligned_le64(sctx->buf + 8 * i); in crypto_sha3_final()
227 keccakf(sctx->st); in crypto_sha3_final()
230 put_unaligned_le64(sctx->st[i], digest++); in crypto_sha3_final()
233 put_unaligned_le32(sctx->st[i], (__le32 *)digest); in crypto_sha3_final()
235 memset(sctx, 0, sizeof(*sctx)); in crypto_sha3_final()