00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 #if !defined(_FEDM_ISC_TAG_HANDLER_ISO14443_4_MIFARE_PLUS_SL3_H_INCLUDED_)
00035 #define _FEDM_ISC_TAG_HANDLER_ISO14443_4_MIFARE_PLUS_SL3_H_INCLUDED_
00036
00037 #if !defined(_FEDM_NO_TAG_HANDLER_ISO14443)
00038
00039 #include "../../FEDM.h"
00040 #include "FedmIscTagHandler_ISO14443_4_MIFARE_Plus.h"
00041
00042 class FEDM_ISOTabItem;
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00069 class _FEDM_ISC_CORE_EXT_CLASS FedmIscTagHandler_ISO14443_4_MIFARE_Plus_SL3 : public FedmIscTagHandler_ISO14443_4_MIFARE_Plus
00070 {
00071 public:
00072
00073
00074 friend class FEDM_ISCReaderModule;
00075 friend class FEDM_ISCReader;
00076 friend class FEDM_ISOTabItem;
00077
00078
00079
00080
00081
00082
00095 int ResetAuthentication();
00096
00109 int Read_Encrypted( unsigned int uiBlockNo,
00110 unsigned char ucExt,
00111 unsigned char* pucResponseData );
00112
00125 int Read_EncryptedMaced( unsigned int uiBlockNo,
00126 unsigned char ucExt,
00127 unsigned char* pucResponseData );
00128
00141 int Read_Plain( unsigned int uiBlockNo,
00142 unsigned char ucExt,
00143 unsigned char* pucResponseData );
00144
00157 int Read_PlainMaced( unsigned int uiBlockNo,
00158 unsigned char ucExt,
00159 unsigned char* pucResponseData );
00160
00173 int Read_EncryptedUnmaced( unsigned int uiBlockNo,
00174 unsigned char ucExt,
00175 unsigned char* pucResponseData );
00176
00189 int Read_EncryptedUnmaced_RespondMaced( unsigned int uiBlockNo,
00190 unsigned char ucExt,
00191 unsigned char* pucResponseData );
00192
00205 int Read_PlainUnmaced( unsigned int uiBlockNo,
00206 unsigned char ucExt,
00207 unsigned char* pucResponseData );
00208
00221 int Read_PlainUnmaced_RespondMaced( unsigned int uiBlockNo,
00222 unsigned char ucExt,
00223 unsigned char* pucResponseData );
00224
00237 int Write_Encrypted( unsigned int uiBlockNo,
00238 unsigned char ucLength,
00239 unsigned char* pucRequestData );
00240
00253 int Write_EncryptedMaced( unsigned int uiBlockNo,
00254 unsigned char ucLength,
00255 unsigned char* pucRequestData );
00256
00269 int Write_Plain( unsigned int uiBlockNo,
00270 unsigned char ucLength,
00271 unsigned char* pucRequestData );
00272
00285 int Write_PlainMaced( unsigned int uiBlockNo,
00286 unsigned char ucLength,
00287 unsigned char* pucRequestData );
00288
00301 int Increment_Encrypted( unsigned int uiSourceBlockNo,
00302 unsigned int uiData );
00303
00316 int Increment_EncryptedMaced( unsigned int uiSourceBlockNo,
00317 unsigned int uiData );
00318
00331 int Decrement_Encrypted( unsigned int uiSourceBlockNo,
00332 unsigned int uiData );
00333
00346 int Decrement_EncryptedMaced( unsigned int uiSourceBlockNo,
00347 unsigned int uiData );
00348
00361 int Transfer( unsigned int uiDestinationBlockNo );
00362
00375 int Transfer_Maced( unsigned int uiDestinationBlockNo );
00376
00389 int Increment_Transfer_Encrypted( unsigned int uiSourceBlockNo,
00390 unsigned int uiDestinationBlockNo,
00391 unsigned int uiData );
00392
00405 int Increment_Transfer_EncryptedMaced( unsigned int uiSourceBlockNo,
00406 unsigned int uiDestinationBlockNo,
00407 unsigned int uiData );
00408
00421 int Decrement_Transfer_Encrypted( unsigned int uiSourceBlockNo,
00422 unsigned int uiDestinationBlockNo,
00423 unsigned int uiData );
00424
00437 int Decrement_Transfer_EncryptedMaced( unsigned int uiSourceBlockNo,
00438 unsigned int uiDestinationBlockNo,
00439 unsigned int uiData );
00440
00453 int Restore( unsigned int uiSourceBlockNo );
00454
00467 int Restore_Maced( unsigned int uiSourceBlockNo );
00468
00469
00470 protected:
00471
00472 FedmIscTagHandler_ISO14443_4_MIFARE_Plus_SL3(FEDM_ISCReader* pReader, FEDM_ISOTabItem* pTabItem);
00473
00474 FedmIscTagHandler_ISO14443_4_MIFARE_Plus_SL3(FEDM_ISCReader* pReader, unsigned int uiTagHandlerType, FEDM_ISOTabItem* pTabItem);
00475
00476 virtual ~FedmIscTagHandler_ISO14443_4_MIFARE_Plus_SL3();
00477
00478 int Read( unsigned char ucCmdByte,
00479 unsigned int uiBlockNo,
00480 unsigned char ucExt,
00481 unsigned char* pucResponseData );
00482
00483 int Write( unsigned char ucCmdByte,
00484 unsigned int uiBlockNo,
00485 unsigned char ucLength,
00486 unsigned char* pucRequestData );
00487
00488 };
00489
00490 #endif // #if !defined(_FEDM_NO_TAG_HANDLER_ISO14443)
00491
00492 #endif // !defined(_FEDM_ISC_TAG_HANDLER_ISO14443_4_MIFARE_PLUS_SL3_H_INCLUDED_)