- // Decrypting communication using keystream if presented
- if (argc > 6 ) {
- printf("\nDecrypted communication:\n");
- uint8_t ks4;
- int rollb = 0;
- for (int i = 0; i < encc; i++) {
- printf("{dec%d}: ", i);
- for (int i2 = 0; i2 < enclen[i]; i2++) {
- ks4 = crypto1_byte(revstate, 0, 0);
- printf("%02x", ks4 ^ enc[i][i2]);
- rollb += 1;
- }
- printf("\n");
- }
- for (int i = 0; i < rollb; i++) {
- lfsr_rollback_byte(revstate, 0, 0);
- }
- }
-
- lfsr_rollback_word(revstate, 0, 0);
- lfsr_rollback_word(revstate, 0, 0);
- lfsr_rollback_word(revstate, nr_enc, 1);
- lfsr_rollback_word(revstate, uid ^ nt, 0);
- crypto1_get_lfsr(revstate, &key);
- printf("\nFound Key: [%012"llx"]\n\n",key);
- crypto1_destroy(revstate);
+ lfsr_rollback_word(revstate, 0, 0);
+ lfsr_rollback_word(revstate, 0, 0);
+ lfsr_rollback_word(revstate, nr_enc, 1);
+ lfsr_rollback_word(revstate, uid ^ nt, 0);
+ crypto1_get_lfsr(revstate, &key);
+ crypto1_destroy(revstate);