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>
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 |
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:
Definition at line 55 of file FedmIscTagHandler_ISO14443_4_Maxim_MAX66040.h.
FedmIscTagHandler_ISO14443_4_Maxim_MAX66040::FedmIscTagHandler_ISO14443_4_Maxim_MAX66040 | ( | FEDM_ISCReader * | pReader, |
FEDM_ISOTabItem * | pTabItem | ||
) | [protected] |
Definition at line 56 of file FedmIscTagHandler_ISO14443_4_Maxim_MAX66040.cpp.
FedmIscTagHandler_ISO14443_4_Maxim_MAX66040::FedmIscTagHandler_ISO14443_4_Maxim_MAX66040 | ( | FEDM_ISCReader * | pReader, |
unsigned int | uiTagHandlerType, | ||
FEDM_ISOTabItem * | pTabItem | ||
) | [protected] |
Definition at line 65 of file FedmIscTagHandler_ISO14443_4_Maxim_MAX66040.cpp.
FedmIscTagHandler_ISO14443_4_Maxim_MAX66040::~FedmIscTagHandler_ISO14443_4_Maxim_MAX66040 | ( | ) | [protected, virtual] |
Definition at line 75 of file FedmIscTagHandler_ISO14443_4_Maxim_MAX66040.cpp.
int FedmIscTagHandler_ISO14443_4_Maxim_MAX66040::ComputeMAC | ( | unsigned char * | pucM, |
unsigned int * | puiMAC | ||
) |
Helper method to compute a MAC.
[in] | pucM | Input data of sixteen 32-bit Words |
[out] | puiMAC | Computed MAC |
Description
Detailed description about the method can be found in:
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.
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:
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.
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:
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.
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:
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.
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:
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.
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:
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.
[in] | ucPageNumber | Page Numer |
[out] | ucIndicator | Error indicator, if > 0 |
[out] | pucMemoryPageData | Pointer to array with 32 byte Transponder data |
Description
Detailed description about the method can be found in:
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.
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:
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.
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:
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.
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:
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.
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:
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:
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.
[in] | pucSecret | Secret value |
[in] | pucMemoryPageData | Memory page must match memory page number in CopyBuffer() |
[in] | pucReadWriteBufferData | This value must match data in read/write Buffer |
[in] | pucIntegrityBytes | Integrity bytes(write counter) of datablock |
[in] | pucPageNumber | Number of page used in CopyBuffer() |
[in] | pucUID | UID of tag |
[out] | pucMAC | Computed page MAC |
Description
Detailed description about the method can be found in:
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.
[in] | pucSecret | Request flags byte |
[in] | pucMemoryPageData | 32byte memory page data |
[in] | ucPageNumber | Number of page involved in computation |
[in] | pucUID | UID of tag |
[out] | pucMAC | Computed page MAC |
Description
Detailed description about the method can be found in:
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.
[in] | pucSecret | Old secret value |
[in] | pucMemoryPageData | Memory page must match memory page number in GenerateSecret() |
[in] | pucPartialSecret | This value must match partial secret value in GenerateSecret() |
[out] | pucNewSecret | Computed new secret |
Description
Detailed description about the method can be found in:
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.
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:
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.
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:
Definition at line 679 of file FedmIscTagHandler_ISO14443_4_Maxim_MAX66040.cpp.
friend class FEDM_ISCReader [friend] |
Reimplemented from FedmIscTagHandler_ISO14443_4_Maxim.
Definition at line 61 of file FedmIscTagHandler_ISO14443_4_Maxim_MAX66040.h.
friend class FEDM_ISCReaderModule [friend] |
Reimplemented from FedmIscTagHandler_ISO14443_4_Maxim.
Definition at line 60 of file FedmIscTagHandler_ISO14443_4_Maxim_MAX66040.h.
friend class FEDM_ISOTabItem [friend] |
Reimplemented from FedmIscTagHandler_ISO14443_4_Maxim.
Definition at line 62 of file FedmIscTagHandler_ISO14443_4_Maxim_MAX66040.h.
unsigned char FedmIscTagHandler_ISO14443_4_Maxim_MAX66040::m_ucRequestData[64] [protected] |
Reimplemented from FedmIscTagHandler_ISO14443_4.
Definition at line 344 of file FedmIscTagHandler_ISO14443_4_Maxim_MAX66040.h.
unsigned char FedmIscTagHandler_ISO14443_4_Maxim_MAX66040::m_ucResponseData[256] [protected] |
Reimplemented from FedmIscTagHandler_ISO14443_4.
Definition at line 345 of file FedmIscTagHandler_ISO14443_4_Maxim_MAX66040.h.
unsigned char FedmIscTagHandler_ISO14443_4_Maxim_MAX66040::ucChallenge[5] [protected] |
Definition at line 347 of file FedmIscTagHandler_ISO14443_4_Maxim_MAX66040.h.