FedmIscTagHandler_ISO15693_Maxim_MAX66140.h
Go to the documentation of this file.
00001 /*-------------------------------------------------------
00002 |                                                       |
00003 |      FedmIscTagHandler_ISO15693_Maxim_MAX66140.h              |
00004 |                                                       |
00005 ---------------------------------------------------------
00006 
00007 Copyright © 2010-2011   FEIG ELECTRONIC GmbH, All Rights Reserved.
00008                                                 Lange Strasse 4
00009                                                 D-35781 Weilburg
00010                                                 Federal Republic of Germany
00011                                                 phone    : +49 6471 31090
00012                                                 fax      : +49 6471 310999
00013                                                 e-mail   : obid-support@feig.de
00014                                                 Internet : http://www.feig.de
00015                                         
00016 Author                  :       Marcel Raner
00017 Begin                   :       20.09.2010
00018 
00019 Version                 :       03.03.02 / 29.04.2011 / M. Raner, M. Hultsch
00020 
00021 Operation Systems       :       independent
00022 
00023 Function                        :       class for OBID i-scan® HF transponder ISO15693 of manufacturer MAXIM
00024 
00025 NOTE                            :       this class supports selected, addressed and Nonaddressed mode in Host-Mode
00026 
00027 
00028 Trademarks:
00029 -----------
00030 OBID®, OBID i-scan® and OBID myAXXESS® are registered Trademarks of FEIG ELECTRONIC GmbH
00031 Other Trademarks: see FEDM.h
00032 */
00033 
00034 #if !defined(_FEDM_ISC_TAG_HANDLER_ISO15693_MAXIM_MAX66140_H_INCLUDED_)
00035 #define _FEDM_ISC_TAG_HANDLER_ISO15693_MAXIM_MAX66140_H_INCLUDED_
00036 
00037 #if !defined(_FEDM_NO_TAG_HANDLER_ISO15693)
00038 
00039 #include "../../FEDM.h"
00040 #include "FedmIscTagHandler_ISO15693_Maxim.h"
00041 
00042 class FEDM_ISOTabItem;
00043 
00051 class _FEDM_ISC_CORE_EXT_CLASS FedmIscTagHandler_ISO15693_Maxim_MAX66140 : public FedmIscTagHandler_ISO15693_Maxim
00052 {
00053 public:
00054 
00055         // friend classes have access rights to protected members
00056         friend class FEDM_ISCReaderModule;
00057         friend class FEDM_ISCReader;
00058         friend class FEDM_ISOTabItem;
00059 
00060         // set all data members to 0
00061         //virtual void Init();
00062 
00063         int UserComputePageMAC(                 unsigned char* pucSecret, 
00064                                                                         unsigned char* pucMemoryPageData, 
00065                                                                         unsigned char ucPageNumber, 
00066                                                                         unsigned char* pucUID,
00067                                                                         unsigned char* pucMAC);
00068 
00069         int     UserComputeSecret(                      unsigned char* pucSecret, 
00070                                                                         unsigned char* pucMemoryPageData, 
00071                                                                         unsigned char* pucPartialSecret, 
00072                                                                         unsigned char* pucNewSecret);
00073 
00074         int UserComputeCopyBufferMAC(   unsigned char* pucSecret, 
00075                                                                         unsigned char* pucMemoryPageData, 
00076                                                                         unsigned char* pucReadWriteBufferData, 
00077                                                                         unsigned char* pucIntegrityBytes,
00078                                                                         unsigned char pucPageNumber, 
00079                                                                         unsigned char* pucUID,
00080                                                                         unsigned char* pucMAC);
00081 
00082         int GetMemoryPageData(                  unsigned char ucRequestFlags, 
00083                                                                         unsigned char ucPageNumber, 
00084                                                                         unsigned char& ucResponseFlags, 
00085                                                                         unsigned char* pucMemoryPageData);
00086 
00087         int UpdateChallenge();
00088 
00098         int GenerateSecret(                             unsigned char ucRequestFlags,
00099                                                                         unsigned char ucControlByte,
00100                                                                         unsigned char* pucPartialSecret,
00101                                                                         unsigned char& ucResponseFlags,
00102                                                                         unsigned char& ucPageCRCStatus);
00103 
00113         int WriteBuffer(                                unsigned char ucRequestFlags,
00114                                                                         unsigned char ucBlockNumber,
00115                                                                         unsigned char* pucNewBlockData,
00116                                                                         unsigned char& ucResponseFlags);
00117 
00127         int ReadBuffer(                                 unsigned char ucRequestFlags,
00128                                                                         unsigned char& pucResponseFlags,
00129                                                                         unsigned char& ucBlockNumber,
00130                                                                         unsigned char* pucReadWriteBufferData);
00131 
00141         int CopyBuffer(                                 unsigned char ucRequestFlags,
00142                                                                         unsigned char ucBlockNumber,
00143                                                                         unsigned char* pucMAC,
00144                                                                         unsigned char& ucResponseFlags,
00145                                                                         unsigned char& ucPageCRCStatus);
00146 
00156         int ReadSingleBlock(                    unsigned char ucRequestFlags,
00157                                                                         unsigned char ucBlockNumber,
00158                                                                         unsigned char& ucResponseFlags,
00159                                                                         unsigned char& ucSecurityStatus,
00160                                                                         unsigned char* pucMemoryData);
00161 
00171         int CustomReadBlock(                    unsigned char ucRequestFlags,
00172                                                                         unsigned char ucBlockNumber,
00173                                                                         unsigned char& ucResponseFlags,
00174                                                                         unsigned char& ucSecurityStatus,
00175                                                                         unsigned char* pucMemoryData,
00176                                                                         unsigned char* pucIntegrityBytes);
00177 
00187         int ComputePageMAC(                             unsigned char ucRequestFlags,
00188                                                                         unsigned char ucPageNumber,
00189                                                                         unsigned char& ucResponseFlags,
00190                                                                         unsigned char& ucPageCRCStatus,
00191                                                                         unsigned char* pucMAC);
00192 
00193 protected:
00194         // constructor
00195         FedmIscTagHandler_ISO15693_Maxim_MAX66140(FEDM_ISCReader* pReader, FEDM_ISOTabItem* pTabItem);
00196         // 2. constructor
00197         FedmIscTagHandler_ISO15693_Maxim_MAX66140(FEDM_ISCReader* pReader, unsigned int uiTagHandlerType, FEDM_ISOTabItem* pTabItem);
00198         // destructor
00199         virtual ~FedmIscTagHandler_ISO15693_Maxim_MAX66140();
00200 
00201         int ComputeMAC(unsigned char* ucM, unsigned int* uiMAC);
00202 
00203         unsigned char m_ucRequestData[64];
00204         unsigned char m_ucResponseData[256];
00205 
00206         unsigned char ucChallenge[5];
00207 
00208 };
00209 
00210 #endif // #if !defined(_FEDM_NO_TAG_HANDLER_ISO15693)
00211 
00212 #endif // !defined(_FEDM_ISC_TAG_HANDLER_ISO15693_MAXIM_MAX66140_H_INCLUDED_)


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