Now the `:' markers actually correspond with the block boundaries.
Amazing, no?
static octet ct[sizeof(text)]; \
static octet pt[sizeof(text)]; \
\
static octet ct[sizeof(text)]; \
static octet pt[sizeof(text)]; \
\
-static void hexdump(const octet *p, size_t sz) \
+static void hexdump(const octet *p, size_t sz, size_t off) \
{ \
const octet *q = p + sz; \
for (sz = 0; p < q; p++, sz++) { \
printf("%02x", *p); \
{ \
const octet *q = p + sz; \
for (sz = 0; p < q; p++, sz++) { \
printf("%02x", *p); \
- if ((sz + 1) % PRE##_BLKSZ == 0) \
+ if ((off + sz + 1) % PRE##_BLKSZ == 0) \
} else { \
printf("\nError (sz = %lu)\n", (unsigned long)sz); \
status = 1; \
} else { \
printf("\nError (sz = %lu)\n", (unsigned long)sz); \
status = 1; \
- printf("\tplaintext = "); hexdump(text, sz); \
- printf(", "); hexdump(text + sz, rest); \
+ printf("\tplaintext = "); hexdump(text, sz, 0); \
+ printf(", "); hexdump(text + sz, rest, sz); \
- printf("\tciphertext = "); hexdump(ct, sz); \
- printf(", "); hexdump(ct + sz, rest); \
+ printf("\tciphertext = "); hexdump(ct, sz, 0); \
+ printf(", "); hexdump(ct + sz, rest, sz); \
- printf("\trecovered text = "); hexdump(pt, sz); \
- printf(", "); hexdump(pt + sz, rest); \
+ printf("\trecovered text = "); hexdump(pt, sz, 0); \
+ printf(", "); hexdump(pt + sz, rest, sz); \
fputc('\n', stdout); \
fputc('\n', stdout); \
} \
fputc('\n', stdout); \
fputc('\n', stdout); \
} \
static octet ct[sizeof(text)]; \
static octet pt[sizeof(text)]; \
\
static octet ct[sizeof(text)]; \
static octet pt[sizeof(text)]; \
\
-static void hexdump(const octet *p, size_t sz) \
+static void hexdump(const octet *p, size_t sz, size_t off) \
{ \
const octet *q = p + sz; \
for (sz = 0; p < q; p++, sz++) { \
printf("%02x", *p); \
{ \
const octet *q = p + sz; \
for (sz = 0; p < q; p++, sz++) { \
printf("%02x", *p); \
- if ((sz + 1) % PRE##_BLKSZ == 0) \
+ if ((off + sz + 1) % PRE##_BLKSZ == 0) \
} else { \
printf("\nError (sz = %lu)\n", (unsigned long)sz); \
status = 1; \
} else { \
printf("\nError (sz = %lu)\n", (unsigned long)sz); \
status = 1; \
- printf("\tplaintext = "); hexdump(text, sz); \
- printf(", "); hexdump(text + sz, rest); \
+ printf("\tplaintext = "); hexdump(text, sz, 0); \
+ printf(", "); hexdump(text + sz, rest, sz); \
- printf("\tciphertext = "); hexdump(ct, sz); \
- printf(", "); hexdump(ct + sz, rest); \
+ printf("\tciphertext = "); hexdump(ct, sz, 0); \
+ printf(", "); hexdump(ct + sz, rest, sz); \
- printf("\trecovered text = "); hexdump(pt, sz); \
- printf(", "); hexdump(pt + sz, rest); \
+ printf("\trecovered text = "); hexdump(pt, sz, 0); \
+ printf(", "); hexdump(pt + sz, rest, sz); \
fputc('\n', stdout); \
fputc('\n', stdout); \
} \
fputc('\n', stdout); \
fputc('\n', stdout); \
} \
static octet ct[sizeof(text)]; \
static octet pt[sizeof(text)]; \
\
static octet ct[sizeof(text)]; \
static octet pt[sizeof(text)]; \
\
-static void hexdump(const octet *p, size_t sz) \
+static void hexdump(const octet *p, size_t sz, size_t off) \
{ \
const octet *q = p + sz; \
for (sz = 0; p < q; p++, sz++) { \
printf("%02x", *p); \
{ \
const octet *q = p + sz; \
for (sz = 0; p < q; p++, sz++) { \
printf("%02x", *p); \
- if ((sz + 1) % PRE##_BLKSZ == 0) \
+ if ((off + sz + 1) % PRE##_BLKSZ == 0) \
} else { \
printf("\nError (sz = %lu)\n", (unsigned long)sz); \
status = 1; \
} else { \
printf("\nError (sz = %lu)\n", (unsigned long)sz); \
status = 1; \
- printf("\tplaintext = "); hexdump(text, sz); \
- printf(", "); hexdump(text + sz, rest); \
+ printf("\tplaintext = "); hexdump(text, sz, 0); \
+ printf(", "); hexdump(text + sz, rest, sz); \
- printf("\tciphertext = "); hexdump(ct, sz); \
- printf(", "); hexdump(ct + sz, rest); \
+ printf("\tciphertext = "); hexdump(ct, sz, 0); \
+ printf(", "); hexdump(ct + sz, rest, sz); \
- printf("\trecovered text = "); hexdump(pt, sz); \
- printf(", "); hexdump(pt + sz, rest); \
+ printf("\trecovered text = "); hexdump(pt, sz, 0); \
+ printf(", "); hexdump(pt + sz, rest, sz); \
fputc('\n', stdout); \
fputc('\n', stdout); \
} \
fputc('\n', stdout); \
fputc('\n', stdout); \
} \
static octet ct[sizeof(text)]; \
static octet pt[sizeof(text)]; \
\
static octet ct[sizeof(text)]; \
static octet pt[sizeof(text)]; \
\
-static void hexdump(const octet *p, size_t sz) \
+static void hexdump(const octet *p, size_t sz, size_t off) \
{ \
const octet *q = p + sz; \
for (sz = 0; p < q; p++, sz++) { \
printf("%02x", *p); \
{ \
const octet *q = p + sz; \
for (sz = 0; p < q; p++, sz++) { \
printf("%02x", *p); \
- if ((sz + 1) % PRE##_BLKSZ == 0) \
+ if ((off + sz + 1) % PRE##_BLKSZ == 0) \
} else { \
printf("\nError (sz = %lu)\n", (unsigned long)sz); \
status = 1; \
} else { \
printf("\nError (sz = %lu)\n", (unsigned long)sz); \
status = 1; \
- printf("\tplaintext = "); hexdump(text, sz); \
- printf(", "); hexdump(text + sz, rest); \
+ printf("\tplaintext = "); hexdump(text, sz, 0); \
+ printf(", "); hexdump(text + sz, rest, sz); \
- printf("\tciphertext = "); hexdump(ct, sz); \
- printf(", "); hexdump(ct + sz, rest); \
+ printf("\tciphertext = "); hexdump(ct, sz, 0); \
+ printf(", "); hexdump(ct + sz, rest, sz); \
- printf("\trecovered text = "); hexdump(pt, sz); \
- printf(", "); hexdump(pt + sz, rest); \
+ printf("\trecovered text = "); hexdump(pt, sz, 0); \
+ printf(", "); hexdump(pt + sz, rest, sz); \
fputc('\n', stdout); \
fputc('\n', stdout); \
} \
fputc('\n', stdout); \
fputc('\n', stdout); \
} \
static octet ct[sizeof(text)]; \
static octet pt[sizeof(text)]; \
\
static octet ct[sizeof(text)]; \
static octet pt[sizeof(text)]; \
\
-static void hexdump(const octet *p, size_t sz) \
+static void hexdump(const octet *p, size_t sz, size_t off) \
{ \
const octet *q = p + sz; \
for (sz = 0; p < q; p++, sz++) { \
printf("%02x", *p); \
{ \
const octet *q = p + sz; \
for (sz = 0; p < q; p++, sz++) { \
printf("%02x", *p); \
- if ((sz + 1) % PRE##_BLKSZ == 0) \
+ if ((off + sz + 1) % PRE##_BLKSZ == 0) \
} else { \
printf("\nError (sz = %lu)\n", (unsigned long)sz); \
status = 1; \
} else { \
printf("\nError (sz = %lu)\n", (unsigned long)sz); \
status = 1; \
- printf("\tplaintext = "); hexdump(text, sz); \
- printf(", "); hexdump(text + sz, rest); \
+ printf("\tplaintext = "); hexdump(text, sz, 0); \
+ printf(", "); hexdump(text + sz, rest, sz); \
- printf("\tciphertext = "); hexdump(ct, sz); \
- printf(", "); hexdump(ct + sz, rest); \
+ printf("\tciphertext = "); hexdump(ct, sz, 0); \
+ printf(", "); hexdump(ct + sz, rest, sz); \
- printf("\trecovered text = "); hexdump(pt, sz); \
- printf(", "); hexdump(pt + sz, rest); \
+ printf("\trecovered text = "); hexdump(pt, sz, 0); \
+ printf(", "); hexdump(pt + sz, rest, sz); \
fputc('\n', stdout); \
fputc('\n', stdout); \
} \
fputc('\n', stdout); \
fputc('\n', stdout); \
} \