All pages
Powered by GitBook
1 of 4

Loading...

Loading...

Loading...

Loading...

Properties - 0x00 - 0x22

About Properties

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 0x00 – Main Firmware ID

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

Property 0x02 - USB Polling Interval

Property 0x03 - Device Serial Number

Property 0x04 - MagneSafe Version Number

Property 0x05 - Track ID Enable

Table - Track Enable Property

Property 0x07 - ISO Track PAN Mask

Table - ISO Track PAN Masking - Non-PCI Device

Table - ISO Track PAN Masking - PCI Device

Property 0x08 - AAMVA Track Mask

Table - Factors for Masking Data on AAMVA Type Cards - Non-PCI device

Table - Factors for Masking Data on AAMVA Type Cards - PCI device

Property 0x10 - Interface Type

Property 0x15 – MP Options (MAC MREQMK)

Table - MP Option Byte

Property 0x1E – Start of Message

Property 0x22 – End of Message

0

Properties

Properties - 0x23 - 0x54

Property 0x23 - Field Separator

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

Property 0x24 - Start Sentinel Track 1 (ISO)

Property 0x25 - Start Sentinel Track 2 (ISO ABA)

Property 0x26 - Start Sentinel Track 3 (ISO ABA)

Property 0x27 - Start Sentinel Track 3 (AAMVA)

Property 0x28 - Start Sentinel Track 2 (7-bit)

Property 0x29 - Start Sentinel Track 3 (7-bit)

Property 0x2B – Track End Sentinel

Property 0x31 - Mask Other Cards

Property 0x34 – Mask AAMVA Card Data

Property 0x3A – Boot Firmware ID

Property 0x51 – Bundle Seed Protocol Name (For iAP2) (MAC MREQMK)

Property 0x53 - Inter-Key Delay (KB Emulation)

Property 0x54 - Card Data Encryption Variant (MAC MREQMK)

{boot fw pn}-{rev}-PCI 
Example: 1000004854-AA0-PCI

Properties - 0x6E - 0x88

Property 0x6E - Mask Service Code (Set Mask Service Code Only)

Property 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

SCDE DUKPT future keys are available (not exhausted)

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

Property 0x78 - Selectable Card Data Encryption Enable (MAC MREQMK)

Property 0x80 – Device Hardware ID

Property 0x81 – Mode of Operation (MAC MREQMK)

Property 0x82 – Time of Day Reset

Table - PCI Time of Day Reset Value

Property 0x83 – QWANTUM Secure Data Buffer (MAC MREQMK)

Property 0x84 – Device Model Name

Property 0x85 Keyset ID

Note – Test firmware can only allow test keys to be injected.

Property 0x86 – Device State

Note that the device is considered offline (no card reading) until all 4 bytes are zero.

Table - Device State Definition

BYTE Description

Table - BYTE Description

Property 0x87 – Key map status

Table - Key Map Status Bits

Property 0x88 - USB Packet Delay

Value from 0x00...0x3B (0-59)

Bit 0

1 – TK1