X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/735136e6a33e4851127b45d373ea58f1710bd1f4..6f36848f9ecb5f6a1131a9bf4def5b3e2e05a415:/client/cmdlfviking.c?ds=inline diff --git a/client/cmdlfviking.c b/client/cmdlfviking.c index 5c0e590c..fa073df1 100644 --- a/client/cmdlfviking.c +++ b/client/cmdlfviking.c @@ -47,8 +47,8 @@ int usage_lf_viking_sim(void) { uint64_t getVikingBits(uint32_t id) { //calc checksum - uint8_t checksum = (id>>24) ^ ((id>>16) & 0xFF) ^ ((id>>8) & 0xFF) ^ (id & 0xFF) ^ 0xF2 ^ 0xA8; - return ((uint64_t)0xF2 << 56) | (id << 8) | checksum; + uint8_t checksum = ((id>>24) & 0xFF) ^ ((id>>16) & 0xFF) ^ ((id>>8) & 0xFF) ^ (id & 0xFF) ^ 0xF2 ^ 0xA8; + return ((uint64_t)0xF2 << 56) | ((uint64_t)id << 8) | checksum; } //by marshmellow //see ASKDemod for what args are accepted @@ -74,8 +74,8 @@ int CmdVikingClone(const char *Cmd) { Q5 = true; rawID = getVikingBits(id); - - UsbCommand c = {CMD_VIKING_CLONE_TAG,{rawID >> 32, rawID & 0xFFFF, Q5}}; + PrintAndLog("Cloning - ID: %08X, Raw: %08X%08X",id,(uint32_t)(rawID >> 32),(uint32_t) (rawID & 0xFFFFFFFF)); + UsbCommand c = {CMD_VIKING_CLONE_TAG,{rawID >> 32, rawID & 0xFFFFFFFF, Q5}}; clearCommandBuffer(); SendCommand(&c); //check for ACK