This uses more meaningful labels (if you have the spec as a reference), and avoids printing some stuff (like the original DT) twice. It also strips out the len parameter and uses a fixed length of DEFAULT_BLK_SZ. Signed-off-by: George Spelvin <linux@xxxxxxxxxxx> --- crypto/ansi_cprng.c | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/crypto/ansi_cprng.c b/crypto/ansi_cprng.c index b54e4e75..325aa727d 100644 --- a/crypto/ansi_cprng.c +++ b/crypto/ansi_cprng.c @@ -19,6 +19,7 @@ #include <linux/module.h> #include <linux/moduleparam.h> #include <linux/string.h> +#include <linux/stringify.h> #include "internal.h" @@ -57,10 +58,11 @@ struct prng_context { static int dbg; -static void hexdump(char *note, unsigned char *buf, unsigned int len) +static void hexdump(char const *note, const unsigned char buf[DEFAULT_BLK_SZ]) { if (dbg) { - printk(KERN_CRIT "%s%*phN", note, (int)len, buf); + printk(KERN_CRIT "%s = %" __stringify(DEFAULT_BLK_SZ) "phN", + note, buf); } } @@ -90,17 +92,16 @@ static int _get_more_prng_bytes(struct prng_context *ctx, int cont_test) dbgprint(KERN_CRIT "Calling _get_more_prng_bytes for context %p\n", ctx); - hexdump("Input DT: ", ctx->DT, DEFAULT_BLK_SZ); - hexdump("Input I: ", ctx->I, DEFAULT_BLK_SZ); - hexdump("Input V: ", ctx->V, DEFAULT_BLK_SZ); + hexdump("DT", ctx->DT); + hexdump("V", ctx->V); /* * Start by encrypting the counter value * This gives us an intermediate value I */ memcpy(tmp, ctx->DT, DEFAULT_BLK_SZ); - hexdump("tmp stage 0: ", tmp, DEFAULT_BLK_SZ); crypto_cipher_encrypt_one(ctx->tfm, ctx->I, tmp); + hexdump("I", ctx->I); /* * Next xor I with our secret vector V @@ -108,8 +109,9 @@ static int _get_more_prng_bytes(struct prng_context *ctx, int cont_test) * pseudo random data which we output */ xor_vectors(ctx->I, ctx->V, tmp, DEFAULT_BLK_SZ); - hexdump("tmp stage 1: ", tmp, DEFAULT_BLK_SZ); + hexdump("V^I", tmp); crypto_cipher_encrypt_one(ctx->tfm, ctx->rand_data, tmp); + hexdump("R", ctx->rand_data); /* * First check that we didn't produce the same @@ -132,8 +134,9 @@ static int _get_more_prng_bytes(struct prng_context *ctx, int cont_test) * and encrypt that to obtain a new secret vector V */ xor_vectors(ctx->rand_data, ctx->I, tmp, DEFAULT_BLK_SZ); - hexdump("tmp stage 2: ", tmp, DEFAULT_BLK_SZ); + hexdump("R^I", tmp); crypto_cipher_encrypt_one(ctx->tfm, ctx->V, tmp); + hexdump("V'", ctx->V); /* * Now update our DT value @@ -143,15 +146,11 @@ static int _get_more_prng_bytes(struct prng_context *ctx, int cont_test) if (ctx->DT[i] != 0) break; } + hexdump("DT'", ctx->DT); dbgprint("Returning new block for context %p\n", ctx); ctx->rand_data_valid = 0; - hexdump("Output DT: ", ctx->DT, DEFAULT_BLK_SZ); - hexdump("Output I: ", ctx->I, DEFAULT_BLK_SZ); - hexdump("Output V: ", ctx->V, DEFAULT_BLK_SZ); - hexdump("New Random Data: ", ctx->rand_data, DEFAULT_BLK_SZ); - return 0; } -- 2.1.3 -- To unsubscribe from this list: send the line "unsubscribe linux-crypto" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html