|
@@ -67,6 +67,9 @@ static int ghash_update(struct shash_desc *desc,
|
|
|
struct ghash_ctx *ctx = crypto_shash_ctx(desc->tfm);
|
|
|
u8 *dst = dctx->buffer;
|
|
|
|
|
|
+ if (!ctx->gf128)
|
|
|
+ return -ENOKEY;
|
|
|
+
|
|
|
if (dctx->bytes) {
|
|
|
int n = min(srclen, dctx->bytes);
|
|
|
u8 *pos = dst + (GHASH_BLOCK_SIZE - dctx->bytes);
|
|
@@ -119,6 +122,9 @@ static int ghash_final(struct shash_desc *desc, u8 *dst)
|
|
|
struct ghash_ctx *ctx = crypto_shash_ctx(desc->tfm);
|
|
|
u8 *buf = dctx->buffer;
|
|
|
|
|
|
+ if (!ctx->gf128)
|
|
|
+ return -ENOKEY;
|
|
|
+
|
|
|
ghash_flush(ctx, dctx);
|
|
|
memcpy(dst, buf, GHASH_BLOCK_SIZE);
|
|
|
|