- renamed 4x50_write_password to 4x50_writepwd
- added check regarding valid data in emulation memory for 4x50_esave
- minor changes
- introduced new cliparser
Both `hf mfdes auth` and `hf mfdes chk` now support Key Diversification for
AN10922 and as special treat, Gallagher issued cards.
For `hf mfdes auth`:
```
-d, --kdf <kdf> Key Derivation Function (KDF) (0=None, 1=AN10922, 2=Gallagher)
-i, --kdfi <kdfi> KDF input (HEX 1-31 bytes)
```
And for `hf mfdes chk`:
```
-f, --kdf <kdf> Key Derivation Function (KDF) (0=None, 1=AN10922, Gallagher)
-i, --kdfi <kdfi> KDF input (HEX 1-31 bytes)
```
Examples:
- `hf mfdes auth -a 2081f4 -m 3 -t 4 -d 2 -n 2 -k 00112233445566778899aabbccddeeff`
Will diversify the key for key `2` on AID `2081F4` for Gallagher issued cards
- `hf mfdes chk -f 1 -i 00112233 -d mfdes_default_keys`
Will read in all the default keys from the dictionary, and diversify them
using AN10922 with the input data `00112233`
- `hf mfdes chk -f 2 -d mfdes_default_keys`
Will read in all the default keys from the dictionary, and diversify them
using AN10922 but with input data generated from the card's UID, AID and
key number.
This adds two new options to `hf mfdes auth`
```
-d, --kdf <kdf> Key Derivation Function (KDF) (0=None, 1=AN10922)
-i, --kdfi <kdfi> KDF input (HEX 1-31 bytes)
```
By specifying `-d 1` and some kdf data `-i 00112233`, the key will be
diversified using AN10922.
Lists of most common English words and most common passwords along with two lists of ASCII numbers to hex and an additional iClass list that is based off patterns seen in other default password lists.