summaryrefslogtreecommitdiffstats
path: root/include/crypto/vmac.h
diff options
context:
space:
mode:
authorSalman Qazi <sqazi@google.com>2012-10-05 23:24:14 +0200
committerHerbert Xu <herbert@gondor.apana.org.au>2012-10-15 16:33:20 +0200
commitba1ee070909fae01248b8117da1706f3cf2bfd1b (patch)
tree98d982702fdc17a9699387c59583e9a5ecf0b984 /include/crypto/vmac.h
parentcrypto: talitos - convert to use be16_add_cpu() (diff)
downloadlinux-ba1ee070909fae01248b8117da1706f3cf2bfd1b.tar.xz
linux-ba1ee070909fae01248b8117da1706f3cf2bfd1b.zip
crypto: vmac - Make VMAC work when blocks aren't aligned
VMAC implementation, as it is, does not work with blocks that are not multiples of 128-bytes. Furthermore, this is a problem when using the implementation on scatterlists, even when the complete plain text is 128-byte multiple, as the pieces that get passed to vmac_update can be pretty much any size. I also added test cases for unaligned blocks. Signed-off-by: Salman Qazi <sqazi@google.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to '')
-rw-r--r--include/crypto/vmac.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/crypto/vmac.h b/include/crypto/vmac.h
index c4467c55df1e..6b700c7b2fe1 100644
--- a/include/crypto/vmac.h
+++ b/include/crypto/vmac.h
@@ -56,6 +56,8 @@ typedef u64 vmac_t;
struct vmac_ctx_t {
struct crypto_cipher *child;
struct vmac_ctx __vmac_ctx;
+ u8 partial[VMAC_NHBYTES]; /* partial block */
+ int partial_size; /* size of the partial block */
};
#endif /* __CRYPTO_VMAC_H */