Public Member Functions | Protected Member Functions | Protected Attributes | Friends
FedmIscTagHandler_ISO14443_4_Maxim_MAX66040 Class Reference

Transponder class providing manufacturer specific commands for ISO 14443-4 compliant Transponders of type MAX66040 from manufacturer Maxim. More...

#include <FedmIscTagHandler_ISO14443_4_Maxim_MAX66040.h>

Inheritance diagram for FedmIscTagHandler_ISO14443_4_Maxim_MAX66040:
Inheritance graph
[legend]

List of all members.

Public Member Functions

int ComputeMAC (unsigned char *pucM, unsigned int *puiMAC)
 Helper method to compute a MAC.
int ComputePageMAC (unsigned char ucPageNumber, unsigned char &ucIndicator, unsigned char &ucPageCRCStatus, unsigned char *pucMAC)
 Command [0xA5]: Compute Page MAC.
int CopyBuffer (unsigned char ucBlockNumber, unsigned char *pucMAC, unsigned char &ucIndicator, unsigned char &ucPageCRCStatus)
 Command [0xA3]: Copy Buffer.
int CustomReadBlock (unsigned char ucBlockNumber, unsigned char &ucIndicator, unsigned char *pucMemoryData, unsigned char *pucIntegrityBytes)
 Command [0xA4]: Custom Read Block.
int CustomReadBlockWithBlockSecurity (unsigned char ucBlockNumber, unsigned char &ucIndicator, unsigned char &ucSecurityStatus, unsigned char *pucMemoryData, unsigned char *pucIntegrityBytes)
 Command [0xB4]: Custom Read Block with Block Security.
int GenerateSecret (unsigned char ucControlByte, unsigned char *pucPartialSecret, unsigned char &ucIndicator, unsigned char &ucPageCRCStatus)
 Command [0xA0]: Generate Secret.
int GetMemoryPageData (unsigned char ucPageNumber, unsigned char &ucIndicator, unsigned char *pucMemoryPageData)
 Read complete Page with command [0x20]: Read Single Block in a loop.
int LockAFI (unsigned char &ucIndicator)
 Command [0x28]: Lock AFI.
int ReadBuffer (unsigned char &ucIndicator, unsigned char &ucBlockNumber, unsigned char *pucReadWriteBufferData)
 Command [0xA2]: Read Buffer.
int ReadSingleBlock (unsigned char ucBlockNumber, unsigned char &ucIndicator, unsigned char *pucMemoryData)
 Command [0x20]: Read Single Block.
int ReadSingleBlockWithBlockSecurity (unsigned char ucBlockNumber, unsigned char &ucIndicator, unsigned char &ucSecurityStatus, unsigned char *pucMemoryData)
 Command [0xB0]: Read Single Block with Block SEcurity.
int UpdateChallenge ()
 Method to generate new random challenge.
int UserComputeCopyBufferMAC (unsigned char *pucSecret, unsigned char *pucMemoryPageData, unsigned char *pucReadWriteBufferData, unsigned char *pucIntegrityBytes, unsigned char pucPageNumber, unsigned char *pucUID, unsigned char *pucMAC)
 Helper method to compute Page MAC.
int UserComputePageMAC (unsigned char *pucSecret, unsigned char *pucMemoryPageData, unsigned char ucPageNumber, unsigned char *pucUID, unsigned char *pucMAC)
 Helper method to compute Page MAC.
int UserComputeSecret (unsigned char *pucSecret, unsigned char *pucMemoryPageData, unsigned char *pucPartialSecret, unsigned char *pucNewSecret)
 Helper method to compute a new Secret Value.
int WriteAFI (unsigned char ucAfiValue, unsigned char &ucIndicator)
 Command [0x27]: Write AFI.
int WriteBuffer (unsigned char ucBlockNumber, unsigned char *pucNewBlockData, unsigned char &ucIndicator)
 Command [0xA1]: Write Buffer.

