]> err.no Git - yubikey-personalization/blob - ykpers_lcl.c
Merge tag 'v1.15.1'
[yubikey-personalization] / ykpers_lcl.c
1 /* -*- mode:C; c-file-style: "bsd" -*- */
2 /*
3  * Copyright (c) 2013 Yubico AB
4  * All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions are
8  * met:
9  *
10  *     * Redistributions of source code must retain the above copyright
11  *       notice, this list of conditions and the following disclaimer.
12  *
13  *     * Redistributions in binary form must reproduce the above
14  *       copyright notice, this list of conditions and the following
15  *       disclaimer in the documentation and/or other materials provided
16  *       with the distribution.
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29  */
30
31 #include "ykpers_lcl.h"
32
33 struct map_st _ticket_flags_map[] = {
34         { TKTFLAG_TAB_FIRST,    "TAB_FIRST",    "tabFirst",     capability_has_ticket_mods,     MODE_OUTPUT,    ykp_set_tktflag_TAB_FIRST },
35         { TKTFLAG_APPEND_TAB1,  "APPEND_TAB1",  "tabBetween",   capability_has_ticket_mods,     MODE_OUTPUT,    ykp_set_tktflag_APPEND_TAB1 },
36         { TKTFLAG_APPEND_TAB2,  "APPEND_TAB2",  "tabLast",      capability_has_ticket_mods,     MODE_OUTPUT,    ykp_set_tktflag_APPEND_TAB2 },
37         { TKTFLAG_APPEND_DELAY1,"APPEND_DELAY1","appendDelay1", capability_has_ticket_mods,     MODE_OUTPUT,    ykp_set_tktflag_APPEND_DELAY1 },
38         { TKTFLAG_APPEND_DELAY2,"APPEND_DELAY2","appendDelay2", capability_has_ticket_mods,     MODE_OUTPUT,    ykp_set_tktflag_APPEND_DELAY2 },
39         { TKTFLAG_APPEND_CR,    "APPEND_CR",    "appendCR",     capability_has_ticket_mods,     MODE_OUTPUT,    ykp_set_tktflag_APPEND_CR },
40         { TKTFLAG_PROTECT_CFG2, "PROTECT_CFG2", "protectSecond",capability_has_slot_two,        MODE_ALL,       ykp_set_tktflag_PROTECT_CFG2 },
41         { TKTFLAG_OATH_HOTP,    "OATH_HOTP",    0,              capability_has_oath,            MODE_OATH_HOTP, ykp_set_tktflag_OATH_HOTP },
42         { TKTFLAG_CHAL_RESP,    "CHAL_RESP",    0,              capability_has_chal_resp,       MODE_CHAL_RESP, ykp_set_tktflag_CHAL_RESP },
43         { 0, 0, 0, 0, 0, 0 }
44 };
45
46 struct map_st _config_flags_map[] = {
47         { CFGFLAG_CHAL_YUBICO,          "CHAL_YUBICO",          0,              capability_has_chal_resp,       MODE_CHAL_YUBICO,       ykp_set_cfgflag_CHAL_YUBICO },
48         { CFGFLAG_CHAL_HMAC,            "CHAL_HMAC",            0,              capability_has_chal_resp,       MODE_CHAL_HMAC,         ykp_set_cfgflag_CHAL_HMAC },
49         { CFGFLAG_HMAC_LT64,            "HMAC_LT64",            "hmacLt64",     capability_has_chal_resp,       MODE_CHAL_HMAC,         ykp_set_cfgflag_HMAC_LT64 },
50         { CFGFLAG_CHAL_BTN_TRIG,        "CHAL_BTN_TRIG",        "buttonReqd",   capability_has_chal_resp,       MODE_CHAL_RESP,         ykp_set_cfgflag_CHAL_BTN_TRIG },
51         { CFGFLAG_OATH_HOTP8,           "OATH_HOTP8",           0,              capability_has_oath,            MODE_OATH_HOTP,         ykp_set_cfgflag_OATH_HOTP8 },
52         { CFGFLAG_OATH_FIXED_MODHEX1,   "OATH_FIXED_MODHEX1",   0,              capability_has_oath,            MODE_OATH_HOTP,         ykp_set_cfgflag_OATH_FIXED_MODHEX1 },
53         { CFGFLAG_OATH_FIXED_MODHEX2,   "OATH_FIXED_MODHEX2",   0,              capability_has_oath,            MODE_OATH_HOTP,         ykp_set_cfgflag_OATH_FIXED_MODHEX2 },
54         { CFGFLAG_OATH_FIXED_MODHEX,    "OATH_FIXED_MODHEX",    0,              capability_has_oath,            MODE_OATH_HOTP,         ykp_set_cfgflag_OATH_FIXED_MODHEX },
55         { CFGFLAG_SEND_REF,             "SEND_REF",             "sendRef",      capability_has_ticket_mods,     MODE_OUTPUT,            ykp_set_cfgflag_SEND_REF },
56         { CFGFLAG_TICKET_FIRST,         "TICKET_FIRST",         0,              capability_has_ticket_first,    MODE_OUTPUT,            ykp_set_cfgflag_TICKET_FIRST },
57         { CFGFLAG_PACING_10MS,          "PACKING_10MS",         "pacing10ms",   capability_has_ticket_mods,     MODE_OUTPUT,            ykp_set_cfgflag_PACING_10MS },
58         { CFGFLAG_PACING_20MS,          "PACING_20MS",          "pacing20ms",   capability_has_ticket_mods,     MODE_OUTPUT,            ykp_set_cfgflag_PACING_20MS },
59         { CFGFLAG_ALLOW_HIDTRIG,        "ALLOW_HIDTRIG",        0,              capability_has_hidtrig,         MODE_OUTPUT,            ykp_set_cfgflag_ALLOW_HIDTRIG },
60         { CFGFLAG_STATIC_TICKET,        "STATIC_TICKET",        "staticTicket", capability_has_static,          MODE_STATIC_TICKET,     ykp_set_cfgflag_STATIC_TICKET },
61         { CFGFLAG_SHORT_TICKET,         "SHORT_TICKET",         "shortTicket",  capability_has_static_extras,   MODE_OUTPUT,            ykp_set_cfgflag_SHORT_TICKET },
62         { CFGFLAG_STRONG_PW1,           "STRONG_PW1",           "strongPw1",    capability_has_static_extras,   MODE_STATIC_TICKET,     ykp_set_cfgflag_STRONG_PW1 },
63         { CFGFLAG_STRONG_PW2,           "STRONG_PW2",           "strongPw2",    capability_has_static_extras,   MODE_STATIC_TICKET,     ykp_set_cfgflag_STRONG_PW2 },
64         { CFGFLAG_MAN_UPDATE,           "MAN_UPDATE",           "manUpdate",    capability_has_static_extras,   MODE_STATIC_TICKET,     ykp_set_cfgflag_MAN_UPDATE },
65         { 0, 0, 0, 0, 0, 0 }
66 };
67
68 struct map_st _extended_flags_map[] = {
69         { EXTFLAG_SERIAL_BTN_VISIBLE,   "SERIAL_BTN_VISIBLE",   "serialBtnVisible",     capability_has_serial,          MODE_ALL,       ykp_set_extflag_SERIAL_BTN_VISIBLE },
70         { EXTFLAG_SERIAL_USB_VISIBLE,   "SERIAL_USB_VISIBLE",   "serialUsbVisible",     capability_has_serial,          MODE_ALL,       ykp_set_extflag_SERIAL_USB_VISIBLE },
71         { EXTFLAG_SERIAL_API_VISIBLE,   "SERIAL_API_VISIBLE",   "serialApiVisible",     capability_has_serial_api,      MODE_ALL,       ykp_set_extflag_SERIAL_API_VISIBLE },
72         { EXTFLAG_USE_NUMERIC_KEYPAD,   "USE_NUMERIC_KEYPAD",   "useNumericKeypad",     capability_has_numeric,         MODE_ALL,       ykp_set_extflag_USE_NUMERIC_KEYPAD },
73         { EXTFLAG_FAST_TRIG,            "FAST_TRIG",            "fastTrig",             capability_has_fast,            MODE_ALL,       ykp_set_extflag_FAST_TRIG },
74         { EXTFLAG_ALLOW_UPDATE,         "ALLOW_UPDATE",         "allowUpdate",          capability_has_update,          MODE_ALL,       ykp_set_extflag_ALLOW_UPDATE },
75         { EXTFLAG_DORMANT,              "DORMANT",              "dormant",              capability_has_dormant,         MODE_ALL,       ykp_set_extflag_DORMANT },
76         { EXTFLAG_LED_INV,              "LED_INV",              "ledInverted",          capability_has_led_inv,         MODE_ALL,       ykp_set_extflag_LED_INV },
77         { 0, 0, 0, 0, 0, 0 }
78 };
79
80
81 struct map_st _modes_map[] = {
82         { MODE_OATH_HOTP,       0,      "oathHOTP",     0, 0, 0 },
83         { MODE_CHAL_HMAC,       0,      "hmacCR",       0, 0, 0 },
84         { MODE_STATIC_TICKET,   0,      "staticTicket", 0, 0, 0 },
85         { MODE_CHAL_YUBICO,     0,      "yubicoCR",     0, 0, 0 },
86         { MODE_OTP_YUBICO,      0,      "yubicoOTP",    0, 0, 0 },
87         { 0, 0, 0, 0, 0, 0 }
88 };