X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/b62b5e2527e36cdbfda2e3d2a7ce8a46e45969e1..2589bb2c2187559dfd9e2acbccc16962198bf569:/common/crapto1/crapto1.c?ds=inline

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] = {