00001 /*------------------------------------------------------- 00002 | | 00003 | FedmIscTagHandler_ISO14443_4_MIFARE_DESFire.h | 00004 | | 00005 --------------------------------------------------------- 00006 00007 Copyright © 2009-2010 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 : Markus Hultsch 00017 Begin : 30.03.2009 00018 00019 Version : 03.02.07 / 10.11.2010 / M. Hultsch 00020 00021 Operation Systems : independent 00022 00023 Function : interface class for OBID® classic-pro transponder ISO14443-4 MIFARE DESFire 00024 00025 NOTE : this class supports only selected 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_ISO14443_4_MIFARE_DESFIRE_H_INCLUDED_) 00035 #define _FEDM_ISC_TAG_HANDLER_ISO14443_4_MIFARE_DESFIRE_H_INCLUDED_ 00036 00037 #if !defined(_FEDM_NO_TAG_HANDLER_ISO14443) 00038 00039 #include "../../FEDM.h" 00040 #include "FedmIscTagHandler_ISO14443_4.h" 00041 #include "FedmIscTagHandler_ISO14443_4_MIFARE_DESFire_Impl_C1.h" 00042 #include "FedmIscTagHandler_ISO14443_4_MIFARE_DESFire_Impl_C3.h" 00043 #include "FedmIscTagHandler_ISO14443_4_MIFARE_DESFire_SoftCrypto.h" 00044 #include "FedmIscTagHandler_ISO14443_4_MIFARE_DESFire_FlexSoftCrypto.h" 00045 #include "FedmIscTagHandler_ISO14443_4_MIFARE_DESFire_SamCrypto.h" 00046 00047 class FEDM_ISOTabItem; 00048 00049 00050 00051 //##################################################################################### 00052 // constants 00053 //##################################################################################### 00054 00055 00056 00057 00058 00059 //#################################################################### 00060 // class FedmIscTagHandler_ISO14443_4_MIFARE_DESFire 00061 // >> supports only ISO Host Commands << 00062 //#################################################################### 00063 00083 class _FEDM_ISC_CORE_EXT_CLASS FedmIscTagHandler_ISO14443_4_MIFARE_DESFire : public FedmIscTagHandler_ISO14443_4 00084 { 00085 public: 00086 00087 // friend classes have access rights to protected members 00088 friend class FEDM_ISCReaderModule; 00089 friend class FEDM_ISCReader; 00090 friend class FEDM_ISOTabItem; 00091 friend class FedmIscTagHandler_ISO14443_4_MIFARE_DESFire_Impl_C1; 00092 friend class FedmIscTagHandler_ISO14443_4_MIFARE_DESFire_Impl_C3; 00093 friend class FedmIscTagHandler_ISO14443_4_MIFARE_DESFire_SoftCrypto; 00094 friend class FedmIscTagHandler_ISO14443_4_MIFARE_DESFire_FlexSoftCrypto; 00095 friend class FedmIscTagHandler_ISO14443_4_MIFARE_DESFire_SamCrypto; 00096 00097 00102 virtual void Init(); 00103 00104 public: 00108 static const unsigned int PLAIN_COMMUNICATION; 00112 static const unsigned int PLAIN_SECURED_BY_MAC; 00116 static const unsigned int FULLY_ENCIPHERED; 00117 00122 FedmIscTagHandler_ISO14443_4_MIFARE_DESFire_SoftCrypto ISoftCrypto; 00123 00128 FedmIscTagHandler_ISO14443_4_MIFARE_DESFire_FlexSoftCrypto IFlexSoftCrypto; 00129 00134 FedmIscTagHandler_ISO14443_4_MIFARE_DESFire_SamCrypto ISamCrypto; 00135 00136 protected: 00137 // constructor 00138 FedmIscTagHandler_ISO14443_4_MIFARE_DESFire(FEDM_ISCReader* pReader, 00139 FEDM_ISOTabItem* pTabItem); 00140 // 2. constructor 00141 FedmIscTagHandler_ISO14443_4_MIFARE_DESFire(FEDM_ISCReader* pReader, 00142 unsigned int uiTagHandlerType, 00143 FEDM_ISOTabItem* pTabItem); 00144 // destructor 00145 virtual ~FedmIscTagHandler_ISO14443_4_MIFARE_DESFire(); 00146 00147 FedmIscTagHandler_ISO14443_4_MIFARE_DESFire_Impl_C1* m_pImpl_C1; 00148 FedmIscTagHandler_ISO14443_4_MIFARE_DESFire_Impl_C3* m_pImpl_C3; 00149 00150 }; 00151 00152 #endif // #if !defined(_FEDM_NO_TAG_HANDLER_ISO14443) 00153 00154 #endif // !defined(_FEDM_ISC_TAG_HANDLER_ISO14443_4_MIFARE_DESFIRE_H_INCLUDED_)