Information in this document is subject to change without notice. No part of this document may be
reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose,
without the express written permission of MagTek, Inc.
MagTek is a registered trademark of MagTek, Inc.
MagnePrint is a registered trademark of MagTek, Inc.
MagneSafe™ is a trademark of MagTek, Inc.
Magensa™ is a trademark of MagTek, Inc.
iPhone, iPod and iPad are trademarks of Apple Inc., registered in the U.S. and other countries.
REVISIONS
property to enable/disable ASIC, modified several
descriptions to make them consistent with other manuals
6.01 March 10, 2014 Added Encryption Variant pr oper t y.
Updated Reader Encryption Status Bit 11 and 13 to indicate
ii
LIMITED WARRANTY
MagTek warrants that the products sold pur suan t to this Agreement will perform in accordance with MagTek’s
published specifications. This warranty shall be provided only for a period of one year from the date of the
shipment of the product from MagTek (the “Warranty Period”). This warranty shall apply only to the “Buyer”
(the original purchaser, unless that entity resells the product as authorized by MagTek, in which event this
warranty shall apply only to the first repurchaser).
During the Warranty Period, should this product fail to conform to MagTek’s specifications, MagTek will, at its
option, repair or replace this product at no additional charge except as set forth below. Repair parts and
replacement products will be furnished on an exchange basis and will be either reconditioned or new. All replaced
parts and products become the property of MagTek. This limited warranty does not include service to repair
damage to the product resulting from accident, disaster, unreasonable use, misuse, abuse, negligence, or
modification of the product not authorized by MagTek. MagTek reserves the right to examine the alleged
defective goods to determine whether the warranty is applicable.
Without limiting the generality of the foregoing, MagTek specifically disclaims any liability or warranty for
goods resold in other than MagTek’s original packages, and for goods modified, altered, or treated without
authorization by MagTek.
Service may be obtained by delivering the product during the warranty period to MagTek (1710 Apollo Court,
Seal Beach, CA 90740). If this product is delivered by mail or by an equivalent shipping carrier, the customer
agrees to insure the product or assume the risk of loss or damage in transit, to prepay shipping charges to the
warranty service location, and to use the original shipping container or equivalent. MagTek will return the
product, prepaid, via a three (3) day shipping service. A Return Material Authorization (“RMA”) number must
accompany all returns. Buyers may obtain an RMA number by contacting Technical Support at (888) 624-8350.
EACH BUYER UNDERSTANDS THAT THIS MAGTEK PRODUCT IS
OFFERED AS IS.
MAGTEK MAKES NO OTHER WARRANTY , EXPRESS OR
IMPLIED, AND MAGTEK DISCLAIMS ANY WARRANTY OF ANY OTHER
KIND, INCLUDING ANY WARRANTY OF MERCHANTABILITY OR FITNESS
FOR A PARTICULAR PURPOSE.
IF THIS PRODUCT DOES NOT CONFORM TO MAGTEK’S SPECIFICATIONS, THE SOLE REMEDY
SHALL BE REPAIR OR REPLACEMENT AS PROVIDED ABOVE. MAGTEK’S LIABILITY, IF ANY,
SHALL IN NO EVENT EXCEED THE TOTAL AMOUNT PAID TO MAGTEK UNDER THIS
AGREEMENT. IN NO EVENT WILL MAGTEK BE LIABLE TO THE BUYER FOR ANY DAMAGES,
INCLUDING ANY LOST PROFITS, LOST SAVINGS, OR OTHER INCIDENTAL OR CONSEQUENTIAL
DAMAGES ARISING OUT OF THE USE OF, OR INABILITY TO USE, SUCH PRODUCT, EVEN IF
MAGTEK HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR FOR ANY CLAIM BY
ANY OTHER PARTY.
LIMITATION ON LIABILITY
EXCEPT AS PROVIDED IN THE SECTIONS RELATING TO MAGTEK’S LIMITED WARRANTY,
MAGTEK’S LIABILITY UNDER THIS AGREEMENT IS LIMITED TO THE CONTRACT PRICE OF THIS
PRODUCT.
MAGTEK MAKES NO OTHER WARRANTIES WITH RESPECT TO THE PRODUCT, EXPRESSED OR
IMPLIED, EXCEPT AS MAY BE STATED IN THIS AGREEMENT, AND MAGTEK DISCLAIMS ANY
IMPLIED WARRANTY, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTY OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
MAGTEK SHALL NOT BE LIABLE FOR CONTINGENT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES TO PERSONS OR PROPERTY. MAGTEK FURTHER LIMITS ITS LIABILITY OF ANY KIND
WITH RESPECT TO THE PRODUCT, INCLUDING ANY NEGLIGENCE ON ITS PART, TO THE
CONTRACT PRICE FOR THE GOODS.
MAGTEK’S SOLE LIABILITY AND BUYER’S EXCLUSIVE REMEDIES ARE STATED IN THIS SECTION
AND IN THE SECTION RELATING TO MAGTEK’S LIMITED WARRANTY.
iii
FCC WARNING STATEMENT
This equipment has been tested and was found to comply with the limits for a Class B digital device pursuant to
Part 15 of FCC Rules. These limits are designed to provide reasonable protection against harmful interference
when the equipment is operated in a residential environment. This equipment generates, uses, and can radiate
radio frequency energy and, if not installed and used in accordance with the instruction manual, may cause
harmful interference with radio communications. However, there is no guarantee that interference will not occur
in a particular installation.
FCC COMPLIANCE STATEMENT
This device complies with Part 15 of the FCC Rules. Operation of this device is subject to the following two
conditions: (1) this device may not cause harmful interference, and (2) this device must accept any interference
received, including interference that may cause undesired operation.
CANADIAN DOC STATEMENT
This digital apparatus does not exceed the Class B limits for radio noise from digital apparatus set out in the
Radio Interference Regulations of the Canadian Department of Communications.
Le présent appareil numérique n’émet pas de bruits radioélectriques dépassant les limites applicables aux
appareils numériques de la classe B prescrites dans le Réglement sur le brouillage radioélectrique édicté par le
ministère des Communications du Canada.
This Class B digital apparatus complies with Canadian ICES-003.
Cet appareil numériqué de la classe B est conformé à la norme NMB-003 du Canada.
CE STANDARDS
Testing for compliance with CE requirements was performed by an independent laboratory. The unit under test
was found compliant with s tandards established for Class B devices.
UL/CSA
This product is recognized per Underwriter Laboratories and Canadian Underwriter Laboratories 1950.
RoHS STATEMENT
When ordered as RoHS compliant, this product meets the Electrical and Electronic Equipment (EEE) Reduction
of Hazardous Substances (RoHS) European Directive 2002/95/EC. The marking is clearly recognizable, either as
written words like “Pb-free”, “lead-free”, or as another clear symbol ( ).
CARD DATA ............................................................................................................................................. 3
Masked Track Data .............................................................................................................................. 5
Track 1 Masked Data ....................................................................................................................... 5
Track 2 Masked Data ....................................................................................................................... 5
Track 3 Masked Data ....................................................................................................................... 6
Format Code ......................................................................................................................................... 9
Command Number ............................................................................................................................. 11
Data Length ........................................................................................................................................ 11
Data .................................................................................................................................................... 11
Result Code ........................................................................................................................................ 12
GET AND SET PROPERTY COMMANDS ............................................................................................ 12
Result Codes ...................................................................................................................................... 12
SS Track 1 ISO ABA Property ............................................................................................................ 24
SS Track 2 ISO ABA Property ............................................................................................................ 24
SS Track 3 ISO ABA Property ............................................................................................................ 25
SS Track 3 AAMVA Property.............................................................................................................. 25
SS Track 2 7bits Property ................................................................................................................... 25
SS Track 3 7bits Property ................................................................................................................... 26
ES Property ........................................................................................................................................ 26
Format Code Property ........................................................................................................................ 26
ES Track 1 Property ........................................................................................................................... 27
ES Track 2 Property ........................................................................................................................... 27
ES Track 3 Property ........................................................................................................................... 27
The iDynamo is a secure card reader authenticator (SCRA) designed to work with the Apple
devices that use a 30 pin connector; including iPhone 4, iPhone 3GS, iPhone 3G, iPod touch and
iPad. The iDynamo 5 is an iDynamo SCRA that uses the Lightning connector for use with the
iPhone 5, iPad mini, iPad with Retina display, and iPod touch 5th gen devices. Securit y featur es
include:
• Supplies 54 byte MagnePrint value
• Includes Device Serial Number
• Encrypts all track data and the MagnePrint value
• Provides clear text confirmation data including card holder’s name, expiration date, and a
portion of the PAN as part of the Masked Track Data
• Supports Mutual Authentication Mode for use with Magensa
This reader only supports Security Level 3.
SECURITY LEVEL 3
Security Level 3 enables encryption of track data, MagnePrint data, and the Session ID.
MagnePrint data is always included and it is always encrypted. The format for the data is
detailed later in this document. At Security Level 3, many commands require security—most
notably, the Set Property command.
Commands that require security must be sent with a four byte Message Authentication Code
(MAC) appended to the end. The MAC is calculated as specified in ANSI X9.24 Part 1 – 2004,
Annex A. Note that data supplied to the MAC algorithm should NOT be converted to the
ASCII-Hex, rather it should be supplied in its raw binary form. The MAC key to be used is as
specified in the same document (“Request PIN Entry 2” bullet 2). Calculating the MAC requires
knowledge of the current DUKPT KSN, which can be retrieved using the Get DUKPT KSN and Counter command. For each command processed successfully, the DUKPT Key is
advanced.
1
iDynamo MagneSafe V5 Communication Manual
Command
Level 3
Get Property
Y
Set Property
S
Reset
X*
Get DUKPT KSN and Counter
Y
Set Session ID
Y
Activate Authenticated Mode
Y
Activation Challenge Reply
Y
Deactivate Authenticated Mode
Y
Get Reader State
Y
Get Encryption Counter
Y
Bulk Encrypt
Y
COMMANDS AND SECURITY LEVELS
The following table shows how security levels affect the various commands. “Y” means the
command can run. “N” means the command is prohibited. “S” means the command is protected
(requires MACing). “X” means other (notes to follow).
* The Reset command has special behavior. When an Authentication sequence has failed, only a
correctly MACed Reset command can be used to reset the reader. This is to prevent a dictionary
attack on the keys and to minimize a denial of service attack.
2
SECTION 2. COMMUNICATIONS
CARD DATA
The details about how the card data and commands are structured follow later in this section.
The reader will send only one swipe message per card swipe. When a card is swiped, the swipe
message will be sent even if the data is not decodable. If no data is detected on a track then
nothing will be transmitted for that track. If an error is detected on a track, the ASCII character
“E” will be sent in place of the track data to indicate an error.
The reader will always send data in blocks of 500 bytes. If card data is more than 500 bytes, the
reader will send this using 2 blocks of 500 bytes. If card data is less than or equal to 500 bytes,
the reader will only send 1 block with 500 bytes. If data is less than 500 bytes in a block, the
reader will use a lower case ‘x’ (0x78) as padding characters. Note: The longest message always
fits within 2 blocks.
A Swipe Message is composed of readable ASCII characters. It includes:
• Structural ASCII characters intended to give clues to the structure of the rest of the data.
• Simple ASCII fields that convey the ASCII representation of:
Masked Track Data
Device Serial Number
Format Code
• Binary fields that use sets of two ASCII characters representing hexadecimal digits to
convey the binary value of each byte in the field. The ASCII characters
0123456789ABCDEF convey the hexadecimal values of 0123456789ABCDEF
respectively. The Binary fields are:
Reader Encryption Status
Encrypted Track Data
MagnePrint Status
Encrypted MagnePrint Data
Encrypted Session ID
DUKPT Key Serial Number
Clear Text CRC
Encrypted CRC
For the encrypted fields, the original binary bytes are encrypted using the DES CBC mode with
an Initialization Vector starting at all binary zeroes and the PIN Encryption Key associated with
the current DUKPT KSN. This is done in segments of 8 bytes. If the last segment of the original
data is less than eight bytes long (track data only), the last bytes of the block will be set to binary
zeroes before encrypting. When decrypting track data, the End Sentinel can be used to find the
actual end of the data (ignoring the final zeroes). Each byte of encrypted data is then converted
to two bytes of ASCII data representing the Hexadecimal value of the encrypted byte (many of
the encrypted bytes will have values outside of the printable ASCII character range).
3
iDynamo MagneSafe V5 Communication Manual
Label
Property
ID
P-
Value
Description
Default
0x1E
P30
Pre card string
0 (0x00)
0x1F
P31
Post card string
0 (0x00)
0x20
P32
Pre track string
0 (0x00)
0x21
P33
Post track string
0 (0x00)
0x22
P34
Terminating string
C/R (0x0D)
0x23
P35
Programmable field separator
“|” (0x7C)
Tk1 SS
0x24
P36
ISO/ABA start sentinel
“%” (0x25)
Tk2-SS
0x25
P37
ISO/ABA 5-bit start sentinel
“;” (0x3B)
Tk3-SS
0x26
P38
ISO/ABA start sentinel
“+” (0x2B)
Tk3-SS
AAMVA
P39
AAMVA start sentinel
“#” (0x23)
Tk2-SS 7 bit
0x28
P40
7 bit start sentinel (ISO/ABA Track 1 start sentinel)
“@”(0x40)
Tk3-SS 7 bit
0x29
P41
7 bit start sentinel (ISO/ABA Track 1 start sentinel)
“&”(0x26)
0x2B
0x2F
P43
P47
End Sentinel
Track 3 Specific End Sentinel
“?” (0x3F)
“?” (0x3F)
The card data format for all programmable configuration options is as follows:
[P30]
[P32] [Tk1 SS] [Tk1 Masked Data] [ES ] [P3 3 ]
[P32] [Tk2 SS] [Tk2 Masked Data] [ES ] [P3 3 ]
[P32] [Tk3 SS] [Tk3 Masked Data] [ES ] [P3 3 ]
[P31]
[P35] [Reader Encryption Status]
[P35] [Tk1 Encrypted Data (including TK1 SS and ES)]
[P35] [Tk2 Encrypted Data (including TK1 SS and ES)]
[P35] [Tk3 Encrypted Data (including TK1 SS and ES)]
[P35] [MagnePrint Status]
[P35] [Encrypted MagnePrint data]
[P35] [Device serial number]
[P35] [Encrypted Session ID]
[P35] [DUKPT serial number/counter]
[P35] [Encryption Counter] (optional, off by default)
[P35] [Clear Text CRC]
[P35] [Encrypted CRC]
[P35] [Format Code]
[P34]
The characters and fields are described in the list below. The Property ID (e.g., P31) is the
decimal value of the property ID in the command list (see Pre Card String).
0x27
ES
0x2D
0x2E
P45
P46
Track 1, Track 2 and Track 3 Encrypted Data includes the Start and End Sentinel that were
decoded from the card.
All fields with the format P# are programmable configuration property numbers. They are
described in detail later in this document.
4
Track 1 Specific End Sentinel
Track 2 Specific End Sentinel
“?” (0x3F)
“?” (0x3F)
Section 2. Communications
Masked Track Data
If decodable track data exists for a given track, it is located in the Masked Track Data field that
corresponds to the track number.
The Masked Track Data is decoded and converted to ASCII and then it is “masked”. The
Masked Track Data includes all data starting with the start sentinel and ending with the end
sentinel. Much of the data is “masked”; a specified mask character is sent instead of the actual
character read from the track. The characters that are masked depend on the format of the card.
Only ISO/ABA (Financial Cards with Format Code B) and AAMVA cards are selectively
masked; all other card types are either entirely masked or sent totally in the clear. There is a
separate masking property for ISO/ABA cards and AAMVA cards. See the ISO Track Masking
property and the AAMVA Track Masking property for more information. (Refer to Appendix C
for a description of how ISO/ABA and AAMVA cards are identified.)
Each of these properties allows the application to specify masking details for the Primary
Account Number and Driver’s License / ID Number (DL/ID#), the masking character to be used,
and whether or not to apply an adjustment to force the Mod 10 9 (Luhn algorithm) digit at the
end of the number to be correct.
Track 1 Masked Data
This Simple ASCII field contains the Masked Track Data for track 1. The device transmits all
characters.
For an ISO/ABA card, the PAN is masked as follows:
• The specified number of initial characters is sent unmasked. The specified
number of trailing characters is sent unmasked. If Mod 10 correction is specified,
all but one of the intermediate characters of the PAN are set to zero; one of them
will be set such that last digit of the PAN calculates an accurate Mod 10 check of
the rest of the PAN as transmitted. If the Mod 10 correction is not specified, all
of the intermediate characters of the PAN are set to the specified mask character.
• The Card Holder’s name and the Expiration Date are transmitted unmasked.
• All Field Separators are sent unmasked.
• All other characters are set to the specified mask character.
For an AAMVA card, the specified mask character is substituted for each of the characters read
from the card.
Track 2 Masked Data
This Simple ASCII field contains the Masked Track Data for track 2.
For an ISO/ABA card, the PAN is masked as follows:
• The specified number of initial characters are sent unmasked. The specified
number of trailing characters are sent unmasked. If Mod 10 correction is
specified, all but one of the intermediate characters of the PAN are set to zero;
one of them will be set such that last digit of the PAN calculates an accurate Mod
10 check of the rest of the PAN as transmitted. If the Mod 10 correction is not
specified, all of the intermediate characters of the PAN are set to the specified
mask character.
5
iDynamo MagneSafe V5 Communication Manual
• The Expiration Date is transmitted unmasked.
• All Field Separators are sent unmasked.
• All other characters are set to the specified mask character.
For an AAMVA card, the DL/ID# is masked as follows:
• The specified number of initial characters are sent unmasked. The specified
number of trailing characters are sent unmasked. If Mod 10 correction is
specified, all but one of the intermediate characters of the DL/ID#PAN are set to
zero; one of them will be set such that last digit of the DL/ID# calculates an
accurate Mod 10 check of the rest of the DL/ID# as transmitted. If the Mod 10
correction is not specified, all of the intermediate characters of the DL/ID# are set
to the specified mask character.
• The Expiration Date and Birth Date are transmitted unmasked.
• All other characters are set to the specified mask character.
Track 3 Masked Data
This Simple ASCII field contains the Masked Track Data for track 3.
For an ISO/ABA card, the PAN is masked as follows:
• The specified number of initial characters are sent unmasked. The specified
number of trailing characters are sent unmasked. If Mod 10 correction is
specified, all but one of the intermediate characters of the PAN are set to zero;
one of them will be set such that last digit of the PAN calculates an accurate Mod
10 check of the rest of the PAN as transmitted. If the Mod 10 correction is not
specified, all of the intermediate characters of the PAN are set to the specified
mask character.
• All Field Separators are sent unmasked.
• All other characters are set to the specified mask character.
For an AAMVA card, the specified mask character is substituted for each of the characters read
from the card.
Reader Encryption Status
This two byte Binary field contains the Encryption Status. The Reader Encryption Status is sent
in big endian byte order. Byte 1 is the least significant byte. Byte 1 LSB is status bit 0. Byte 2
MSB is status bit 15. The Reader Encryption Status is defined as follows:
Bit 0 = DUKPT Keys exhausted
Bit 1 = Initial DUKPT key Injected, always set to One
Bit 2 = Encryption Enabled, always set to One
Bit 3 = Always set to Zero
Bit 4 = Timed Out waiting for user to swipe card
Bit 5 = Always set to Zero
Bit 6 = Always set to Zero
Bit 7 = Always set to Zero
Bit 8 = Encryption Counter Expired
Bits 9–10 = Unassigned (always set to Zero)
Bit 11 = DUKPT Key Variant used to encrypt track data, 0=PIN Variant,
1=DATA Variant/Bidirectional.
Bit 12 = Unassigned (always set to Zero)
6
Section 2. Communications
Bit 13 = DUKPT Key Variant used to encrypt MagnePrint data.
0 = PIN Variant, 1 = Data Variant/Bidirectional
Bits 14-15 = Unassigned (always set to Zero)
Notes:
(1) Encryption will only be performed when Encryption Enabled (bit 2) and Initial DUKPT
key Injected (bit 1) are set. Otherwise, data that are normally encrypted are sent in the
clear in ASCII HEX format; the DUKPT Serial Number/counter will not be sent.
(2) When DUKPT Keys Exhausted (bit 0) is set, the reader will no longer read cards and
after a card swipe, the reader response will be sent as follows:
[P30]
[P31]
[P35] [Reader Encryption Status]
[P35]
[P35]
[P35]
[P35]
[P35]
[P35] [Device serial number]
[P35] [Encrypted Session ID]
[P35] [DUKPT serial number/counter]
[P35] [Encryption Counter] (optional, OFF by default)
[P35] [Clear Text CRC]
[P35] [Encrypted CRC]
[P35] [Format Code]
[P34]
Encrypted Track Data
If decodable track data exists for a given track, both the Masked Track Data field and the
Encrypted Track Data field for that track will contain data.
The encrypted data from each track is decoded and converted to ASCII, then is encrypted. The
encrypted track data includes all data starting with the start sentinel and ending with the end
sentinel. The encryption begins with the first 8 bytes of the clear text track data. The 8-byte
result of this encryption is placed in the Encrypted Data buffer for the corresponding track. The
process continues using the CBC (Cipher Block Chaining) method with the encrypted 8 bytes
XORed with the next 8 bytes of clear text. That result is placed in next 8 bytes of the Encrypted Data buffer and the process continues until all clear text bytes have been encrypted. If the final
block of clear text contains fewer than 8 bytes, it is padded with binary zeros to fill up the 8
bytes. After this final clear text block is XORed with the prior 8 bytes of encrypted data, it is
encrypted and placed in the Encrypted Data buffer. No Initial Vector is used in the process.
Decrypting the data must be done in 8 byte blocks, ignoring any final unused bytes in the last
block. See Appendix A for more information.
Track 1 Encrypted Data
This Binary field contains the encrypted track data for track 1.
R R R R R R R M R R R R R R R R 0 0 D 0 F L N S 0 0 0 0 0 0 0
0
Track 2 Encrypted Data
This Binary field contains the encrypted track data for track 2.
Track 3 Encrypted Data
This Binary field contains the encrypted track data for track 3.
MagnePrint Status
This Binary field represents 32 bits of MagnePrint status information. Each character represents
4 bits (hexadecimal notation). For example, suppose the characters are: “A1050000”:
* Usage Legend:
• D = Direction
• F = Too Fast
• L = Too Slow
• M = MagnePrint capable
• N = Too Noisy
• R = Revision
This four byte field contains the MagnePrint status. The MagnePrint status is in little endian
byte order. Byte 1 is the least significant byte. Byte 1 LSB is status bit 0. Byte 4 MSB is status
bit 31. MagnePrint status is defined as follows:
Bit 0 = This is a MagnePrint-capable product (usage M)
Bits 1-15 = Product revision & mode (usage R)
Bit 16 = STATUS-only state (usage S)
Bit 17 = Noise too high or “move me” away from the noise source (used only in
STATUS) (usage N)
Bit 18 = Swipe too slow (us age L)
Bit 19 = Swipe too fast (u s age F)
Bit 20 = Unassigned (always set to Zero)
Bit 21 = Actual Card Swipe Direction (0 = Forward, 1 = Reverse) (usage D)
Bits 22-31 = Unassigned (always set to Zero)
If the Enable/Disable MagnePrint property is set to disable MagnePrint, this field will not be
sent.
Encrypted MagnePrint Data
This 56 byte Binary field contains the MagnePrint data. After decryption, the final two bytes
should be discarded leaving the 54 byte MagnePrint data. The least significant bit of the first
byte of data in this field corresponds to the first bit of MagnePrint data. If the Enable/Disable
MagnePrint property is set to disable MagnePrint, this field will not be sent.
Device Serial Number
This Simple ASCII field contains the device serial number. The device serial number is a NUL
(zero) terminated string. So the maximum length of the device serial number, not including the
8
Section 2. Communications
null terminator, is 15 bytes. This device serial number can also be retrieved and set with the
device serial number property explained in the property section of this document. This field is
stored in non-volatile memory, so it will persist when the unit is power cycled.
Encrypted Session ID
This eight byte Binary field contains the encrypted version of the current Session ID. Its primary
purpose is to prevent replays. After a card is read, this value will be encrypted, along with the
card data, and supplied as part of the transaction message. The clear text version of this will
never be transmitted. To avoid replay, the application sets the Session ID property before a
transaction and verifies that the Encrypted Session ID returned with card data decrypts to the
value set.
DUKPT Key Serial Number
This 10 byte Binary field contains the DUKPT Key Serial Number used to encrypt the encrypted
fields in this message. This 80-bit field includes the Initial Key Serial Number in the leftmost 59
bits and a value for the Encryption Counter in the rightmost 21 bits. If no keys are loaded, all
bytes will have the value 0xFF.
Encryption Counter
This three byte field contains the value of the Encryption Counter at the end of this transaction.
See the Get Encryption Counter command for more information.
Clear Text CRC
This 2-byte Binary field contains a clear text version of a Cyclical Redundancy Check (CRC-16
CCITT, polynomial 0x1021) (least significant byte sent first). It provides a CRC of all
characters sent prior to this CRC. The CRC is converted to four characters of ASCII before
being sent. The application may calculate a CRC from the data received prior to this CRC and
compare it to the CRC received. If they are the same, the application can have high confidence
that all the data was received correctly. The CRC Flag property controls whether this field is
sent. If the property is True, the CRC is sent, if it is False, the CRC is not sent. The default state
for this property is True.
Encrypted CRC
This 8-byte Binary field contains an encrypted version of a Cyclical Redundancy Check (CRC).
It provides a CRC of all characters sent prior to this CRC. The CRC is converted to 16
characters of ASCII before being sent. After the receiver decrypts the message, the CRC is
contained in the first 2 bytes of the message, all other bytes are meaningless. The application
may calculate a CRC from the data received prior to this CRC and compare it to the CRC
received. If they are the same, the application can have high confidence that all the data was
received correctly. The CRC FLAG property controls whether this field is sent.
Format Code
This 4-character ASCII field contains the Format Code. The purpose of the Format Code is to
allow the receiver of this message to know how to find the different fields in the message. The
default Format Code for this reader is “0001”. If any of the properties that affect the format of
the message are changed, the first character of the Format Code will automatically change to a
9
iDynamo MagneSafe V5 Communication Manual
Byte
Usage
0
Command Number
1
Data Length
2 – 23
Data
Byte
Usage
0
Result Code
1
Data Length
2 – 23
Data
“1”. The application may change the final three characters, but making such a change will
automatically cause the first character to a “1”.
PROGRAMMABLE CONFIGURATION OPTIONS
This reader has a number of programmable configuration properties. These properties are stored
in non-volatile memory. These properties can be configured at the factory or by the end user
using a program supplied by MagTek. Programming these parameters requires low level
communications with the reader. Details on how to communicate with the reader to change
programmable configuration properties follows in the next few sections. These details are
included as a reference only. Most users will not need to know these details because the reader
will be configured at the factory or by a program supplied by MagTek. Most users may want to
skip over the next few sections on low level communications and continue with the details of the
configuration properties.
COMMANDS
Most host applications do not need to send commands to the reader. Most host applications only
need to obtain card data from the reader as described previously in this section. This section of
the manual can be ignored by anyone who does not need to send commands to the reader.
Command requests and responses are sent to and received from the reader using command
strings. Command requests are sent to the reader via a serial port. The response to a command
is retrieved from the corresponding serial port.
Each command and response is composed of a series of readable ASCII characters followed by
the ASCII character CR. The ASCII characters preceding the CR are the message; there should
always be an even number of them and they should contain only the characters
0123456789ABCDEF. The receiver will combine two successive ASCII characters from the
message to form one “byte” (see the descriptions of the commands) which may have any value
from 0x00 to 0xFF.
The following table shows the structure of a command message:
The following table shows the structure of a response to a command.
Privileged Commands
Some commands are, for security purposes, privileged. These commands are:
10
(1) Set Property
(2) Reset Device*
* The Reset Device command is usually not Privileged. The exception occurs when sending
a sequence to Activate the Authenticated Mode, during which time the Reset Device
Section 2. Communications
Value
Command Number
Description
0x00
Get Property
Gets a property from the reader
0x01
Set Property
Sets a property in the reader
0x02
Reset Device
Resets the reader
0x09
Get DUKPT KSN
Reports DUKPT KSN and Counter
0x0A
Set Session ID
Sets the current Session ID
Starts Activation of Authenticated Mode of
secure operation
of secure operation
Deactivates the Authenticated Mode of secure
operation
0x14
Get Reader State
Gets the current state of the reader
0x1C
Get Encryption Counter
Gets the encryption counter
0x30
Bulk Encrypt
Encrypts Bulk Data
0xA0
Read ASIC Control
Enables / disables the Read ASIC
command is Privileged to prevent a hacker from using this sequence to exhaust DUKPT
keys, thereby rendering the reader unusable.
The privileged commands must be MACed in order to be accepted. If a MAC is required but not
present or incorrect, RC = 07 will be returned.
Command Number
This one-byte field contains the value of the requested command number. The following table
lists all the existing commands.
This one-byte field contains the length of the valid data contained in the Data field. For
example, a command with one byte of data would send 01 for this byte; a command with 18
bytes of data would send 12 for this byte.
Data
This multi-byte field contains command data if any. Note that the maximum length of this field
is fixed at 120 bytes. Valid data should be placed in the field starting at offset 2.
11
iDynamo MagneSafe V5 Communication Manual
Value
(Hex)
00
Success
The command completed successfully.
01
Failure
The command failed.
The command failed due to a bad
parameter or command syntax error.
mode
07
Invalid Operation
Depends on context of command
Data Offset
Value
0
Property ID
Data Offset
Value
0 – n
Property Value
Data Offset
Value
0
Property ID
1 – n
Property Value
Result Code
This one-byte field contains the value of the result code. There are two types of result codes:
generic result codes and com man d-specific result codes. Generic result codes always have the
most significant bit set to zero. Generic result codes have the same meaning for all commands
and can be used by any command. Command-specific result codes always have the most
significant bit set to one. Command-specific result codes are defined by the command that uses
them. The same code can have different meanings for different commands. Command-specific
result codes are defined in the documentation for the command that uses them. Generic result
codes are defined in the following table.
Result Code Description
02 Bad Parameter
05 Delayed
The request is refused due to anti-hacking
GET AND SET PROPERTY COMMANDS
The Get Property command gets a property from the reader. The Get Property command
number is 00.
The Set Property command sets a property in the reader. The Set Property command number
is 01. For security purposes, this command is privileged. This commands must be MACed in
order to be accepted.
The Get and Set Property command data fields for the requests and responses are structured as
follows:
Get Property Request Data:
Get Property Respons e Data:
Set Property Request Data:
Set Property Respo ns e Dat a:
None
Result Codes
The result codes for the Get and Set Property commands can be any of the codes listed in the
generic result code table.
12
Loading...
+ 40 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.