auth: allow specifying PIN on commandline (-p/--auth-pin)
Signed-off-by: Patrick McHardy <kaber@trash.net>
This commit is contained in:
parent
ede151676c
commit
79004e4687
|
@ -14,6 +14,7 @@ enum {
|
|||
DECTMON_DUMP_NWK = 0x4,
|
||||
};
|
||||
|
||||
extern const char *auth_pin;
|
||||
extern uint32_t dumpopts;
|
||||
|
||||
struct dect_ops;
|
||||
|
|
|
@ -29,13 +29,14 @@ static struct dect_ops ops = {
|
|||
.raw_ops = &raw_ops,
|
||||
};
|
||||
|
||||
#define OPTSTRING "c:m:d:n:h"
|
||||
#define OPTSTRING "c:m:d:n:p:h"
|
||||
|
||||
enum {
|
||||
OPT_CLUSTER = 'c',
|
||||
OPT_DUMP_MAC = 'm',
|
||||
OPT_DUMP_DLC = 'd',
|
||||
OPT_DUMP_NWK = 'n',
|
||||
OPT_AUTH_PIN = 'p',
|
||||
OPT_HELP = 'h',
|
||||
};
|
||||
|
||||
|
@ -44,6 +45,7 @@ static const struct option dectmon_opts[] = {
|
|||
{ .name = "dump-mac", .has_arg = true, .flag = 0, .val = OPT_DUMP_MAC, },
|
||||
{ .name = "dump-dlc", .has_arg = true, .flag = 0, .val = OPT_DUMP_DLC, },
|
||||
{ .name = "dump-nwk", .has_arg = true, .flag = 0, .val = OPT_DUMP_NWK, },
|
||||
{ .name = "auth-pin", .has_arg = true, .flag = 0, .val = OPT_AUTH_PIN, },
|
||||
{ .name = "help", .has_arg = false, .flag = 0, .val = OPT_HELP, },
|
||||
{ },
|
||||
};
|
||||
|
@ -60,6 +62,7 @@ static uint32_t opt_yesno(const char *arg, uint32_t opts, uint32_t flag)
|
|||
return opts;
|
||||
}
|
||||
|
||||
const char *auth_pin = "0000";
|
||||
uint32_t dumpopts = DECTMON_DUMP_NWK;
|
||||
|
||||
int main(int argc, char **argv)
|
||||
|
@ -86,6 +89,9 @@ int main(int argc, char **argv)
|
|||
case OPT_DUMP_NWK:
|
||||
dumpopts = opt_yesno(optarg, dumpopts, DECTMON_DUMP_NWK);
|
||||
break;
|
||||
case OPT_AUTH_PIN:
|
||||
auth_pin = optarg;
|
||||
break;
|
||||
case OPT_HELP:
|
||||
printf("%s [ options ]\n"
|
||||
"\n"
|
||||
|
@ -93,6 +99,7 @@ int main(int argc, char **argv)
|
|||
" -m/--dump-mac=yes/no\n"
|
||||
" -d/--dump-dlc=yes/no\n"
|
||||
" -n/--dump-nwk=yes/no\n"
|
||||
" -p/--auth-pin=PIN\n"
|
||||
" -h/--help\n",
|
||||
argv[0]);
|
||||
|
||||
|
|
|
@ -158,8 +158,6 @@ static struct dect_pt *dect_pt_init(struct dect_ie_portable_identity *portable_i
|
|||
list_add_tail(&pt->list, &dect_pt_list);
|
||||
|
||||
dect_pt_read_uak(pt);
|
||||
printf("new PT\n");
|
||||
|
||||
return pt;
|
||||
}
|
||||
|
||||
|
@ -169,8 +167,8 @@ static void dect_pt_track_key_allocation(struct dect_pt *pt, uint8_t msgtype,
|
|||
{
|
||||
uint8_t k[DECT_AUTH_KEY_LEN], ks[DECT_AUTH_KEY_LEN];
|
||||
uint8_t dck[DECT_CIPHER_KEY_LEN];
|
||||
uint8_t ac[DECT_AUTH_CODE_LEN];
|
||||
uint32_t res1;
|
||||
uint8_t ac[4];
|
||||
|
||||
switch (msgtype) {
|
||||
case DECT_MM_KEY_ALLOCATE:
|
||||
|
@ -209,7 +207,7 @@ static void dect_pt_track_key_allocation(struct dect_pt *pt, uint8_t msgtype,
|
|||
pt->res == NULL)
|
||||
return;
|
||||
|
||||
dect_pin_to_ac("0000", ac, sizeof(ac));
|
||||
dect_pin_to_ac(auth_pin, ac, sizeof(ac));
|
||||
dect_auth_b1(ac, sizeof(ac), k);
|
||||
|
||||
dect_auth_a11(k, pt->rs->value, ks);
|
||||
|
|
Reference in New Issue