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