Protected Member Functions

 FedmIscTagHandler_ISO14443_4_Maxim_MAX66040 (FEDM_ISCReader *pReader, FEDM_ISOTabItem *pTabItem)
 FedmIscTagHandler_ISO14443_4_Maxim_MAX66040 (FEDM_ISCReader *pReader, unsigned int uiTagHandlerType, FEDM_ISOTabItem *pTabItem)
virtual ~FedmIscTagHandler_ISO14443_4_Maxim_MAX66040 ()

Protected Attributes

unsigned char m_ucRequestData [64]
unsigned char m_ucResponseData [256]
unsigned char ucChallenge [5]

Friends

class FEDM_ISCReader
class FEDM_ISCReaderModule
class FEDM_ISOTabItem

Detailed Description

Transponder class providing manufacturer specific commands for ISO 14443-4 compliant Transponders of type MAX66040 from manufacturer Maxim.

Description
High-level class for easy-to-use Transponder specific communication. See OBID::FEDM::Core::ITagGroup for additional information.
Detailed description about the command interface can be found in:

Note:
Programmers should be familiar with the ISO 14443 standards

Definition at line 55 of file FedmIscTagHandler_ISO14443_4_Maxim_MAX66040.h.


Constructor & Destructor Documentation

FedmIscTagHandler_ISO14443_4_Maxim_MAX66040::FedmIscTagHandler_ISO14443_4_Maxim_MAX66040 ( FEDM_ISCReader pReader,
unsigned int  uiTagHandlerType,
FEDM_ISOTabItem pTabItem 
) [protected]

Member Function Documentation

int FedmIscTagHandler_ISO14443_4_Maxim_MAX66040::ComputeMAC ( unsigned char *  pucM,
unsigned int *  puiMAC 
)

Helper method to compute a MAC.

Parameters:
[in]pucMInput data of sixteen 32-bit Words
[out]puiMACComputed MAC
Returns:

Description
Detailed description about the method can be found in:

  • Product Datasheet for MAX66040 from MAXIM

Definition at line 470 of file FedmIscTagHandler_ISO14443_4_Maxim_MAX66040.cpp.

int FedmIscTagHandler_ISO14443_4_Maxim_MAX66040::ComputePageMAC ( unsigned char  ucPageNumber,
unsigned char &  ucIndicator,
unsigned char &  ucPageCRCStatus,
unsigned char *  pucMAC 
)

Command [0xA5]: Compute Page MAC.

Returns:
  • 0 if OK
  • < 0 [error code](OBID::FEDM::Core::Error)
  • > 0 status byte of the responded protocol, if the Reader signals a problem. See Reader's System Manual for the full list with all status bytes.

Description
This method is realized with Reader command [0xB2][0xBE] : T=CL APDU for synchronous call.
Detailed description about the command and the parameters can be found in:

  • Product Datasheet for MAX66040 from MAXIM

Definition at line 1097 of file FedmIscTagHandler_ISO14443_4_Maxim_MAX66040.cpp.

int FedmIscTagHandler_ISO14443_4_Maxim_MAX66040::CopyBuffer ( unsigned char  ucBlockNumber,
unsigned char *  pucMAC,
unsigned char &  ucIndicator,
unsigned char &  ucPageCRCStatus 
)

Command [0xA3]: Copy Buffer.

Returns:
  • 0 if OK
  • < 0 [error code](OBID::FEDM::Core::Error)
  • > 0 status byte of the responded protocol, if the Reader signals a problem. See Reader's System Manual for the full list with all status bytes.

Description
This method is realized with Reader command [0xB2][0xBE] : T=CL APDU for synchronous call.
Detailed description about the command and the parameters can be found in:

  • Product Datasheet for MAX66040 from MAXIM

Definition at line 791 of file FedmIscTagHandler_ISO14443_4_Maxim_MAX66040.cpp.

int FedmIscTagHandler_ISO14443_4_Maxim_MAX66040::CustomReadBlock ( unsigned char  ucBlockNumber,
unsigned char &  ucIndicator,
unsigned char *  pucMemoryData,
unsigned char *  pucIntegrityBytes 
)

