]> cvs.zerfleddert.de Git - proxmark3-svn/blobdiff - tools/nonce2key/nonce2key.c
fix: crapto3.3 sometimes crashing with hf mf mifare on Fudan clones (no par, all...
[proxmark3-svn] / tools / nonce2key / nonce2key.c
index 32ea0a68dd454d2a77a335b93c31f2aca9d2ea0e..9cee06d67767c47652716f5f40ecb1cb737d41d3 100644 (file)
@@ -1,15 +1,13 @@
-#include "crapto1.h"
-#define __STDC_FORMAT_MACROS
+#include "crapto1/crapto1.h"
 #include <inttypes.h>
-#define llx PRIx64
 #include <stdio.h>
 typedef unsigned char byte_t;
 
 int main(const int argc, const char* argv[]) {
   struct Crypto1State *state;
-  uint32_t pos, uid, nt, nr, rr, nr_diff, ks1, ks2;
+  uint32_t pos, uid, nt, nr, rr, nr_diff;
   byte_t bt, i, ks3x[8], par[8][8];
-  uint64_t key, key_recovered;
+  uint64_t key_recovered;
   uint64_t par_info;
   uint64_t ks_info;
   nr = rr = 0;
@@ -20,13 +18,13 @@ int main(const int argc, const char* argv[]) {
   }
   sscanf(argv[1],"%08x",&uid);
   sscanf(argv[2],"%08x",&nt);
-  sscanf(argv[3],"%016"llx,&par_info);
-  sscanf(argv[4],"%016"llx,&ks_info);
+  sscanf(argv[3],"%016" SCNx64,&par_info);
+  sscanf(argv[4],"%016" SCNx64,&ks_info);
   
   // Reset the last three significant bits of the reader nonce
   nr &= 0xffffff1f;
   
-  printf("\nuid(%08x) nt(%08x) par(%016"llx") ks(%016"llx")\n\n",uid,nt,par_info,ks_info);
+  printf("\nuid(%08x) nt(%08x) par(%016" PRIx64 ") ks(%016" PRIx64 ")\n\n",uid,nt,par_info,ks_info);
 
   for (pos=0; pos<8; pos++)
   {
@@ -49,10 +47,10 @@ int main(const int argc, const char* argv[]) {
     printf("%01x|\n",par[i][7]);
   }
   
-  state = lfsr_common_prefix(nr,rr,ks3x,par);
+  state = lfsr_common_prefix(nr,rr,ks3x,par,0);
   lfsr_rollback_word(state,uid^nt,0);
   crypto1_get_lfsr(state,&key_recovered);
-  printf("\nkey recovered: %012"llx"\n\n",key_recovered);
+  printf("\nkey recovered: %012" PRIx64 "\n\n",key_recovered);
   crypto1_destroy(state);
   
   return 0;
Impressum, Datenschutz