]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - tools/nonce2key/nonce2key.c
chg: cleaning out timing.
[proxmark3-svn] / tools / nonce2key / nonce2key.c
index b08c5cd2774ff79d2d7dc002149e18e595234bfb..fffa5a2ac1a01a64f2bf821f14eef09654381eb9 100644 (file)
@@ -1,16 +1,13 @@
 #include "crapto1.h"
 #define __STDC_FORMAT_MACROS
 #include <inttypes.h>
-#define llx PRIx64
 #include <stdio.h>
-#include <time.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;
-       byte_t bt, i, ks3x[8], par[8][8];
-       uint64_t key, key_recovered;
+       uint32_t pos, uid, nt, nr, rr, nr_diff;
+       uint8_t bt, i, ks3x[8], par[8][8];
+       uint64_t key_recovered;
        uint64_t par_info;
        uint64_t ks_info;
        nr = rr = 0;
@@ -19,15 +16,15 @@ int main(const int argc, const char* argv[]) {
                printf("\nsyntax: %s <uid> <nt> <par> <ks>\n\n",argv[0]);
                return 1;
        }
-       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[1],"%08x", &uid);
+       sscanf(argv[2],"%08x", &nt);
+       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++ ) {
                ks3x[7-pos] = (ks_info >> (pos*8)) & 0x0f;
@@ -50,16 +47,11 @@ int main(const int argc, const char* argv[]) {
                printf("%01x|\n", par[i][7]);
        }
        printf("+----+--------+---+-----+---------------+\n");
-
-       clock_t t1 = clock();
-  
        state = lfsr_common_prefix(nr,rr,ks3x,par);
        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);
-  
-       t1 = clock() - t1;
-       if ( t1 > 0 ) printf("Time in nonce2key: %.0f ticks \n", (float)t1);
        return 0;
 }
Impressum, Datenschutz