Command [0xA4]: Custom Read Block.

Returns:
  • 0 if OK
  • < 0 [error code](OBID::FEDM::Core::Error)
  • > 0 status byte of the responded protocol, if the Reader signals a problem. See Reader's System Manual for the full list with all status bytes.

Description
This method is realized with Reader command [0xB2][0xBE] : T=CL APDU for synchronous call.
Detailed description about the command and the parameters can be found in:

  • Product Datasheet for MAX66040 from MAXIM

Definition at line 970 of file FedmIscTagHandler_ISO14443_4_Maxim_MAX66040.cpp.

int FedmIscTagHandler_ISO14443_4_Maxim_MAX66040::CustomReadBlockWithBlockSecurity ( unsigned char  ucBlockNumber,
unsigned char &  ucIndicator,
unsigned char &  ucSecurityStatus,
unsigned char *  pucMemoryData,
unsigned char *  pucIntegrityBytes 
)

Command [0xB4]: Custom Read Block with Block Security.

Returns:
  • 0 if OK
  • < 0 [error code](OBID::FEDM::Core::Error)
  • > 0 status byte of the responded protocol, if the Reader signals a problem. See Reader's System Manual for the full list with all status bytes.

Description
This method is realized with Reader command [0xB2][0xBE] : T=CL APDU for synchronous call.
Detailed description about the command and the parameters can be found in:

  • Product Datasheet for MAX66040 from MAXIM

Definition at line 1033 of file FedmIscTagHandler_ISO14443_4_Maxim_MAX66040.cpp.

int FedmIscTagHandler_ISO14443_4_Maxim_MAX66040::GenerateSecret ( unsigned char  ucControlByte,
unsigned char *  pucPartialSecret,
unsigned char &  ucIndicator,
unsigned char &  ucPageCRCStatus 
)

Command [0xA0]: Generate Secret.

Returns:
  • 0 if OK
  • < 0 [error code](OBID::FEDM::Core::Error)
  • > 0 status byte of the responded protocol, if the Reader signals a problem. See Reader's System Manual for the full list with all status bytes.

Description
This method is realized with Reader command [0xB2][0xBE] : T=CL APDU for synchronous call.
Detailed description about the command and the parameters can be found in:

  • Product Datasheet for MAX66040 from MAXIM

Definition at line 588 of file FedmIscTagHandler_ISO14443_4_Maxim_MAX66040.cpp.

int FedmIscTagHandler_ISO14443_4_Maxim_MAX66040::GetMemoryPageData ( unsigned char  ucPageNumber,
unsigned char &  ucIndicator,
unsigned char *  pucMemoryPageData 
)

Read complete Page with command [0x20]: Read Single Block in a loop.

Parameters:
[in]ucPageNumberPage Numer
[out]ucIndicatorError indicator, if > 0
[out]pucMemoryPageDataPointer to array with 32 byte Transponder data
Returns:
  • 0 if OK
  • < 0 [error code](OBID::FEDM::Core::Error)
  • > 0 status byte of the responded protocol, if the Reader signals a problem. See Reader's System Manual for the full list with all status bytes.

Description
Detailed description about the method can be found in:

  • Product Datasheet for MAX66040 from MAXIM

Definition at line 416 of file FedmIscTagHandler_ISO14443_4_Maxim_MAX66040.cpp.

int FedmIscTagHandler_ISO14443_4_Maxim_MAX66040::LockAFI ( unsigned char &  ucIndicator)

Command [0x28]: Lock AFI.

Returns:
  • 0 if OK
  • < 0 [error code](OBID::FEDM::Core::Error)
  • > 0 status byte of the responded protocol, if the Reader signals a problem. See Reader's System Manual for the full list with all status bytes.

Description
This method is realized with Reader command [0xB2][0xBE] : T=CL APDU for synchronous call.
Detailed description about the command and the parameters can be found in:

  • Product Datasheet for MAX66040 from MAXIM

