Dmitry Eremin-Solenikov <dbarysh...@gmail.com> writes: > Signed-off-by: Dmitry Eremin-Solenikov <dbarysh...@gmail.com> > --- > cmac.c | 125 ++++++++++++++++++++++++++++++++++++++++++++++++- > cmac.h | 69 +++++++++++++++++++++++++++ > nettle-types.h | 6 +++ > 3 files changed, 199 insertions(+), 1 deletion(-) > > diff --git a/cmac.c b/cmac.c > index 70ce8132d9d1..36ad8e58e45e 100644 > --- a/cmac.c > +++ b/cmac.c > @@ -1,9 +1,10 @@ > /* > - AES-CMAC-128 (rfc 4493) > + AES-CMAC-128 (rfc 4493) / CMAC-64 > Copyright (C) Stefan Metzmacher 2012 > Copyright (C) Jeremy Allison 2012 > Copyright (C) Michael Adam 2012 > Copyright (C) 2017, Red Hat Inc. > + Copyright (C) 2019, Dmitry Eremin-Solenikov > > This file is part of GNU Nettle. > > @@ -57,6 +58,15 @@ _cmac128_block_mulx(union nettle_block16 *dst, > dst->u64[0] = (src->u64[0] << 1) | (src->u64[1] >> 63); > dst->u64[1] = (src->u64[1] << 1) ^ (0x87 & -carry); > } > + > +static void > +block_mulx8(union nettle_block8 *dst, > + const union nettle_block8 *src) > +{ > + uint64_t carry = src->u64 >> 63; > + > + dst->u64 = (src->u64 << 1) ^ (0x1b & -carry); > +} > #else /* !WORDS_BIGENDIAN */ > #define LE_SHIFT(x) ((((x) & 0x7f7f7f7f7f7f7f7f) << 1) | \ > (((x) & 0x8080808080808080) >> 15)) > @@ -68,6 +78,15 @@ _cmac128_block_mulx(union nettle_block16 *dst, > dst->u64[0] = LE_SHIFT(src->u64[0]) | ((src->u64[1] & 0x80) << 49); > dst->u64[1] = LE_SHIFT(src->u64[1]) ^ (0x8700000000000000 & -carry); > }
Patch looks nice, thanks! Is any of the implementation shared with cmac128? I think it would be nice to move it to a separate source file cmac64.c. Sharing the cmac.h header file is fine. BTW, I'm sorry for the duplicated effort on nettle_block16 w; I'm traveling and online only sporadically, so I gave it a try without being up to date with your work. Regards, /Niels -- Niels Möller. PGP-encrypted email is preferred. Keyid 368C6677. Internet email is subject to wholesale government surveillance. _______________________________________________ nettle-bugs mailing list nettle-bugs@lists.lysator.liu.se http://lists.lysator.liu.se/mailman/listinfo/nettle-bugs