+\r
+int tryDecryptWord(uint32_t nt, uint32_t ar_enc, uint32_t at_enc, uint8_t *data, int len){\r
+ /*\r
+ uint32_t nt; // tag challenge\r
+ uint32_t nr_enc; // encrypted reader challenge\r
+ uint32_t ar_enc; // encrypted reader response\r
+ uint32_t at_enc; // encrypted tag response\r
+ */\r
+ struct Crypto1State *pcs = NULL;\r
+ \r
+ ks2 = ar_enc ^ prng_successor(nt, 64);\r
+ ks3 = at_enc ^ prng_successor(nt, 96);\r
+ \r
+ PrintAndLog("Decrypting data with:");\r
+ PrintAndLog(" nt: %08x",nt);\r
+ PrintAndLog(" ar_enc: %08x",ar_enc);\r
+ PrintAndLog(" at_enc: %08x",at_enc);\r
+ PrintAndLog("\nEncrypted data: [%s]", sprint_hex(data,len) );\r
+\r
+ pcs = lfsr_recovery64(ks2, ks3);\r
+ mf_crypto1_decrypt(pcs, data, len, FALSE);\r
+ PrintAndLog("Decrypted data: [%s]", sprint_hex(data,len) );\r
+ crypto1_destroy(pcs);\r
+ return 0;\r
+}\r