Definition at line 1202 of file FedmIscTagHandler_ISO14443_4_Maxim_MAX66040.cpp.

int FedmIscTagHandler_ISO14443_4_Maxim_MAX66040::ReadBuffer ( unsigned char &  ucIndicator,
unsigned char &  ucBlockNumber,
unsigned char *  pucReadWriteBufferData 
)

Command [0xA2]: Read Buffer.

Returns:
  • 0 if OK
  • < 0 [error code](OBID::FEDM::Core::Error)
  • > 0 status byte of the responded protocol, if the Reader signals a problem. See Reader's System Manual for the full list with all status bytes.

Description
This method is realized with Reader command [0xB2][0xBE] : T=CL APDU for synchronous call.
Detailed description about the command and the parameters can be found in:

  • Product Datasheet for MAX66040 from MAXIM

Definition at line 733 of file FedmIscTagHandler_ISO14443_4_Maxim_MAX66040.cpp.

int FedmIscTagHandler_ISO14443_4_Maxim_MAX66040::ReadSingleBlock ( unsigned char  ucBlockNumber,
unsigned char &  ucIndicator,
unsigned char *  pucMemoryData 
)

Command [0x20]: Read Single Block.

Returns:
  • 0 if OK
  • < 0 [error code](OBID::FEDM::Core::Error)
  • > 0 status byte of the responded protocol, if the Reader signals a problem. See Reader's System Manual for the full list with all status bytes.

Description
This method is realized with Reader command [0xB2][0xBE] : T=CL APDU for synchronous call.
Detailed description about the command and the parameters can be found in:

  • Product Datasheet for MAX66040 from MAXIM

Definition at line 851 of file FedmIscTagHandler_ISO14443_4_Maxim_MAX66040.cpp.

int FedmIscTagHandler_ISO14443_4_Maxim_MAX66040::ReadSingleBlockWithBlockSecurity ( unsigned char  ucBlockNumber,
unsigned char &  ucIndicator,
unsigned char &  ucSecurityStatus,
unsigned char *  pucMemoryData 
)

Command [0xB0]: Read Single Block with Block SEcurity.

Returns:
  • 0 if OK
  • < 0 [error code](OBID::FEDM::Core::Error)
  • > 0 status byte of the responded protocol, if the Reader signals a problem. See Reader's System Manual for the full list with all status bytes.

Description
This method is realized with Reader command [0xB2][0xBE] : T=CL APDU for synchronous call.
Detailed description about the command and the parameters can be found in:

  • Product Datasheet for MAX66040 from MAXIM

Definition at line 909 of file FedmIscTagHandler_ISO14443_4_Maxim_MAX66040.cpp.

Method to generate new random challenge.

Description
Detailed description about the method can be found in:

  • Product Datasheet for MAX66040 from MAXIM

Definition at line 563 of file FedmIscTagHandler_ISO14443_4_Maxim_MAX66040.cpp.

int FedmIscTagHandler_ISO14443_4_Maxim_MAX66040::UserComputeCopyBufferMAC ( unsigned char *  pucSecret,
unsigned char *  pucMemoryPageData,
unsigned char *  pucReadWriteBufferData,
unsigned char *  pucIntegrityBytes,
unsigned char  pucPageNumber,
unsigned char *  pucUID,
unsigned char *  pucMAC 
)

Helper method to compute Page MAC.

Parameters:
[in]pucSecretSecret value
[in]pucMemoryPageDataMemory page must match memory page number in CopyBuffer()
[in]pucReadWriteBufferDataThis value must match data in read/write Buffer
[in]pucIntegrityBytesIntegrity bytes(write counter) of datablock
[in]pucPageNumberNumber of page used in CopyBuffer()
[in]pucUIDUID of tag
[out]pucMACComputed page MAC
Returns:

Description
Detailed description about the method can be found in:

  • Product Datasheet for MAX66040 from MAXIM

