Home | History | Annotate | Download | only in crc

Lines Matching refs:sctx

90 static void fio_sha3_init(struct fio_sha3_ctx *sctx, unsigned int digest_sz)
92 memset(sctx->st, 0, sizeof(sctx->st));
93 sctx->md_len = digest_sz;
94 sctx->rsiz = 200 - 2 * digest_sz;
95 sctx->rsizw = sctx->rsiz / 8;
96 sctx->partial = 0;
97 memset(sctx->buf, 0, sizeof(sctx->buf));
100 void fio_sha3_224_init(struct fio_sha3_ctx *sctx)
102 fio_sha3_init(sctx, SHA3_224_DIGEST_SIZE);
105 void fio_sha3_256_init(struct fio_sha3_ctx *sctx)
107 fio_sha3_init(sctx, SHA3_256_DIGEST_SIZE);
110 void fio_sha3_384_init(struct fio_sha3_ctx *sctx)
112 fio_sha3_init(sctx, SHA3_384_DIGEST_SIZE);
115 void fio_sha3_512_init(struct fio_sha3_ctx *sctx)
117 fio_sha3_init(sctx, SHA3_512_DIGEST_SIZE);
120 int fio_sha3_update(struct fio_sha3_ctx *sctx, const uint8_t *data,
129 if ((sctx->partial + len) > (sctx->rsiz - 1)) {
130 if (sctx->partial) {
131 done = -sctx->partial;
132 memcpy(sctx->buf + sctx->partial, data,
133 done + sctx->rsiz);
134 src = sctx->buf;
140 for (i = 0; i < sctx->rsizw; i++)
141 sctx->st[i] ^= ((uint64_t *) src)[i];
142 keccakf(sctx->st);
144 done += sctx->rsiz;
146 } while (done + (sctx->rsiz - 1) < len);
148 sctx->partial = 0;
150 memcpy(sctx->buf + sctx->partial, src, len - done);
151 sctx->partial += (len - done);
156 void fio_sha3_final(struct fio_sha3_ctx *sctx)
158 unsigned int i, inlen = sctx->partial;
160 sctx->buf[inlen++] = 0x06;
161 memset(sctx->buf + inlen, 0, sctx->rsiz - inlen);
162 sctx->buf[sctx->rsiz - 1] |= 0x80;
164 for (i = 0; i < sctx->rsizw; i++)
165 sctx->st[i] ^= ((uint64_t *) sctx->buf)[i];
167 keccakf(sctx->st);
169 for (i = 0; i < sctx->rsizw; i++)
170 sctx->st[i] = cpu_to_le64(sctx->st[i]);
172 memcpy(sctx->sha, sctx->st, sctx->md_len);