version 1.1, 2001/06/27 19:41:45 |
version 1.2, 2001/06/28 21:29:44 |
|
|
{ "help", help }, |
{ "help", help }, |
{ "?", help }, |
{ "?", help }, |
{ "reset", reset }, |
{ "reset", reset }, |
{ "r", reset }, |
|
{ "open", reset }, |
{ "open", reset }, |
{ "close", dclose }, |
{ "close", dclose }, |
{ "quit", quit }, |
{ "quit", quit }, |
{ "q", quit }, |
|
|
|
/* 7816-4 commands */ |
/* 7816-4 commands */ |
{ "apdu", apdu }, |
{ "apdu", apdu }, |
{ "a", apdu }, |
|
{ "fid", selfid }, |
{ "fid", selfid }, |
{ "f", selfid }, |
|
{ "class", class }, |
{ "class", class }, |
{ "read", dread }, |
{ "read", dread }, |
{ "write", dwrite }, |
{ "write", dwrite }, |
|
|
{ |
{ |
int i; |
int i; |
|
|
|
if (ac < 1) |
|
return 0; |
|
|
for (i = 0; dispatch_table[i].cmd; i++) { |
for (i = 0; dispatch_table[i].cmd; i++) { |
if (!strcmp(av[0], dispatch_table[i].cmd)) { |
if (!strncmp(av[0], dispatch_table[i].cmd, strlen(av[0]))) { |
(dispatch_table[i].action) (ac, av); |
(dispatch_table[i].action) (ac, av); |
break; |
break; |
} |
} |
|
|
int selfid(int ac, char *av[]) |
int selfid(int ac, char *av[]) |
{ |
{ |
unsigned char fid[2]; |
unsigned char fid[2]; |
|
int r1, r2; |
|
|
if (ac != 2) { |
if (ac != 2) { |
printf("usage: f fid\n"); |
printf("usage: f fid\n"); |
|
|
reset(0, NULL); |
reset(0, NULL); |
|
|
sectok_parse_fname(av[1], fid); |
sectok_parse_fname(av[1], fid); |
sectok_selectfile(fd, cla, fid, 1); |
if (sectok_selectfile(fd, cla, fid, &r1, &r2) < 0) { |
|
printf("selectfile: %s\n", get_r1r2s(r1, r2)); |
|
return -1; |
|
} |
|
|
return 0; |
return 0; |
} |
} |