X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/a5d824656811693c9f31cf41766e419b2dd799f9..d115f9a4542b2d24a7e8c7741dafaced0a64c9da:/common/lfdemod.c diff --git a/common/lfdemod.c b/common/lfdemod.c index ff80b8b3..8bbe5beb 100644 --- a/common/lfdemod.c +++ b/common/lfdemod.c @@ -81,12 +81,9 @@ size_t removeParity(uint8_t *BitStream, size_t startIdx, uint8_t pLen, uint8_t p j--; // overwrite parity with next data // if parity fails then return 0 switch (pType) { - case 3: if (BitStream[j]==1) return 0; break; //should be 0 spacer bit - case 2: if (BitStream[j]==0) return 0; break; //should be 1 spacer bit - default: //test parity - if (parityTest(parityWd, pLen, pType) == 0) - return 0; - break; + case 3: if (BitStream[j]==1) { return 0; } break; //should be 0 spacer bit + case 2: if (BitStream[j]==0) { return 0; } break; //should be 1 spacer bit + default: if (parityTest(parityWd, pLen, pType) == 0) { return 0; } break; //test parity } bitCnt+=(pLen-1); parityWd = 0; @@ -172,13 +169,13 @@ uint8_t preambleSearch(uint8_t *BitStream, uint8_t *preamble, size_t pLen, size_ //by marshmellow //takes 1s and 0s and searches for EM410x format - output EM ID -uint8_t Em410xDecode(uint8_t *BitStream, size_t *size, size_t *startIdx, uint32_t *hi, uint64_t *lo) +int Em410xDecode(uint8_t *BitStream, size_t *size, size_t *startIdx, uint32_t *hi, uint64_t *lo) { //no arguments needed - built this way in case we want this to be a direct call from "data " cmds in the future // otherwise could be a void with no arguments //set defaults uint32_t i = 0; - if (BitStream[1]>1) return 0; //allow only 1s and 0s + if (BitStream[1]>1) return -1; //allow only 1s and 0s // 111111111 bit pattern represent start of frame // include 0 in front to help get start pos @@ -189,14 +186,15 @@ uint8_t Em410xDecode(uint8_t *BitStream, size_t *size, size_t *startIdx, uint32_ uint8_t FmtLen = 10; *startIdx = 0; errChk = preambleSearch(BitStream, preamble, sizeof(preamble), size, startIdx); - if (errChk == 0 || *size < 64) return 0; + if (errChk == 0 ) return -4; + if (*size < 64) return -3; if (*size > 64) FmtLen = 22; *startIdx += 1; //get rid of 0 from preamble idx = *startIdx + 9; for (i=0; i> 63); @@ -587,7 +585,7 @@ int HIDdemodFSK(uint8_t *dest, size_t *size, uint32_t *hi2, uint32_t *hi, uint32 { if (justNoise(dest, *size)) return -1; - size_t numStart=0, size2=*size, startIdx=0; + size_t numStart=0, size2 = *size, startIdx=0; // FSK demodulator *size = fskdemod(dest, size2,50,1,10,8); //fsk2a if (*size < 96*2) return -2; @@ -619,7 +617,7 @@ int ParadoxdemodFSK(uint8_t *dest, size_t *size, uint32_t *hi2, uint32_t *hi, ui { if (justNoise(dest, *size)) return -1; - size_t numStart=0, size2=*size, startIdx=0; + size_t numStart=0, size2 = *size, startIdx=0; // FSK demodulator *size = fskdemod(dest, size2,50,1,10,8); //fsk2a if (*size < 96) return -2;