Added to hf emv commands: gpo, readrec, genac, challenge, intauth (#671)

* move `hf emv search` to argtable
* `hf emv select`
* delete old help
* `hf emv pse` and sketch for the other commands
* `hf emv gpo` 
* `hf emv readrec`
* `hf emv challenge` works
* added `intauth` and `genac` commands.
* added CDA transaction to `hf emv genac`
* add terminal decision to `genac`
* added changelog
This commit is contained in:
Oleg Moiseenko 2018-09-28 19:03:21 +03:00 committed by pwpiwi
commit f23565c38b
4 changed files with 455 additions and 297 deletions

View file

@ -148,6 +148,10 @@ void CLIParserFree() {
// convertors
int CLIParamHexToBuf(struct arg_str *argstr, uint8_t *data, int maxdatalen, int *datalen) {
*datalen = 0;
if (!strlen(argstr->sval[0]))
return 0;
switch(param_gethex_to_eol(argstr->sval[0], 0, data, maxdatalen, datalen)) {
case 1:
printf("Parameter error: Invalid HEX value.\n");

View file

@ -19,6 +19,7 @@
#define arg_get_lit(n)(((struct arg_lit*)argtable[n])->count)
#define arg_get_int(n)(((struct arg_int*)argtable[n])->ival[0])
#define arg_get_str(n)((struct arg_str*)argtable[n])
#define arg_get_str_len(n)(strlen(((struct arg_str*)argtable[n])->sval[0]))
#define CLIExecWithReturn(cmd, atbl, ifempty) if (CLIParserParseString(cmd, atbl, arg_getsize(atbl), ifempty)){CLIParserFree();return 0;}
#define CLIGetStrBLessWithReturn(paramnum, data, datalen, delta) if (CLIParamHexToBuf(arg_get_str(paramnum), data, sizeof(data) - (delta), datalen)) {CLIParserFree();return 1;}