]> err.no Git - yubikey-personalization/commitdiff
args stuff for setting ndef uri
authorKlas Lindfors <klas@yubico.com>
Wed, 11 Apr 2012 08:41:51 +0000 (10:41 +0200)
committerKlas Lindfors <klas@yubico.com>
Wed, 11 Apr 2012 08:41:51 +0000 (10:41 +0200)
ykpers-args.c

index f2053d02c08a6dea04114a32db66efdbce64f524..5e8f37317afc4a01f897bae814fd7cd32a60ddbf 100644 (file)
@@ -65,6 +65,8 @@ const char *usage =
 "          char hex value (not modhex)\n"
 "-cXXX..   A 12 char hex value (not modhex) to use as access code for programming\n"
 "          (this does NOT SET the access code, that's done with -oaccess=)\n"
+"-nXXX..   The url to prepend to the OTP when sending OTP over NFC as ndef-type2\n"
+"          smart-tag.  Only available with the YubiKey NEO.\n"
 "-oOPTION  change configuration option.  Possible OPTION arguments are:\n"
 "          salt=ssssssss       Salt to be used when deriving key from a\n"
 "                              password.  If none is given, a unique random\n"
@@ -138,7 +140,7 @@ const char *usage =
 "-v        verbose\n"
 "-h        help (this text)\n"
 ;
-const char *optstring = "u12xa:c:hi:o:s:vy";
+const char *optstring = "u12xa:c:n:hi:o:s:vy";
 
 static const YK_CONFIG default_config1 = {
         { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* fixed */
@@ -247,7 +249,7 @@ int args_to_config(int argc, char **argv, YKP_CONFIG *cfg,
                   bool *autocommit, char *salt,
                   YK_STATUS *st, bool *verbose,
                   unsigned char *access_code, bool *use_access_code,
-                  bool *aesviahash,
+                  bool *aesviahash, char *ndef,
                   int *exit_code)
 {
        int c;
@@ -258,6 +260,7 @@ int args_to_config(int argc, char **argv, YKP_CONFIG *cfg,
        bool option_seen = false;
        bool swap_seen = false;
        bool update_seen = false;
+       bool ndef_seen = false;
 
        ykp_configure_version(cfg, st);
 
@@ -397,6 +400,14 @@ int args_to_config(int argc, char **argv, YKP_CONFIG *cfg,
                        *use_access_code = true;
                        break;
                }
+               case 'n':
+                         if (slot_chosen || swap_seen || update_seen) {
+                               fprintf(stderr, "Ndef (-n) must be used on it's own.\n");
+                               *exit_code = 1;
+                               return 0;
+                         }
+                         ndef = optarg;
+                         ndef_seen = true;
                case 'o':
                        if (strncmp(optarg, "salt=", 5) == 0)
                                salt = strdup(optarg+5);