From: Richard Levitte Date: Mon, 22 Sep 2008 14:21:37 +0000 (+0000) Subject: Move common/ykdef.h to yubikey-core X-Git-Tag: yubikey-personalisation_1.3.5-1~4^2~214 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=36f17f045027cdde94bcd15e82f884e28b7539f9;p=yubikey-personalization.old Move common/ykdef.h to yubikey-core --- diff --git a/common/ykdef.h b/common/ykdef.h deleted file mode 100644 index 50b7fbe..0000000 --- a/common/ykdef.h +++ /dev/null @@ -1,114 +0,0 @@ -/***************************************************************************************** -** ** -** Y K D E F - Common Yubikey project header ** -** ** -** Date / Rev / Sign / Remark ** -** 06-06-03 / 0.9.0 / J E / Main ** -** 06-08-25 / 1.0.0 / J E / Rewritten for final spec ** -** 08-06-03 / 1.3.0 / J E / Added static OTP feature ** -** ** -*****************************************************************************************/ - -#ifndef __YKDEF_H_INCLUDED__ -#define __YKDEF_H_INCLUDED__ - -// Slot entries - -#define SLOT_CONFIG 1 -#define SLOT_NAV 2 - -#define SLOT_DATA_SIZE 64 - -// Ticket structure - -#define UID_SIZE 6 // Size of secret ID field - -typedef struct { - unsigned char uid[UID_SIZE]; // Unique (secret) ID - unsigned short useCtr; // Use counter (incremented by 1 at first use after power up) + usage flag in msb - unsigned short tstpl; // Timestamp incremented by approx 8Hz (low part) - unsigned char tstph; // Timestamp (high part) - unsigned char sessionCtr; // Number of times used within session. 0 for first use. After it wraps from 0xff to 1 - unsigned short rnd; // Pseudo-random value - unsigned short crc; // CRC16 value of all fields -} TICKET; - -// Activation modifier of sessionUse field (bitfields not uses as they are not portable) - -#define TICKET_ACT_HIDRPT 0x8000 // Ticket generated at activation by keyboard (scroll/num/caps) -#define TICKET_CTR_MASK 0x7fff // Mask for useCtr value (except HID flag) - -// Configuration structure - -#define FIXED_SIZE 16 // Max size of fixed field -#define KEY_SIZE 16 // Size of AES key -#define ACC_CODE_SIZE 6 // Size of access code to re-program device - -typedef struct { - unsigned char fixed[FIXED_SIZE];// Fixed data in binary format - unsigned char uid[UID_SIZE]; // Fixed UID part of ticket - unsigned char key[KEY_SIZE]; // AES key - unsigned char accCode[ACC_CODE_SIZE]; // Access code to re-program device - unsigned char fixedSize; // Number of bytes in fixed field (0 if not used) - unsigned char pgmSeq; // Program sequence number (ignored at programming - updated by firmware) - unsigned char tktFlags; // Ticket configuration flags - unsigned char cfgFlags; // General configuration flags - unsigned short ctrOffs; // Counter offset value (ignored at programming - updated by firmware) - unsigned short crc; // CRC16 value of all fields -} CONFIG; - -// Ticket flags - -#define TKTFLAG_TAB_FIRST 0x01 // Send TAB before first part -#define TKTFLAG_APPEND_TAB1 0x02 // Send TAB after first part -#define TKTFLAG_APPEND_TAB2 0x04 // Send TAB after second part -#define TKTFLAG_APPEND_DELAY1 0x08 // Add 0.5s delay after first part -#define TKTFLAG_APPEND_DELAY2 0x10 // Add 0.5s delay after second part -#define TKTFLAG_APPEND_CR 0x20 // Append CR as final character - -// Configuration flags - -#define CFGFLAG_SEND_REF 0x01 // Send reference string (0..F) before data -#define CFGFLAG_TICKET_FIRST 0x02 // Send ticket first (default is fixed part) -#define CFGFLAG_PACING_10MS 0x04 // Add 10ms intra-key pacing -#define CFGFLAG_PACING_20MS 0x08 // Add 20ms intra-key pacing -#define CFGFLAG_ALLOW_HIDTRIG 0x10 // Allow trigger through HID/keyboard -#define CFGFLAG_STATIC_TICKET 0x20 // Static ticket generation - -// Navigation - -#define MAX_URL 48 - -typedef struct { - unsigned char scancode[MAX_URL];// Scancode (lower 7 bits) - unsigned char scanmod[MAX_URL >> 2]; // Modifier fields (packed 2 bits each) - unsigned char flags; // NAVFLAG_xxx flags - unsigned char filler; // Filler byte - unsigned short crc; // CRC16 value of all fields -} NAV; - -#define SCANMOD_SHIFT 0x80 // Highest bit in scancode -#define SCANMOD_ALT_GR 0x01 // Lowest bit in mod -#define SCANMOD_WIN 0x02 // WIN key - -// Navigation flags - -#define NAVFLAG_INSERT_TRIG 0x01 // Automatic trigger when device is inserted -#define NAVFLAG_APPEND_TKT 0x02 // Append ticket to URL -#define NAVFLAG_DUAL_KEY_USAGE 0x04 // Dual usage of key: Short = ticket Long = Navigate - -// Status block - -typedef struct { - unsigned char versionMajor; // Firmware version information - unsigned char versionMinor; - unsigned char versionBuild; - unsigned char pgmSeq; // Programming sequence number. 0 if no valid configuration - unsigned short touchLevel; // Level from touch detector -} STATUS; - -// Modified hex string mapping - -#define MODHEX_MAP "cbdefghijklnrtuv" - -#endif // __YKDEF_H_INCLUDED__