Definition at line 302 of file FedmIscTagHandler_ISO14443_4_Maxim_MAX66040.cpp.

int FedmIscTagHandler_ISO14443_4_Maxim_MAX66040::UserComputePageMAC ( unsigned char *  pucSecret,
unsigned char *  pucMemoryPageData,
unsigned char  ucPageNumber,
unsigned char *  pucUID,
unsigned char *  pucMAC 
)

Helper method to compute Page MAC.

Parameters:
[in]pucSecretRequest flags byte
[in]pucMemoryPageData32byte memory page data
[in]ucPageNumberNumber of page involved in computation
[in]pucUIDUID of tag
[out]pucMACComputed page MAC
Returns:

Description
Detailed description about the method can be found in:

  • Product Datasheet for MAX66040 from MAXIM

Definition at line 101 of file FedmIscTagHandler_ISO14443_4_Maxim_MAX66040.cpp.

int FedmIscTagHandler_ISO14443_4_Maxim_MAX66040::UserComputeSecret ( unsigned char *  pucSecret,
unsigned char *  pucMemoryPageData,
unsigned char *  pucPartialSecret,
unsigned char *  pucNewSecret 
)

Helper method to compute a new Secret Value.

Parameters:
[in]pucSecretOld secret value
[in]pucMemoryPageDataMemory page must match memory page number in GenerateSecret()
[in]pucPartialSecretThis value must match partial secret value in GenerateSecret()
[out]pucNewSecretComputed new secret
Returns:

Description
Detailed description about the method can be found in:

  • Product Datasheet for MAX66040 from MAXIM

Definition at line 213 of file FedmIscTagHandler_ISO14443_4_Maxim_MAX66040.cpp.

int FedmIscTagHandler_ISO14443_4_Maxim_MAX66040::WriteAFI ( unsigned char  ucAfiValue,
unsigned char &  ucIndicator 
)

Command [0x27]: Write AFI.

Returns:
  • 0 if OK
  • < 0 [error code](OBID::FEDM::Core::Error)
  • > 0 status byte of the responded protocol, if the Reader signals a problem. See Reader's System Manual for the full list with all status bytes.

Description
This method is realized with Reader command [0xB2][0xBE] : T=CL APDU for synchronous call.
Detailed description about the command and the parameters can be found in:

  • Product Datasheet for MAX66040 from MAXIM

Definition at line 1160 of file FedmIscTagHandler_ISO14443_4_Maxim_MAX66040.cpp.

int FedmIscTagHandler_ISO14443_4_Maxim_MAX66040::WriteBuffer ( unsigned char  ucBlockNumber,
unsigned char *  pucNewBlockData,
unsigned char &  ucIndicator 
)

Command [0xA1]: Write Buffer.

Returns:
  • 0 if OK
  • < 0 [error code](OBID::FEDM::Core::Error)
  • > 0 status byte of the responded protocol, if the Reader signals a problem. See Reader's System Manual for the full list with all status bytes.

Description
This method is realized with Reader command [0xB2][0xBE] : T=CL APDU for synchronous call.
Detailed description about the command and the parameters can be found in:

  • Product Datasheet for MAX66040 from MAXIM

Definition at line 679 of file FedmIscTagHandler_ISO14443_4_Maxim_MAX66040.cpp.


Friends And Related Function Documentation

friend class FEDM_ISCReader [friend]
friend class FEDM_ISCReaderModule [friend]
friend class FEDM_ISOTabItem [friend]

Member Data Documentation

Reimplemented from FedmIscTagHandler_ISO14443_4.

Definition at line 344 of file FedmIscTagHandler_ISO14443_4_Maxim_MAX66040.h.

Reimplemented from FedmIscTagHandler_ISO14443_4.

Definition at line 345 of file FedmIscTagHandler_ISO14443_4_Maxim_MAX66040.h.


The documentation for this class was generated from the following files:


maggie_rfid_drivers
Author(s): Raul Perula-Martinez
autogenerated on Mon Sep 14 2015 03:05:32