Properties are used to provide information about the device and how to configure it. Secured properties are set at the factory or by an administrator using software tools supplied by MagTek. Property values take effect immediately unless specified otherwise.
Property Type:
String
Length:
Varies
Get Property:
This read-only property returns the main firmware part number, a dash, the major and minor revision number, followed by a dash and the firmware type. {main firmware part number}-{3 character rev}-{type}
This one-byte value (1-255) sets the device’s polling interval in milliseconds for the Interrupt in Endpoint. The device sends the value of this property as part of USB device enumeration to the host.
This value is also found on the product label. The property contains the 7-character MagTek device serial number. This value is used for USB device enumeration, data messages, and message security.
This is a maximum 7-byte read-only property that identifies the MagneSafe Feature Level supported on this device.
This property is defined as follows:
id = 0: Decodes standard ISO/ABA cards only
id = 1: Decodes AAMVA and 7-bit cards also
If the id flag is set to 0, only tracks that conform to the ISO card data format allowed for that track are decoded. If the track cannot be decoded by the ISO method, the device reports a decode error.
For each pair of track bits, valid values are as follows:
T# = 00: Track Disabled
T# = 01: Track Enabled
T# = 10: Track Enabled and Required (Generates error if track is blank)
This property specifies how the device should mask data on ISO/ABA type cards: Each byte in the sequence has the following meaning:
This property specifies the factors for masking data on AAMVA type cards. Each byte in the property has the following meaning:
This property represents the device’s current connection type.
Valid values for this property are:
0x00 = USB HID (HID Only)
0x01 = USB Keyboard Emulation (KB) (USB KB Only)
0x02 = iAP2
0xFF = One-Time Automatic (HID Only | iAP2 Only). When the property is set to this value and the device connects to a host, the device attempts to determine which interface type the host is using. After it successfully detects the interface type, it automatically sets this property to the value that corresponds to that interface type.
Configures Magneprint options.
The device sends the value of this property to the host before all other card data. For example, if the host software requires a set of keystrokes to begin the process of receiving card data, this property could be set to transmit that keystroke sequence.
The device sends the value of this property to the host at the end of the data message. For example, if the host software requires a set of keystrokes to end the process of receiving card data, this property could be set to transmit that keystroke sequence. If the value is 0, the device does not send a termination string.
Set Property:
Yes
Default Value:
0x01
Set Property:
No
Default Value:
N/A
Set Property:
No
Standard Value:
PCIV01
Set Property:
Yes
Default Value:
0x95
id
0
T3
T3
T2
T2
T1
T1
Set Property:
Yes
Default Value:
04040Y
1
This byte specifies whether the device applies Mod 10 Correction to the PAN. “Y” means Yes, “N” means No. This option is only effective if the Masking Character specified by this command is “0”.
1
This byte specifies whether the device applies Mod 10 Correction to the PAN. “Y” means Yes, “N” means No. This option is only effective if the Masking Character specified by this command is “0”.
Set Property:
Yes
Default Value:
04040Y
1
This byte specifies whether the device applies Mod 10 Correction to the DL/ID#. “Y” means Yes, “N” means No. This option is only effective if the masking character specified in this command is “0”.
1
This byte specifies whether the device applies Mod 10 Correction to the DL/ID#. “Y” means Yes, “N” means No. This option is only effective if the masking character specified in this command is “0”.
Set Property:
Yes (No for devices that switch connections automatically)
Default Value:
Dependent on device type:
Set Property:
Yes (Secure MAC)
Default Value:
0x00
0
0
0
0=Use SRED encrypt key
1=Use MP encrypt key
0=Normal Length MP
1=Extended Length MP
0
Set Property:
Yes
Default Value:
Null String
Set Property:
Yes
Default Value:
0x0D (carriage return)
Yes
Set Property:
No
Default Value:
Part number of installed firmware
Example
1000004854-AD9-PCI
Property ID:
0x02
Property Type:
Byte
Length:
1 byte
Get Property:
Yes
Property ID:
0x03
Property Type:
String
Length:
7
Get Property:
Yes
Property ID:
0x04
Property Type:
String
Length:
0 - 7 bytes
Get Property:
Yes
Property ID:
0x05
Property Type:
Byte
Length:
1 byte
Get Property:
Yes
Bit Position
7
6
5
4
3
2
1
0
Property ID:
0x07
Property Type:
String
Length:
6 bytes
Get Property:
Yes
Length
Description
2
These bytes are an ASCII representation of a decimal value that specifies how many of the leading characters of the PAN the device sends unmasked. The range is from “00” to “99”.
2
These bytes are an ASCII representation of a decimal value that specifies how many of the trailing characters of the PAN the device sends unmasked. The range is from “00” to “99”.
1
Masking Character. This byte specifies which character the device uses for masking. If this byte contains the uppercase letter ‘V’, the following rules apply:
The device masks the PAN using character ‘0’
The device leaves all data after the PAN unmasked, leaving Discretionary Data (“DD”) and other non-PAN data available for the host to read.
0x00 (NULL character) is not allowed.
Length
Description
2
These bytes are an ASCII representation of a decimal value that specifies how many of the leading characters of the PAN the device sends unmasked.
The leading character range is from “00” to “08” when the PAN length is greater than 15.
The leading character range is from “00” to “06” when the PAN length is 15 or less.
2
These bytes are an ASCII representation of a decimal value that specifies how many of the trailing characters of the PAN the device sends unmasked. The range is from “00” to “04”.
1
Masking Character. This byte specifies which character the device uses for masking.
The uppercase letter ‘V’ is not supported.
0x00 (NULL character) is not allowed.
Property ID:
0x08
Property Type:
String
Length:
6 bytes
Get Property:
Yes
Length
Description
2
These bytes are an ASCII representation of a decimal value that specifies how many of the leading characters of the Driver’s License/ID Number (DL/ID#) the device sends unmasked. The range is from “00” to “99”.
2
These bytes are an ASCII representation of a decimal value that specifies how many of the trailing characters of the DL/ID# sends unmasked. The range is from “00” to “99”.
1
Masking Character. This byte specifies which character the device uses for masking. If this byte contains the uppercase letter ‘V’, the following rules apply:
The device masks the PAN according to the rules of this property (Property 0x34 - Send AAMVA Card Data is ignored).
The device uses ‘0’ for masking the PAN.
The device sends all data after the PAN without masking.
0x00 (NULL character) is not allowed.
Length
Description
2
These bytes are an ASCII representation of a decimal value that specifies how many of the leading characters of the Driver’s License/ID Number (DL/ID#) the device sends unmasked. The range is from “00” to “99”.
2
These bytes are an ASCII representation of a decimal value that specifies how many of the trailing characters of the DL/ID# sends unmasked. The range is from “00” to “99”.
1
Masking Character. This byte specifies which character the device uses for masking.
The uppercase letter ‘V’ is not supported.
0x00 (NULL character) is not allowed.
Property ID:
0x10
Property Type:
Byte
Length:
1 byte
Get Property:
Yes
Property ID:
0x15
Property Type:
Byte
Length:
1 byte
Get Property:
Yes
7
6
5
4
3
Bit 2
Bit 1
Bit 0
0
Property ID:
0x1E
Property Type:
String
Length:
0-7 bytes
Get Property:
Yes
Property ID:
0x22
Property Type:
String
Length:
0-7 bytes
Get Property:
Yes
0
Property ID:
0x23
Property Type:
Character
Length:
1 byte
If the value is 0, the device does not send a delimiter which is not recommended.
The device uses this character for the Track 1 start sentinel when it recognizes the track is encoded in the standard ISO format for Track 1.
The device uses this character for the Track 2 start sentinel when it recognizes the track is encoded in the standard ISO format for Track 2.
The device uses this character for the Track 3 start sentinel when it recognizes the track is encoded in the standard ISO format for Track 3.
The device uses this character for the Track 3 start sentinel when it recognizes the track is encoded in the standard Track 3 AAMVA format.
The device uses this character for the Track 2 start sentinel when it recognizes the track is encoded in the 7-bit ISO format, normally used for Track 1.
The device uses this character for the Track 3 start sentinel when it recognizes the track is encoded in the 7-bit ISO format, normally used for Track 1.
The device uses this character for all track end sentinels.
This property designates whether cards which do not decode as either ISO/ABA (Financial) or AAMVA (Driver License) format should be sent with their data masked or unmasked. The default value (0x00) is to send the data unmasked. If this property is set to 0x01, the device sends the track(s) to the host using a “0” for each byte of track data the device reads from the card.
If a card is encoded according to ISO/ABA rules (Track 1 in 7-bit format, Tracks 2 and Track 3 in 5-bit format), and it’s not a QWANTUM card, and Track 1 does not begin with the character ‘B’, the device always sends the Track 1 Masked Data value unmasked, regardless of the value of this property.
An AAMVA card is typically used for Drivers Licenses and ID cards.
0 = Sends masked AAMVA card data.
1 = Sends clear AAMVA card data.
This read-only property returns the boot firmware part number, a dash, the major and minor revision number, followed by a dash and the firmware type.
The device and host software use this value as part of the iAP2 connection process. The value of this property is generally the device purchaser’s or host software developer’s reverse DNS name in all uppercase and must be specified by the purchaser and set by the manufacturer during manufacturing configuration. For further details about the requirements, purpose, and use of this property, see ExternalAccessoryProtocolName in Apple’s software developer documentation.
This property controls how long the device pauses between each key report. This delay can be adjusted between 0 and 250 milliseconds. Some host devices cannot handle full speed keyboard input without dropping key presses, so delays can be added. The time needed to send the entire message also increases.
This property specifies which variant of the current TDES DUKPT Key the device uses to encrypt card data.
0x00 = Use PIN Encryption variant (Ignored when using an AES DUKPT key)
0x01 = Use Data Encryption, request or both ways variant
Set Property:
Yes
Default Value:
0x25 (‘%’)
Default Value:
0x3B (‘;’)
Set Property:
Yes
Default Value:
0x2B (‘+’)
Set Property:
Yes
Default Value:
0x23 (‘#’)
Set Property:
Yes
Default Value:
0x40 (‘@’)
Set Property:
Yes
Default Value:
0x26 (‘&’)
Set Property:
Yes
Default Value:
0x3F (‘?’)
Set Property:
Yes
Default Value:
0x00 (Don’t Mask Other cards)
Set Property:
Yes
Default Value:
0x00
Set Property:
No
Default Value:
N/A
Set Property:
Yes (secure MAC)
Default Value:
com.magtek.idynamo
Set Property:
Yes
Default Value:
0x04 (4 ms)
Set Property:
Yes (Secure MAC)
Default Value:
0x01 (Data Variant)
Get Property:
Yes
Set Property:
Yes
Default Value:
0x7C (‘|’)
Property ID:
0x24
Property Type:
Byte
Length:
1 byte
Get Property:
Yes
Property Type:
Byte
Length:
1 byte
Get Property:
Yes
Set Property:
Yes
Property ID:
0x26
Property Type:
Byte
Length:
1 byte
Get Property:
Yes
Property ID:
0x27
Property Type:
Byte
Length:
1 byte
Get Property:
Yes
Property ID:
0x28
Property Type:
Byte
Length:
1 byte
Get Property:
Yes
Property ID:
0x29
Property Type:
Byte
Length:
1 byte
Get Property:
Yes
Property ID:
0x2B
Property Type:
Byte
Length:
1 byte
Get Property:
Yes
Property ID:
0x31
Property Type:
Byte
Length:
1 byte
Get Property:
Yes
Property ID:
0x34
Property Type:
Byte
Length:
1 byte
Get Property:
Yes
Property ID:
0x3A
Property Type:
String
Length:
varies
Get Property:
Yes
Property ID:
0x51
Property Type:
String
Length:
0..51 byte
Get Property:
Yes
Property ID:
0x53
Property Type:
Binary
Length:
1 byte
Get Property:
Yes
Property ID:
0x54
Property Type:
Byte
Length:
1 byte
Get Property:
Yes
{boot fw pn}-{rev}-PCI
Example: 1000004854-AA0-PCIProperty ID:
0x6E
Property Type:
Byte
Length:
1 byte
This property controls the masking of the service code on ISO card tracks 1 and 2. If this property is set to 1, the device masks the service code. If this property is set to 0, the device does not mask the service code.
The host can use this property to enable Selectable Card Data Encryption. Any of the bits in this property enables the SCDE with the corresponding data field included in the encrypted SCDE.
The M002 message is transmitted to the host instead of the M001 message when the following four conditions are met when a financial card is swiped.
Any of the defined property 0x78 bits are set to 1 (enabled)
Card Encode Type of the swiped card is ISO
Initial SCDE DUKPT Key was injected into the device
For security purposes, the reader will reset itself once a day. You can choose what time this reset will occur by changing this property. Set the value to HHMM in Coordinated Universal Time (UTC). HH is one byte with a value of 0-23. MM is one byte with a value of 0-59 The new value takes effect after the next device reset or power cycle.
This data is stored securely (encrypted by DDEK). The data gets sent out in encrypted form using DUKPT when the device is in QWANTUM Mode, the button is enabled, and the button is pressed.
For PCI certified devices, this value will match the one found on the PCI website and the product label.
This property indicates whether the firmware was built to use production device keys (005454) or test device keys (000101).
The primary functions of device states are to inform production software about completed steps and pending tasks. It serves as a checklist and can also assist with remote services and RMAs.
If a key has been loaded into the device, then it’s bit indicator should be set to 1.
A fully loaded reader would return a keymap of: 7E 00 07 00 8C 00 00 00.
The host can use this property to adjust the device’s USB packet delay. The property can be set to 0 to have no delay, or it can be set to a specific value in the range of 1 to 255 ms.
Adjusting this value does not require security when the device is fully configured.
Adjusting this value does not affect the USB HOST POLL TIMEOUT, PROPERTY 0x52. In fact, it is mostly independent from the polling interval.
MagTek recommends the following values for various platforms:
Windows = 0x00 (0 ms)
Android = 0x19 (25 ms)
Linux = 0x32 (50 ms)
Set Property:
Yes (Secure MAC)
Default Value:
0x00
Bit 3
Service Code
0 = Disable (Default)
1 = Enable
Bit 4
T1 Discretionary Data
0 = Disable (Default)
1 = Enable
Bit 5
T2 Discretionary Data
0 = Disable (Default)
1 = Enable
Bit 6
Reserved
Bit 7
Reserved
Set Property:
No
Default Value:
N/A
Set Property:
Yes (Secure MAC)
Default Value:
0
• 0 = Normal Operation
• 1 = QWANTUM Mode
Set Property:
Yes (New value takes effect after reset)
Default Value:
0000 (UTC Midnight)
Set Property:
Yes (Secure MAC)
Default Value:
Length = 0
Set Property:
No
Standard Value:
'iDynamo 5 Gen III'
Set Property:
No (Value depends on firmware build type)
Default Value:
005454 (for PCI), 000101 (for Non-PCI)
Set Property:
No – values come from self-test and security status.
Default Value:
N/A
1
System State
Offline
0
0
Device Keys missing
RTC not active/set
Not Initialized
Security Inactive
Tampered
2
Self-Test failure
Data Integrity
Key Integrity
0
0
0
Registers
Crypto
RNG
3
PCI Info
0
0
0
0
0
HW ID Missing
Model Name Missing
Serial # Missing
4
Unmapped Data Types
0
0
0
0
0
0
0
0
Bit 6
Reserved
Always 0
Bit 5
Bit 4
Device Keys Missing
0 = Device keys present
1 = Device keys missing
NOTE: “Device Keys” refer to the keys that are injected during MfgCfg such as Transport Keys and MAC Keys. “Device Keys” do not include DUKPT keys (2007, 2002 and 2003). The DUKPT keys are “Financial Keys”.
Bit 3
RTC not Active/Set
0 = RTC active
1 = RTC inactive (not enabled)
Bit 2
Not Initialized
0 = Non-volatile storage initialized
1= Non-volatile storage not initialized
NOTE: “Initialized” means:
a. the master keys are generated internally.
b. the data & key storage area is initialized with an initialization indicator such as 0xAA55 and its integrity is known good.
Bit 1
Security Inactive
0 = Security activated
1= Security not activated
NOTE: “Security” means Tamper.
Bit 0
Tampered
0 = Device not tampered
1 = Device tampered
BYTE 2 – Self-Test Failure
Bit 7
Data Integrity
0 = Configuration data in NVS not corrupted
1 = Found data corruption in the configuration data
Bit 6
Key Integrity
0 = All fixed keys and injected keys are not corrupted
1 = Found key data for one or more keys is corrupted
Bit 5
Reserved
Always 0
Bit 4
Bit 3
Bit 2
Registers
0 = All hardware registers in uC required for normal operation of the device are initialized/ enabled/configured/ functional;
1 = Any one or more of those registers are not operating correctly
Bit 1
Crypto
0 = Passed test
1 = Failed test
NOTE: Enable Crypto engine in uC and test crypto functions and make sure it returns the expected results. (e.g. KAT – Known Answer Test)
Bit 0
RNG
0 = Passed test
1 = Failed test
NOTE: Enable RNG in uC and read RNG value a few times and make sure RNG returns different values for each read.
BYTE 3 – PCI Info
Bit 7
Reserved
Always 0
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
PCI HW ID Missing
0 = Found a valid PCI HW ID in Property 0x80
1 = PCI HW ID missing
Bit 1
Model Name Missing
0 = Found a valid model name in Property 0x84
1 = Model name missing
Bit 0
Serial # Missing
0 = Found a valid DSN in Property 0x03
1 = DSN missing
BYTE 4 – Unmapped Data Types
Bit 7
Reserved
Always 0
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
Set Property:
No – values come from key injection.
Starting Value:
0 – if no keys loaded
0
MKIFTK
MFGTK
PRODTK
FINTK
DEVTK
MTK
TMPTK
2 – TK2
0
0
0
0
0
0
0
0
3 – MK1
0
0
0
0
0
MFRQMK
MREQMK
FREQMK
4 – MK2
0
0
0
0
0
0
0
0
5 – DK1
DKPTM7
0
0
0
DKPTM3
DKPTM2
0
0
6 – DK2
0
0
0
0
0
0
0
0
7 – DK3
0
0
0
0
0
0
0
0
8 – DK4
DKPTM1F
0
0
0
0
0
0
0
Set Property:
Yes
Starting Value:
0x00 (0 ms)
Get Property:
Yes
Set Property:
Yes
Default Value:
0x01
Property ID:
0x78
Property Type:
Binary
Length:
1 byte
Get Property:
Yes
Bit Number
Description of Bit
Bit 0
Card Holder Name
0 = Disable (Default)
1 = Enable
Bit 1
PAN
0 = Disable (Default)
1 = Enable
Bit 2
Expiration Date
0 = Disable (Default)
1 = Enable
Property ID:
0x80
Property Type:
String
Length:
varies
Get Property:
Yes
Example
10PCI50U0BA
Property ID:
0x81
Property Type:
Byte
Length:
1 byte
Get Property:
Yes
Property ID:
0x82
Property Type:
Byte
Length:
2 bytes
Get Property:
Yes
Length
Field Name
Value
1
Hour
Value from 0x00...0x17 (0-23)
1
Minute
Property ID:
0x83
Property Type:
Bytes
Length:
0-1023 bytes
Get Property:
Yes (Secure MAC)
Property ID:
0x84
Property Type:
String
Length:
varies
Get Property:
Yes
Property ID:
0x85
Property Type:
Binary
Length:
3 bytes
Get Property:
Yes
Property ID:
0x86
Property Type:
Binary
Length:
4 bytes
Get Property:
Yes
Byte
Type
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bytes
Bits
Name
Settings
BYTE 1 – System State
Bit 7
Offline
0 = All bits in this property are set to 0
1 = Not all bits in this property are 0
Property ID:
0x87
Property Type:
Binary
Length:
8 bytes
Get Property:
Yes
Byte
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
Property ID:
0x88
Property Type:
Binary
Length:
1 byte
Get Property:
Yes
Note – Test firmware can only allow test keys to be injected.
Note that the device is considered offline (no card reading) until all 4 bytes are zero.
Value from 0x00...0x3B (0-59)
Bit 0
1 – TK1