From 12f283833bc2a5c5ea62bdad3927d7f90ef49125 Mon Sep 17 00:00:00 2001 From: Iceman Date: Mon, 26 Jun 2017 21:49:21 +0200 Subject: [PATCH] Update crapto1.c Add nonce validation --- common/crapto1/crapto1.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/common/crapto1/crapto1.c b/common/crapto1/crapto1.c index 9398a1f3..fe6eb0f6 100644 --- a/common/crapto1/crapto1.c +++ b/common/crapto1/crapto1.c @@ -425,6 +425,17 @@ int nonce_distance(uint32_t from, uint32_t to) } return (65535 + dist[to >> 16] - dist[from >> 16]) % 65535; } +/** validate_prng_nonce + * Determine if nonce is deterministic. ie: Suspectable to Darkside attack. + * returns + * true = weak prng + * false = hardend prng + */ +bool validate_prng_nonce(uint32_t nonce) { + // init prng table: + nonce_distance(nonce, nonce); + return ((65535 - dist[nonce >> 16] + dist[nonce & 0xffff]) % 65535) == 16; +} static uint32_t fastfwd[2][8] = { -- 2.39.2