17 #include <linux/module.h>
24 unsigned int bsize = crypto_shash_blocksize(desc->
tfm);
29 index = ctx->
count & (bsize - 1);
32 if ((index + len) < bsize)
37 memcpy(ctx->
buf + index, data, bsize - index);
38 ret = crypt_s390_kimd(ctx->
func, ctx->
state, ctx->
buf, bsize);
40 data += bsize -
index;
47 ret = crypt_s390_kimd(ctx->
func, ctx->
state, data,
49 BUG_ON(ret != (len & ~(bsize - 1)));
64 unsigned int bsize = crypto_shash_blocksize(desc->
tfm);
73 index = ctx->
count & (bsize - 1);
74 end = (index < bsize -
plen) ? bsize : (2 * bsize);
81 memset(ctx->
buf + index, 0x00, end - index - 8);
87 bits = ctx->
count * 8;
88 memcpy(ctx->
buf + end - 8, &bits,
sizeof(bits));
90 ret = crypt_s390_kimd(ctx->
func, ctx->
state, ctx->
buf, end);
96 memset(ctx, 0,
sizeof *ctx);