PLT-03824 A.2 - OMNIKEY 5027 Software Developer Guide
PLT-03824 A.2 - OMNIKEY 5027 Software Developer Guide
PLT-03824 A.2 - OMNIKEY 5027 Software Developer Guide
hidglobal.com
Copyright
© 2018-2024 HID Global Corporation/ASSA ABLOY AB. All rights reserved.
This document may not be reproduced, disseminated or republished in any form without the prior written
permission of HID Global Corporation.
Trademarks
HID GLOBAL, HID, the HID Brick logo, the Chain Design, ICLASS, SEOS and OMNIKEY are trademarks or
registered trademarks of HID Global, ASSA ABLOY AB, or its affiliate(s) in the US and other countries and
may not be used without permission. All other trademarks, service marks, and product or service names are
trademarks or registered trademarks of their respective owners.
MIFARE, MIFARE Classic, MIFARE DESFire, MIFARE DESFire EV1 and MIFARE Ultralight are registered
trademarks of NXP B.V. and are used under license.
Revision history
Date Description Version
Contacts
For additional offices around the world, see www.hidglobal.com/contact/corporate-offices
2 February 2024
Contents
Section 1: Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.1 Product description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.1.1 Key features. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.1.2 Reference documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
1.1.3 Abbreviations and definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.1.4 Driver installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.1.5 HID OMNIKEY Workbench . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Section 2: Host interfaces and human interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1 USB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.1 Endpoints assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.2 Enumeration mode switching mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Human interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.1 LEDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14
2.2.2 Buzzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14
Section 3: Keyboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.1 Keyboard wedge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.1.1 Output generation process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.1.2 Multiple output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.1.3 Data manipulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.1.3.1 Bit reverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.1.3.2 Byte reverse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.1.3.3 Range limit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.1.3.4 Offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
3.1.3.5 Example of PACS data manipulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.1.4 Data formatting and output string generation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.1.5 Character mapping into keystrokes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.1.6 Special command characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
3.1.7 Entering extended ASCII characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
Section 4: Configuration card . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.1 Security. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.2 Key management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.3 Configuration download . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
February 2024 3
PLT-03824, Rev. A.2
4 February 2024
PLT-03824, Rev. A.2
9.3.3 productName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
9.3.4 productPlatform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
9.3.5 enabledCLFeatures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
9.3.6 firmwareVersion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
9.3.7 hfControllerVersion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
9.3.8 hardwareVersion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
9.3.9 hostInterfaceFlags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
9.3.10 numberOfContactSlots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
9.3.11 numberOfContactlessSlots. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
9.3.12 numberOfAntennas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
9.3.13 humanInterfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
9.3.14 vendorName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
9.3.15 exchangeLevel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
9.3.16 serialNumber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
9.3.17 hfControllerType. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
9.3.18 sizeOfUserEEPROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
9.3.19 firmwareLabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
9.3.20 configCardVerSupport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
9.4 Keyboard wedge configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
9.4.1 Keyboard wedge output configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
9.4.1.1 KBWCardType. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
9.4.1.2 KBWOutputFormat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
9.4.1.3 KBWFlags. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
9.4.1.4 KBWRangeStart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
9.4.1.5 KBWRangeLen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
9.4.1.6 KBWPostStrokeStart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
9.4.1.7 KBWPrePostStrokes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
9.4.2 Keyboard country definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
9.4.2.1 UseSecondKeyboardLayout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
9.4.2.2 charactersDiff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51
9.4.3 Extended ASCII character support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
9.4.3.1 OSforExtendedChars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
9.5 Contactless slot configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
9.5.1 Contactless slot configuration structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
9.5.2 Baud rates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
9.5.2.1 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
9.5.2.2 Default values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
9.5.3 Common parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
February 2024 5
PLT-03824, Rev. A.2
9.5.3.1 sleepModePollingFrequency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
9.5.3.2 sleepModeCardDetectionType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
9.5.3.3 emdSupressionEnabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
9.5.3.4 configCardEnable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
9.5.4 ISO/IEC 14443 Type A. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
9.5.4.1 iso14443aRxTxBaudRate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
9.5.4.2 mifareClassicEmulationPreferred . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
9.5.5 ISO/IEC 14443 Type B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
9.5.5.1 iso14443bRxTxBaudRate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
9.5.6 FeliCa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
9.5.6.1 felicaRxTxBaudRate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
9.5.7 iCLASS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
9.5.7.1 iClass15693DelayTime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
9.5.7.2 iClass15693Timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
9.5.7.3 iClassActallTimeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
9.6 Hardware configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
9.6.1 LED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
9.6.1.1 defaultLEDstate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
9.7 Reader EEPROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
9.7.1 Read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
9.7.2 Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
9.8 Reader configuration control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
9.8.1 applySettings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
9.8.2 restoreFactoryDefaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
9.8.3 rebootDevice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Section 10:Device specific commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
10.1 Configuration card API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
10.1.1 Configuration card data structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
10.1.2 configCardPrepare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
10.1.3 configCardWrite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
10.1.4 configCardLoadKey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Section 11: ICAO test commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
11.1 Command set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
11.1.1 ICAO commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
11.1.2 0x92 - ISO/IEC 14443-2: ISO/IEC 14443-2 command APDU . . . . . . . . . . . . . . . . . . . . . 67
11.1.2.1 ISO/IEC 14443-2 P1 coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
11.1.2.2 ISO/IEC 14443-2 response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
11.1.3 0x94 - transmit pattern command APDU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
6 February 2024
PLT-03824, Rev. A.2
February 2024 7
PLT-03824, Rev. A.2
8 February 2024
Section 1
1 Introduction
February 2024 9
Introduction PLT-03824, Rev. A.2
Note: HID Global is not allowed to support proprietary card layer protocols that may be implemented in the
host device/application. For example, FeliCa application developers must contact Sony and MIFARE
branded products must contact NXP to obtain these card layer protocols. HID Global is constantly
expanding credential technology support in the reader, so some card technologies support only the
chip UID. Contact HID Global Technical Support for further information:
https://www.hidglobal.com/support.
10 February 2024
PLT-03824, Rev. A.2 Introduction
February 2024 11
Introduction PLT-03824, Rev. A.2
12 February 2024
Section 2
2 Host interfaces and human interfaces
The OMNIKEY® 5027 reader supports the USB 2.0 Full Speed (12 Mbit/s) Device Port Host Interface.
2.1 USB
The OMNIKEY 5027 enumerates as an HID Keyboard Device in normal operation mode. To enable device
configuration via CCID interface, it can be switched to composite device mode. See Section 2.1.2 Enumeration
mode switching mechanism. When the device enumerates as a composite device, the OMNIKEY 5027 USB
protocol stack implements the following two device classes:
■ HID Keyboard
■ CCID (Integrated Circuit Cards Interface Device, v1.1) - used only for reader configuration.
The USB CCID interface can be used to send Application Protocol Data Units (APDU) to the reader. The
OMNIKEY 5027 supports the standard PC/SC API (for example, SCardConnect, SCardDisconnect,
SCardTransmit). Consequently, any application software using the PC/SC API commands should be able to
communicate with the reader. However, the CCID slot allows only configuration of the reader; it cannot be
used to communicate with the smart card directly.
February 2024 13
Host interfaces and human interfaces PLT-03824, Rev. A.2
2.2.2 Buzzer
The OMNIKEY 5027 is equipped with one buzzer with a fixed tone. It is used to signal the completion of
configuration card reading, or an error during configuration card reading. The buzzer action can also be
triggered by putting special character 0x0A in pre or post strokes, to signal successful card reading.
14 February 2024
Section 3
3 Keyboard
The OMNIKEY® 5027 reader supports a keyboard interface according to the USB Device Class Definition for
Human Interface Devices (HID Specification) version 1.11. It implements the “Keyboard with BIOS support”
USB protocol stack interface.
February 2024 15
Keyboard PLT-03824, Rev. A.2
3.1.3.4 Offset
Offset allows you to skip a certain amount of data. When requesting PACS information, this parameter is
interpreted as a number of bits, whereas for CSN/UID it is interpreted as bytes.
Note: Bit and byte reverse operations are mutually exclusive.
The following diagram describes the order of data manipulation operations:
Data
Byte reverse No
requested?
Yes
Yes
No
Output data in
selected format
16 February 2024
PLT-03824, Rev. A.2 Keyboard
Offset 5, 011 10101001 1101 Offset and range applied after bit reverse.
range 15,
bit reverse
Offset 5, 11110111 01111111 Offset and range applied before byte
range 15, reversing. Note that right before byte
byte reverse reverse data was padded with 0.
Note: Data manipulation for CSN/UID would give similar effect except that offset and range are defined in
bytes (not bits)
February 2024 17
Keyboard PLT-03824, Rev. A.2
6. If the character is extended ASCII (value from 127 to 254), carriage return or line feed, custom code
entry will be performed. This behavior depends on the selected operating system; see Section 3.1.7
Entering extended ASCII characters.
7. Find keystroke for standard characters (Aa – Zz, 0-9, +-*/.. etc.)
18 February 2024
Section 4
4 Configuration card
The OMNIKEY® 5027 reader allows parts of the configuration to be stored on a DESFire EV1 Smart Card.
This allows the configuration to be distributed over many readers, speeding up overall system setup. For
configuration card order numbers, please refer to the Readers and Credentials How to Order Guide
(PLT-2630) on the HID Global website.
4.1 Security
The configuration card is secured using MIFARE DESFire EV1 encryption methods, which helps protect it
from being read or modified by third parties. All encryption and decryption operations are managed by a
Secure Element chip.
If the card is removed prematurely, it will result in an error from the reader. If the card had the configuration
stored in multiple files, then part of it could be saved in non-volatile memory.
Note: If the configuration card and Secure Element card keys are different, then no error is signaled. The card
is detected as regular smart card.
February 2024 19
Configuration card PLT-03824, Rev. A.2
20 February 2024
Section 5
5 Contactless card interface
The OMNIKEY® 5027 reader supports sleep mode for low power applications. When in low power mode, the
reader is able to detect a HF card by detecting subtle changes in magnetic field using Low Power Card
Detection (LPCD) feature.
February 2024 21
Contactless card interface PLT-03824, Rev. A.2
22 February 2024
Section 6
6 Contactless credential support
February 2024 23
Contactless credential support PLT-03824, Rev. A.2
24 February 2024
Section 7
7 PC/SC
The OMNIKEY® 5027 reader allows you to access the reader configuration through the framework defined in
PC/SC. This simplifies card integration for any developer who is already familiar with this framework.
The Microsoft Developer Network (MSDN) Library contains valuable information and complete
documentation of the SCard API within the MSDN Platform SDK. Search for Smart Card Resource Manager
API on http://www.microsoft.com.
February 2024 25
PC/SC PLT-03824, Rev. A.2
7.1.5 Step 5: Exchange data and commands with the card or the reader
You exchange commands and data through APDUs. The SCardTransmit function sends a service request to
the smart card, expecting to receive data back from the card.
LONG SCardTransmit( IN SCARDHANDLE hCard,
IN LPCSCARD_I0_REQUEST pioSendPci,
IN LPCBYTE pbSendBuffer,
IN DWORD cbSendLength,
IN OUT LPSCARD_IO_REQUEST pioRecvPci,
OUT LPBYTE pbRecvBuffer,
IN OUT LPDWORD pcbRecvLength);
26 February 2024
PLT-03824, Rev. A.2 PC/SC
February 2024 27
PC/SC PLT-03824, Rev. A.2
28 February 2024
Section 8
8 Communicating with the reader
The OMNIKEY® 5027 reader does not support direct communication with the card using PC/SC. The reader
automatically handles all the communication to get the desired data from the smart card and output it
through the keyboard interface. However, the CCID interface is used for sending pseudo APDUs with
configuration commands.
The IFD supports the INS Byte 70h for vendor-specific proprietary commands.
P1 and P2 constitute the vendor ID. For OMNIKEY 5027 Smart Card Reader product is the VID = 076Bh.
The data field is constructed as ASN.1 objects/items, whereby every OMNIKEY Smart Card Reader object is
identified by a unique Object Identifier (OID).
OIDs are organized as a leaf tree under an invisible root node. The following table shows the first root nodes.
OIDs are organized as a leaf tree under an invisible root node. The following table shows the first root nodes.
February 2024 29
Communicating with the reader PLT-03824, Rev. A.2
The following description explains the DER TLV coded data field.
Note: The L field uses the definite form. For the definite form the length octets consist of one or more octets,
short form or long form. For the long form, the IFD uses the version with two subsequent octets.
The last two bytes of the response frame are always the return code, SW1SW2.
In cases of an ISO 7816 violation, the return code is according to ISO 7816-4 and the data field may be empty.
In cases of positive processing or internal errors, the IFD returns SW1SW2 = 9000 and the data field is
encapsulated in the response tag (9Dh or BDh) or error response tag (9Eh).
The response includes more than one leaf, depending on the request. Each leaf is encapsulated in the leaf tag.
Value Description
9Eh Tag = Error Response (0Eh) + (Class Context Specific) + (Primitive)
02h Len = 2
cycle Value byte 1: Cycle in which the error is occurred; see error cycle table below.
error Value byte 2: Error code. See error code table, below.
SW1 90
SW2 00
30 February 2024
PLT-03824, Rev. A.2 Communicating with the reader
Error cycle:
Error code:
February 2024 31
Communicating with the reader PLT-03824, Rev. A.2
32 February 2024
Section 9
9 Reader configuration
All OMNIKEY® 5027 reader configurable items are identified by a unique ASN.1 leaf. A full description is given
below, including default values and example APDU commands to get and set.
February 2024 33
Reader configuration PLT-03824, Rev. A.2
34 February 2024
PLT-03824, Rev. A.2 Reader configuration
For a reader information GET request, the response tag (1D) is always CONSTRUCTED. The response can
include more than one leaf, depending on the request.
DER TLV PDU to retrieve single IFD information (productPlatform):
A2 06 // CHOICE ReaderInformationAPI
A0 04 // CHOICE GetRequest
A0 02 // CHOICE ReaderCapabilites
83 00 // SEQUENCE productplatform
February 2024 35
Reader configuration PLT-03824, Rev. A.2
Root Branch
readerCapabilities (0x00) tlvVersion (0x00)
deviceID (0x01)
productName (0x02)
productPlatform (0x03)
enabledCLFeatures (0x04)
firmwareVersion (0x05)
hfControllerVersion (0x08)
hardwareVersion (0x09)
hostInterfaces (0x0A)
numberOfContactSlots (0x0B)
numberOfContactlessSlots (0x0C)
numberOfAntennas (0x0D)
humanInterfaces (0x0E)
vendorName (0x0F)
exchangeLevel (0x11)
serialNumber (0x12)
hfControllerType (0x13)
sizeOfUserEEProm (0x14)
firmwareLabel (0x16)
configCardsVerSupport (0x1B)
9.3.1 tlvVersion
Tag 0x00
Access Read-only
Type INTEGER
Length 1 byte
Get APDU FF 70 07 6B 08 A2 06 A0 04 A0 02 80 00 00
Sample response BD 03 80 01 01 90 00
36 February 2024
PLT-03824, Rev. A.2 Reader configuration
9.3.2 deviceID
Tag 0x01
Access Read-only
Length 2 bytes
Description Product ID
Get APDU FF 70 07 6B 08 A2 06 A0 04 A0 02 81 00 00
Sample response BD 04 81 02 00 08 90 00
9.3.3 productName
Tag 0x02
Access Read-only
Length Variable
Get APDU FF 70 07 6B 08 A2 06 A0 04 A0 02 82 00 00
Sample response BD 0F 82 0D 4F 4D 4E 49 4B 45 59 20 35 30 32 37 00 90 00
9.3.4 productPlatform
Tag 0x03
Access Read-only
Length Variable
Description The name of the software Platform on which the product is based
Get APDU FF 70 07 6B 08 A2 06 A0 04 A0 02 83 00 00
Sample response BD 0A 83 08 41 56 69 61 74 6F 52 00 90 00
February 2024 37
Reader configuration PLT-03824, Rev. A.2
9.3.5 enabledCLFeatures
Access Read-only
Length 2 bytes
Description Provides information about the contactless protocols that are supported
Get APDU FF 70 07 6B 08 A2 06 A0 04 A0 02 84 00 00
Sample response BD 04 84 02 0F 99 90 00
CL features:
0x0001 – FeliCa support
0x0002 – EMVCo support
0x0004 – Calypso support
0x0008 – NFC P2P support
0x0010 – SIO processor available
0x0020 – SDR (LF processor) available
0x0040 – Native FW Secure Engine
0x0080 – T=CL support
0x0100 – ISO 14443 A support
0x0200 – ISO 14443 B support
0x0400 – ISO 15693 support
0x0800 – PicoPass 15693-2 support
0x1000 – PicoPass 14443B-2 support
0x2000 – PicoPass 14443A-3 support
0x4000 – RFU
0x8000 – RFU
9.3.6 firmwareVersion
Tag 0x05
Access Read-only
Length 3 bytes
Description The version number of the reader’s firmware. 1st byte is major, 2nd byte is minor, 3rd byte is
revision number.
Get APDU FF 70 07 6B 08 A2 06 A0 04 A0 02 85 00 00
Sample response BD 05 85 03 01 00 00 90 00
38 February 2024
PLT-03824, Rev. A.2 Reader configuration
9.3.7 hfControllerVersion
Tag 0x08
Access Read-only
Length 1 byte
Description The version of the HF front-end used for controlling high frequency credentials
Get APDU FF 70 07 6B 08 A2 06 A0 04 A0 02 88 00 00
Sample response BD 03 88 01 1A 90 00
9.3.8 hardwareVersion
Tag 0x09
Access Read-only
Length Variable
Get APDU FF 70 07 6B 08 A2 06 A0 04 A0 02 89 00 00
Sample response BD 11 89 0F 50 43 42 2D 30 30 31 39 36 20 52 45 56 42 00 90 00
9.3.9 hostInterfaceFlags
Tag 0x0A
Access Read-only
Length 1 byte
Description Provides information on the interfaces supported by the reader for communication with the
host
Get APDU FF 70 07 6B 08 A2 06 A0 04 A0 02 8A 00 00
Sample response BD 03 8A 01 02 90 00
February 2024 39
Reader configuration PLT-03824, Rev. A.2
9.3.10 numberOfContactSlots
Tag 0x0B
Access Read-only
Type INTEGER
Length 1 byte
Get APDU FF 70 07 6B 08 A2 06 A0 04 A0 02 8B 00 00
Sample response BD 03 8B 01 00 90 00
9.3.11 numberOfContactlessSlots
Tag 0x0C
Access Read-only
Type INTEGER
Length 1 byte
Get APDU FF 70 07 6B 08 A2 06 A0 04 A0 02 8C 00 00
Sample response BD 03 8C 01 01 90 00
9.3.12 numberOfAntennas
Tag 0x0D
Access Read-only
Type INTEGER
Length 1 byte
Get APDU FF 70 07 6B 08 A2 06 A0 04 A0 02 8D 00 00
Sample response BD 03 8D 01 01 90 00
40 February 2024
PLT-03824, Rev. A.2 Reader configuration
9.3.13 humanInterfaces
Tag 0x0E
Access Read-only
Type INTEGER
Length 1 byte
Get APDU FF 70 07 6B 08 A2 06 A0 04 A0 02 8E 00 00
Sample response BD 05 8E 03 80 01 00 90 00
9.3.14 vendorName
Tag 0x0F
Access Read-only
Length Variable
Get APDU FF 70 07 6B 08 A2 06 A0 04 A0 02 8F 00 00
Sample response BD 0D 8F 0B 48 49 44 20 47 6C 6F 62 61 6C 00 90 00
9.3.15 exchangeLevel
Tag 0x11
Access Read-only
Length 1 byte
Description Provides information about the different APDU levels supported by the reader
Get APDU FF 70 07 6B 08 A2 06 A0 04 A0 02 91 00 00
Sample response BD 03 91 01 02 90 00
February 2024 41
Reader configuration PLT-03824, Rev. A.2
9.3.16 serialNumber
Tag 0x12
Access Read-only
Get APDU FF 70 07 6B 08 A2 06 A0 04 A0 02 92 00 00
Sample response BD 19 92 17 4B 54 2D 30 38 36 33 30 30 33 30 2D 31 36 31 30 2D 30 30 30 31 31 34 90 00
9.3.17 hfControllerType
Tag 0x13
Access Read-only
Get APDU FF 70 07 6B 08 A2 06 A0 04 A0 02 93 00 00
Sample response BD 08 93 06 52 43 36 36 33 00 90 00
9.3.18 sizeOfUserEEPROM
Tag 0x14
Access Read-only
Length 2 bytes
Get APDU FF 70 07 6B 08 A2 06 A0 04 A0 02 94 00 00
Sample response BD 04 94 02 04 00 90 00
42 February 2024
PLT-03824, Rev. A.2 Reader configuration
9.3.19 firmwareLabel
Tag 0x16
Access Read-only
Length Variable
Get APDU FF 70 07 6B 08 A2 06 A0 04 A0 02 96 00 00
Sample response BD 35 96 3E 4F 4B 35 30 32 37 2D 31 2E 30 2E 30 2E 32 34 34 2D 32 30 31 38 30 32 30 35
54 30 36 34 33 30 37 2D 41 44 33 34 46 42 46 34 37 35 30 44 2D 46 4C 41 53 48 5F 50 52
4F 44 55 43 54 49 4F 4E 90 00
9.3.20 configCardVerSupport
Tag 0x1B
Access Read-only
Type INTEGER
Length 2 bytes
Get APDU FF 70 07 6B 08 A2 06 A0 04 A0 02 9B 00 00
Sample response BD 04 9B 02 01 00 90 00
February 2024 43
Reader configuration PLT-03824, Rev. A.2
Root Branch
contactlessSlotConfiguration (0x04) KBWConfiguration1 (0x08) KBWCardType (0x00)
KBWOutputFormat (0x01)
KBWFlags (0x02)
KBWRangeStart (0x03)
KBWRangeLen (0x04)
KBWPostStrokeStart (0x05)
KBWPrePostStrokes (0x06)
KBWConfiguration2 (0x09) KBWCardType (0x00)
KBWOutpuFormat (0x01)
KBWFlags (0x02)
KBWRangeStart (0x03)
KBWRangeLen (0x04)
KBWPostStrokeStart (0x05)
KBWPrePostStrokes (0x06)
KBWConfiguration3 (0x0A) KBWCardType (0x00)
KBWOutpuFormat (0x01)
KBWFlags (0x02)
KBWRangeStart (0x03)
KBWRangeLen (0x04)
KBWPostStrokeStart (0x05)
KBWPrePostStrokes (0x06)
KeyboardCountryDefinition (0x0B) UseSecondKeyboardLayout (0x00)
CharactersDiff (0x01)
ExtendedCharacterSupport (0xC) OSforExtendedChars (0x00)
44 February 2024
PLT-03824, Rev. A.2 Reader configuration
9.4.1.1 KBWCardType
Tag 0x00
Access Read/Write
Type INTEGER
Length 1 byte
Set APDU FF 70 07 6B 0B A2 09 A1 07 A4 05 yy 03 80 01 xx 00
Sample response BD 00 90 00
Get APDU FF 70 07 6B 0A A2 08 A0 06 A4 04 yy 02 80 00 00
Sample response BD 03 80 01 xx 90 00
Configuration slot:
0xA8 – Slot 1
0xA9 – Slot 2
0xAA – Slot 3
Supported card types:
0x00 – Slot not used
0x01 – MIFARE Classic
0x02 – MIFARE Ultralight, NFC Tag Type 2
0x03 – MIFARE DESFire, NFC Tag Type 4
0x04 – HID iCLASS® Seos®
0x05 – HID iCLASS
0x06 – Sony FeliCa, NFC Tag Type 3
0x08 – ISO15693, NFC Tag Type 5
0x09 – Generic ISO14443B
0x0A – Generic ISO14443A
February 2024 45
Reader configuration PLT-03824, Rev. A.2
9.4.1.2 KBWOutputFormat
Tag 0x01
Access Read/Write
Type INTEGER
Length 1 byte
Set APDU FF 70 07 6B 0B A2 09 A1 07 A4 05 yy 03 81 01 xx 00
Sample response BD 00 90 00
Get APDU FF 70 07 6B 0A A2 08 A0 06 A4 04 yy 02 81 00 00
Sample response BD 03 81 01 xx 90 00
Configuration slot:
0xA8 – Slot 1
0xA9 – Slot 2
0xAA – Slot 3
Output formats:
0x00 – ASCII
0x01 – BCD
0x02 – Binary
0x03 – Hexadecimal lowercase
0x04 – Decimal
0x05 – Hexadecimal uppercase
46 February 2024
PLT-03824, Rev. A.2 Reader configuration
9.4.1.3 KBWFlags
Tag 0x02
Access Read/Write
Type INTEGER
Length 1 byte
Set APDU FF 70 07 6B 0B A2 09 A1 07 A4 05 yy 03 82 01 xx 00
Sample response BD 00 90 00
Get APDU FF 70 07 6B 0A A2 08 A0 06 A4 04 yy 02 82 00 00
Sample response BD 03 82 01 xx 90 00
Configuration slot:
0xA8 – Slot 1
0xA9 – Slot 2
0xAA – Slot 3
Keyboard wedge flags:
b1 = 0 defines UID/CSN output
b1 = 1 defines PACS output
b2 = 1 defines data bit reverse
b3 = 1 defines data byte reverse
Note: Bit and byte reverse are mutually exclusive, so cannot be set at the same time. If you try to set bit and
byte reverse at the same time, the reader will respond with an invalid TLV error code exception:
9E 02 00 31 90 00
b8 b7 b6 b5 b4 b3 b2 b1
RFU Byte reverse Bit reverse PACS/UID
February 2024 47
Reader configuration PLT-03824, Rev. A.2
9.4.1.4 KBWRangeStart
Tag 0x03
Access Read/Write
Type INTEGER
Length 1 byte
Set APDU FF 70 07 6B 0B A2 09 A1 07 A4 05 yy 03 83 01 xx 00
Sample response BD 00 90 00
Get APDU FF 70 07 6B 0A A2 08 A0 06 A4 04 yy 02 83 00 00
Sample response BD 03 83 01 xx 90 00
Configuration slot:
0xA8 – Slot 1
0xA9 – Slot 2
0xAA – Slot 3
Data offset:
If PACS data is selected for output, the offset value is the number of bits.
If UID/CSN data is selected for output, the offset value is the number of bytes.
9.4.1.5 KBWRangeLen
Tag 0x04
Access Read/Write
Type INTEGER
Length 1 byte
Set APDU FF 70 07 6B 0B A2 09 A1 07 A4 05 yy 03 84 01 xx 00
Sample response BD 00 90 00
Get APDU FF 70 07 6B 0A A2 08 A0 06 A4 04 yy 02 84 00 00
Sample response BD 03 84 01 xx 90 00
Configuration slot:
0xA8 – Slot 1
0xA9 – Slot 2
0xAA – Slot 3
Data length:
If PACS data is selected for output, the length is the number of bits selected for output.
If UID/CSN data is selected for output, the length is the number of bytes selected for output.
48 February 2024
PLT-03824, Rev. A.2 Reader configuration
9.4.1.6 KBWPostStrokeStart
Tag 0x05
Access Read/Write
Type INTEGER
Length 1 byte
Value yy – configuration slot, xx - Position in KBWPrePostStrokes string where post strokes start
Set APDU FF 70 07 6B 0B A2 09 A1 07 A4 05 yy 03 85 01 xx 00
Sample response BD 00 90 00
Get APDU FF 70 07 6B 0A A2 08 A0 06 A4 04 yy 02 85 00 00
Sample response BD 03 85 01 xx 90 00
Configuration slot:
0xA8 – Slot 1
0xA9 – Slot 2
0xAA – Slot 3
KBWPostStrokeStart:
Position in KBWPrePostStrokes string of post strokes start.
9.4.1.7 KBWPrePostStrokes
Tag 0x06
Access Read/Write
Type INTEGER
Length 32 bytes
Description The string containing pre and post strokes for keyboard wedge output
Set APDU FF 70 07 6B 2A A2 28 A1 26 A4 24 yy 22 86 20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 00
Sample response BD 00 90 00
Get APDU FF 70 07 6B 0A A2 08 A0 06 A4 04 AA 02 86 00 00
Sample response BD 22 86 20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
xx xx xx xx 90 00
Configuration slot:
0xA8 – Slot 1
0xA9 – Slot 2
0xAA – Slot 3
Pre/post strokes string:
String with pre and post strokes desired for selected keyboard wedge configuration slot.
February 2024 49
Reader configuration PLT-03824, Rev. A.2
9.4.2.1 UseSecondKeyboardLayout
Tag 0x00
Access Read/Write
Type INTEGER
Length 1 byte
Description Enables or disables using second keyboard layout defined in tag 0x01
Set APDU FF 70 07 6B 0B A2 09 A1 07 A4 05 AC 03 80 01 xx 00
Sample response BD 00 90 00
Get APDU FF 70 07 6B 0A A2 08 A0 06 A4 04 AC 02 80 00 00
Sample response BD 03 84 01 xx 90 00
50 February 2024
PLT-03824, Rev. A.2 Reader configuration
9.4.2.2 charactersDiff
Tag 0x01
Access Read/Write
Type INTEGER
Description Enables or disables using second keyboard layout defined in tag 0x01
Set APDU FF 70 07 6B CF A2 81 CA A1 81 C8 A4 81 C6 AB 81 C3 81 81 C0
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
00
Sample response BD 00 90 00
Get APDU FF 70 07 6B 0A A2 08 A0 06 A4 04 AB 02 81 00 00
Sample response BD 82 00 C4 81 82 00 C0
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
90 00
February 2024 51
Reader configuration PLT-03824, Rev. A.2
Example:
To output the “Z” character properly on a German keyboard, the array should contain the following structure
0x5A021C and unused spaces should be filled with zeroes:
Note: Since version 1.7, OMNIKEY Workbench offers out-of-box arrays containing character differences for
German, French and UK keyboard layouts. You can also import custom layouts created in Microsoft
Keyboard Layout Creator. See OMNIKEY 5027 User Guide (PLT-03827).
9.4.3.1 OSforExtendedChars
Tag 0x00
Access Read/Write
Type INTEGER
Length 1 byte
Set APDU FF 70 07 6B 0B A2 09 A1 07 A4 05 AC 03 80 01 xx 00
Sample response BD 00 90 00
Get APDU FF 70 07 6B 0A A2 08 A0 06 A4 04 AC 02 80 00 00
Sample response BD 03 84 01 xx 90 00
Operating system:
0x00 – Windows
0x01 – Linux
0x02 - macOS
52 February 2024
PLT-03824, Rev. A.2 Reader configuration
9.5.2.1 Examples
0x00 – 106 kbps for Rx and Tx
0x23 – 106 and 424 kbps for Rx and 106, 212, 424 kbps for Tx
0x71 – 106, 212, 424, 848 kbps for Rx and 106, 212 kbps for Tx
February 2024 53
Reader configuration PLT-03824, Rev. A.2
9.5.3.1 sleepModePollingFrequency
Tag 0x0D
Access Read/Write
Type INTEGER
Length 1 byte
Set APDU FF 70 07 6B 0B A2 09 A1 07 A4 05 A0 03 8D 01 xx 00
Sample response BD 00 90 00
Get APDU FF 70 07 6B 0A A2 08 A0 06 A4 04 A0 02 8D 00 00
Sample response BD 03 8D 01 xx 90 00
Frequency index:
0x00 – 41 Hz (24 ms)
0x01 – 20 Hz (48 ms)
0x02 – 10 Hz (96 ms)
0x03 – 5 Hz (0.2 s)
0x04 – 2.5 Hz (0.4 s)
0x05 – 1.3 Hz (0.8 s)
0x06 – 0.7 Hz (1.4 s)
0x07 – 0.3 Hz (3.1 s)
0x08 – 0.15 Hz (6.2 s)
0x09 – 0.08 Hz (12.3 s)
9.5.3.2 sleepModeCardDetectionType
Tag 0x0E
Access Read/Write
Type INTEGER
Length 1 byte
Set APDU FF 70 07 6B 0B A2 09 A1 07 A4 05 A0 03 8E 01 xx 00
Sample response BD 00 90 00
Get APDU FF 70 07 6B 0A A2 08 A0 06 A4 04 A0 02 8E 00 00
Sample response BD 03 8E 01 xx 90 00
54 February 2024
PLT-03824, Rev. A.2 Reader configuration
9.5.3.3 emdSupressionEnabled
Tag 0x07
Access Read/Write
Type INTEGER
Length 1 byte
Set APDU FF 70 07 6B 0B A2 09 A1 07 A4 05 A0 03 87 01 xx 00
Sample response BD 00 90 00
Get APDU FF 70 07 6B 0A A2 08 A0 06 A4 04 A0 02 87 00 00
Sample response BD 03 87 01 xx 90 00
9.5.3.4 configCardEnable
Tag 0x07
Access Read/Write
Type INTEGER
Length 1 byte
Set APDU FF 70 07 6B 0B A2 09 A1 07 A4 05 A0 03 91 01 xx 00
Sample response BD 00 90 00
Get APDU FF 70 07 6B 0A A2 08 A0 06 A4 04 A0 02 91 00 00
Sample response BD 03 91 01 xx 90 00
February 2024 55
Reader configuration PLT-03824, Rev. A.2
9.5.4.1 iso14443aRxTxBaudRate
Tag 0x01
Access Read/Write
Type INTEGER
Length 1 byte
Description Sets supported baud rates for ISO/IEC 14443 Type A cards
Set APDU FF 70 07 6B 0B A2 09 A1 07 A4 05 A2 03 81 01 xx 00
Sample response BD 00 90 00
Get APDU FF 70 07 6B 0A A2 08 A0 06 A4 04 A2 02 81 00 00
Sample response BD 03 81 01 xx 90 00
9.5.4.2 mifareClassicEmulationPreferred
Tag 0x04
Access Read/Write
Type INTEGER
Length 1 byte
Set APDU FF 70 07 6B 0B A2 09 A1 07 A4 05 A2 03 84 01 xx 00
Sample response BD 00 90 00
Get APDU FF 70 07 6B 0A A2 08 A0 06 A4 04 A2 02 84 00 00
Sample response BD 03 84 01 xx 90 00
56 February 2024
PLT-03824, Rev. A.2 Reader configuration
9.5.5.1 iso14443bRxTxBaudRate
Tag 0x01
Access Read/Write
Type INTEGER
Length 1 byte
Description Sets supported baud rates for ISO/IEC 14443 Type B cards
Set APDU FF 70 07 6B 0B A2 09 A1 07 A4 05 A3 03 81 01 xx 00
Sample response BD 00 90 00
Get APDU FF 70 07 6B 0A A2 08 A0 06 A4 04 A3 02 81 00 00
Sample response BD 03 81 01 xx 90 00
9.5.6 FeliCa
9.5.6.1 felicaRxTxBaudRate
Tag 0x00
Access Read/Write
Type INTEGER
Length 1 byte
Set APDU FF 70 07 6B 0B A2 09 A1 07 A4 05 A5 03 81 01 xx 00
Sample response BD 00 90 00
Get APDU FF 70 07 6B 0A A2 08 A0 06 A4 04 A5 02 81 00 00
Sample response BD 03 81 01 xx 90 00
February 2024 57
Reader configuration PLT-03824, Rev. A.2
9.5.7 iCLASS
9.5.7.1 iClass15693DelayTime
Tag 0x04
Access Read/Write
Type INTEGER
Length 4 bytes
Value Timeout
Set APDU 70 07 6B 0E A2 0C A1 0A A4 08 A6 06 84 04 xx xx xx xx 00
Sample response BD 00 90 00
Get APDU FF 70 07 6B 0A A2 08 A0 06 A4 04 A6 02 84 00 00
Sample response BD 06 84 04 xx xx xx xx 90 00
9.5.7.2 iClass15693Timeout
Tag 0x05
Access Read/Write
Type INTEGER
Length 4 bytes
Value Timeout
Set APDU 70 07 6B 0E A2 0C A1 0A A4 08 A6 06 85 04 xx xx xx xx 00
Sample response BD 00 90 00
Get APDU FF 70 07 6B 0A A2 08 A0 06 A4 04 A6 02 85 00 00
Sample response BD 06 85 04 xx xx xx xx 90 00
58 February 2024
PLT-03824, Rev. A.2 Reader configuration
9.5.7.3 iClassActallTimeout
Tag 0x06
Access Read/Write
Type INTEGER
Length 4 bytes
Value Timeout
Set APDU 70 07 6B 0E A2 0C A1 0A A4 08 A6 06 86 04 xx xx xx xx 00
Sample response BD 00 90 00
Get APDU FF 70 07 6B 0A A2 08 A0 06 A4 04 A6 02 86 00 00
Sample response BD 06 86 04 xx xx xx xx 90 00
February 2024 59
Reader configuration PLT-03824, Rev. A.2
9.6.1.1 defaultLEDstate
Tag 0x01
Access Read/Write
Type INTEGER
Length 1 bytes
Set APDU FF 70 07 6B 0B A2 09 A1 07 AF 05 A0 03 81 01 xx 00
Sample response BD 00 90 00
Get APDU FF 70 07 6B 0A A2 08 A0 06 AF 04 A0 02 81 00 00
Sample response BD 01 81 01 xx 90 00
60 February 2024
PLT-03824, Rev. A.2 Reader configuration
Root Branch
readerEEPROM (0x07) eepromOffset (0x01)
eepromRdLength (0x02)
eepromWrData (0x03)
9.7.1 Read
Tag 0x02
Access Read-only
Length variable
Get APDU FF 70 07 6B 0D A2 0B A0 09 A7 07 81 02 yy yy 82 01 ss 00
Sample response 9D ss xx … 90 00
9.7.2 Write
Tag 0x03
Access Write-only
Length variable
February 2024 61
Reader configuration PLT-03824, Rev. A.2
Access Write-only
Type
Length
Value None
Description Apply settings. This command must be used to accept changes in the reader configuration. The
only settings that take changes immediately are iso14443aRxTxBaudRate and
iso14443bRxTxBaudRate. The command resets the device.
Set APDU FF 70 07 6B 08 A2 06 A1 04 A9 02 80 00 00
Sample response 9D 00 90 00
9.8.2 restoreFactoryDefaults
Tag 0x01
Access Write-only
Type
Length
Value None
Description Sets reader configuration to factory defaults. The command resets the device.
Set APDU FF 70 07 6B 08 A2 06 A1 04 A9 02 81 00 00
Sample response 9D 00 90 00
9.8.3 rebootDevice
Tag 0x03
Access Write-only
Type
Length
Value None
Set APDU FF 70 07 6B 08 A2 06 A1 04 A9 02 83 00 00
Sample response 9D 00 90 00
62 February 2024
Section 10
10 Device specific commands
This section contains a list of device specific commands applicable only to the OMNIKEY 5027.
Device specific command structure:
Root Branch
deviceSpecific (0x1C) configCardAPI (0x01)
configCardPrepare (0x00)
configCardWrite (0x01)
configCardLoadKey (0x05)
February 2024 63
Device specific commands PLT-03824, Rev. A.2
Files with IDs greater than 0 are data files. Each data file must contain a set of ASN.1 commands, as described
in Section 9 Reader configuration. If your configuration exceeds the size of a single file, then some ASN.1
strings must be moved to the next file. The data file internal structure is defined below:
10.1.2 configCardPrepare
Tag 0x00
Access Write-only
Type INTEGER
Length 1 byte
This command prepares the configuration card with a sequence of commands to comply with the desired
data structure. The number of files must be specified, but this does not include the header file. The size of
each file is predefined and equal to 237 bytes. During the preparation process, all existing files on the card are
lost.
64 February 2024
PLT-03824, Rev. A.2 Device specific commands
10.1.3 configCardWrite
Tag 0x01
Access Write-only
Length variable
10.1.4 configCardLoadKey
Tag: 0x05
Access: Write-only
Length: 16 bytes
All OMNIKEY 5027 readers are preloaded with a default key to encrypt and decrypt a configuration card.
This feature helps secure against reading and unauthorized modification by 3rd parties. However, if more
security is required, you can upload your own custom key. The configuration card key is set on the card
during the preparation phase, therefore it must be loaded before the programming procedure and to all
readers on which the card will be read. This command should be sent using the PC_to_RDR_Escape CCID
message; see Section 12 Using the PC_to_RDR_Escape command.
February 2024 65
Device specific commands PLT-03824, Rev. A.2
66 February 2024
Section 11
11 ICAO test commands
All of the ICAO test commands are attempted regardless of card presence or type.
Note: Any data received back from the card is ignored in this test.
February 2024 67
ICAO test commands PLT-03824, Rev. A.2
Note: This test can be used to transmit and/or receive data to/from the card. No parity bit or CRC bytes are
added, but framing (that is, start/stop bits, SOF/EOF) will be added. This is not fully compliant with the
ICAO test standard.
68 February 2024
PLT-03824, Rev. A.2 ICAO test commands
February 2024 69
ICAO test commands PLT-03824, Rev. A.2
70 February 2024
PLT-03824, Rev. A.2 ICAO test commands
February 2024 71
ICAO test commands PLT-03824, Rev. A.2
72 February 2024
Section 12
12 Using the PC_to_RDR_Escape command
The PC/SC layer does not allow the use of the SCardTransmit API unless the reader has previously signaled
the presence and activation of a card. This prevents the use of commands such as the ICAO test commands
or the HID commands without being able to properly recognize and activate a card. To be able to use these
commands even without a previous card activation, the same functionality of pseudo-APDUs (CLA=’FF’) is
provided through the PC_to_RDR_Escape command.
To use the PC_to_RDR_Escape command with the default Microsoft CCID driver, the functionality must be
first enabled in the Windows registry.
To issue the PC_to_RDR_Escape command without a card being present, the reader must first be opened
using the SCardConnect function with the following settings:
dwShareMode = SCARD_SHARE_DIRECT
dwPreferredProtocols = 0
or:
SCardControl(hCard, SCARD_CTL_CODE(3500), …)
The data in the lpInBuffer parameter, of the length given in nInBufferSize, are copied to the abData field of the
PC_to_RDR_Escape command. All the data in the response in RDR_to_PC_Escape abData field are copied
back to the lpOutBuffer.
The abData field of the PC_to_RDR_Escape must contain the pseudo-APDU to be executed (typically, an
ICAO test command or reader configuration). The maximum allowed size of abData in PC_to_RDR_Escape is
currently 262 bytes. The maximum size of the response data in the abData field in the RDR_to_PC_Escape
response is 464 bytes. The PC_to_RDR_Escape and RDR_to_PC_Escape do not support any form of chaining
to extend the lengths of the supported parameters.
February 2024 73
hidglobal.com