+2011-02-05 Niels Möller <nisse@lysator.liu.se>
+
+ * macros.h (INCREMENT): New macro, moved from ctr.c. Deleted third
+ argument.
+ * ctr.c: Use INCREMENT macro from macros.h, deleted local version.
+
2011-01-07 Niels Möller <nisse@lysator.liu.se>
* testsuite/Makefile.in (check): Add ../.lib to PATH, since that's
#include "ctr.h"
+#include "macros.h"
#include "memxor.h"
#include "nettle-internal.h"
-
-#define INCREMENT(size, counter, i) \
-do { \
- if (++(ctr)[(size) - 1] == 0) \
- { \
- unsigned i = size - 1; \
- while (i > 0 && ++(ctr)[--i] == 0) \
- ; \
- } \
-} while (0)
void
ctr_crypt(void *ctx, nettle_crypt_func f,
{
f(ctx, block_size, dst, ctr);
memxor(dst, src, block_size);
- INCREMENT(block_size, ctr, i);
+ INCREMENT(block_size, ctr);
}
}
else
{
f(ctx, block_size, buffer, ctr);
memxor3(dst, src, buffer, block_size);
- INCREMENT(block_size, ctr, i);
+ INCREMENT(block_size, ctr);
}
}
if (length > 0)
f(ctx, block_size, buffer, ctr);
memxor3(dst, src, buffer, length);
- INCREMENT(block_size, ctr, i);
+ INCREMENT(block_size, ctr);
}
}
(dst) += (blocksize), \
(src) += (blocksize)) )
+/* Requires that size >= 2 */
+#define INCREMENT(size, ctr) \
+ do { \
+ unsigned increment_i = (size) - 1; \
+ if (++(ctr)[increment_i] == 0) \
+ { \
+ while (++(ctr)[--increment_i] == 0 \
+ && increment_i > 0) \
+ ; \
+ } \
+ } while (0)
+
#endif /* NETTLE_MACROS_H_INCLUDED */