]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - armsrc/lfsampling.c
FIX: @pwpiwi 's fixes for darkside / nested attack about the NACK/PRNG bugs.
[proxmark3-svn] / armsrc / lfsampling.c
index 7af065ea141bb2f889c20de389000f93a8716094..120c0801de6ccecc3e7e558e10c078e3b187c980 100644 (file)
@@ -12,7 +12,7 @@
 #include "string.h"
 
 #include "lfsampling.h"
 #include "string.h"
 
 #include "lfsampling.h"
-#include "cipherutils.h"
+
 sample_config config = { 1, 8, 1, 95, 0 } ;
 
 void printConfig()
 sample_config config = { 1, 8, 1, 95, 0 } ;
 
 void printConfig()
@@ -55,20 +55,19 @@ sample_config* getSamplingConfig()
 {
        return &config;
 }
 {
        return &config;
 }
-/*
+
 typedef struct {
        uint8_t * buffer;
        uint32_t numbits;
        uint32_t position;
 } BitstreamOut;
 
 typedef struct {
        uint8_t * buffer;
        uint32_t numbits;
        uint32_t position;
 } BitstreamOut;
 
-*/
 /**
  * @brief Pushes bit onto the stream
  * @param stream
  * @param bit
  */
 /**
  * @brief Pushes bit onto the stream
  * @param stream
  * @param bit
  */
-/*void pushBit( BitstreamOut* stream, uint8_t bit)
+void pushBit( BitstreamOut* stream, uint8_t bit)
 {
        int bytepos = stream->position >> 3; // divide by 8
        int bitpos = stream->position & 7;
 {
        int bytepos = stream->position >> 3; // divide by 8
        int bitpos = stream->position & 7;
@@ -76,7 +75,7 @@ typedef struct {
        stream->position++;
        stream->numbits++;
 }
        stream->position++;
        stream->numbits++;
 }
-*/
+
 /**
 * Setup the FPGA to listen for samples. This method downloads the FPGA bitstream
 * if not already loaded, sets divisor and starts up the antenna.
 /**
 * Setup the FPGA to listen for samples. This method downloads the FPGA bitstream
 * if not already loaded, sets divisor and starts up the antenna.
@@ -225,21 +224,21 @@ uint32_t DoAcquisition_config( bool silent)
                                  ,silent);
 }
 
                                  ,silent);
 }
 
-uint32_t ReadLF(bool activeField)
+uint32_t ReadLF(bool activeField, bool silent)
 {
 {
-       printConfig();
+       if (!silent) printConfig();
        LFSetupFPGAForADC(config.divisor, activeField);
        // Now call the acquisition routine
        LFSetupFPGAForADC(config.divisor, activeField);
        // Now call the acquisition routine
-       return DoAcquisition_config(false);
+       return DoAcquisition_config(silent);
 }
 
 /**
 * Initializes the FPGA for reader-mode (field on), and acquires the samples.
 * @return number of bits sampled
 **/
 }
 
 /**
 * Initializes the FPGA for reader-mode (field on), and acquires the samples.
 * @return number of bits sampled
 **/
-uint32_t SampleLF()
+uint32_t SampleLF(bool printCfg)
 {
 {
-       return ReadLF(true);
+       return ReadLF(true, printCfg);
 }
 /**
 * Initializes the FPGA for snoop-mode (field off), and acquires the samples.
 }
 /**
 * Initializes the FPGA for snoop-mode (field off), and acquires the samples.
@@ -248,5 +247,5 @@ uint32_t SampleLF()
 
 uint32_t SnoopLF()
 {
 
 uint32_t SnoopLF()
 {
-       return ReadLF(false);
+       return ReadLF(false, true);
 }
 }
Impressum, Datenschutz