Пример #1
0
 def DESFire_send_command(self, cmd):
     command_tlv = MifareCommandTLV(COMMAND_TAG_DESFIRE_COMMAND)
     command_tlv.set_command(cmd)
     command = command_tlv.serialize()
     response = self.__interface.transmit_sc_command(command)
     response_tlv = MifareResponseTLV(response)
     return response_tlv.get_error(), response_tlv.get_desfire_data()
     
Пример #2
0
 def M1_setup(self):
     '''
     @brief: Mifare setup to clone card.
     @return error_code, 0 if succeeded.
     '''
     command_tlv = MifareCommandTLV(COMMAND_TAG_SETUP)
     command = command_tlv.serialize()
     response = self.__interface.transmit_sc_command(command)
     response_tlv = MifareResponseTLV(response)
     return response_tlv.get_error()
Пример #3
0
 def M1_transfer(self, block_number):
     '''
     @brief: Mifare transfer buffer data to block.
     @param block_number: block number.
     @return error_code, 0 if succeeded.
     '''
     command_tlv = MifareCommandTLV(COMMAND_TAG_TRANSFER)
     command_tlv.set_block_number(block_number)
     command = command_tlv.serialize()
     response = self.__interface.transmit_sc_command(command)
     response_tlv = MifareResponseTLV(response)
     return response_tlv.get_error()
Пример #4
0
 def M1_write_block(self, block_number, block_data):
     '''
     @brief: Mifare write block data.
     @param block_number: block number.
     @param block_data: block data to write.
     @return error_code, 0 if succeeded.
     '''
     print(block_number)
     print(len(block_data))
     for i in range(len(block_data)):
         print('%02X' %(ord(block_data[i]))),
     command_tlv = MifareCommandTLV(COMMAND_TAG_WRITE_BLOCK)
     command_tlv.set_block_number(block_number)
     command_tlv.set_block_data(block_data)
     command_tlv.set_rw_len(len(block_data))
     command = command_tlv.serialize()
     response = self.__interface.transmit_sc_command(command)
     response_tlv = MifareResponseTLV(response)
     return response_tlv.get_error()
Пример #5
0
 def M1_read_block(self, block_number):
     '''
     @brief: Mifare read block data.
     @param block_number: block number.
     @return: error_code, 0 if succeeded; block_data
     '''
     command_tlv = MifareCommandTLV(COMMAND_TAG_READ_BLOCK)
     command_tlv.set_block_number(block_number)
     command_tlv.set_rw_len(0x10)
     command = command_tlv.serialize()
     response = self.__interface.transmit_sc_command(command)
     response_tlv = MifareResponseTLV(response)
     return response_tlv.get_error(), response_tlv.get_block_data()
Пример #6
0
 def M1_decrement(self, block_number, dec_operand):
     '''
     @brief: Mifare decrement block data.
     @param block_number: block number.
     @param inc_operand: decrement operand.
     @return error_code, 0 if succeeded.
     '''
     command_tlv = MifareCommandTLV(COMMAND_TAG_DECREMENT)
     command_tlv.set_block_number(block_number)
     command_tlv.set_incdec_operand(dec_operand)
     command = command_tlv.serialize()
     response = self.__interface.transmit_sc_command(command)
     response_tlv = MifareResponseTLV(response)
     return response_tlv.get_error()
Пример #7
0
 def M1_authentication(self, block_number, key_type, key, uid):
     '''
     @brief: Mifare authentication.
     @param block_number: block number.
     @param key_type: type of authentication key, 0 for KeyA, 1 for keyB.
     @param key: key value.
     @param uid: card uid.
     @return: error_code, 0 if succeeded.
     '''
     command_tlv = MifareCommandTLV(COMMAND_TAG_AUTHENTICATION)
     command_tlv.set_block_number(block_number)
     command_tlv.set_key_type(key_type)
     command_tlv.set_key_value(key)
     command_tlv.set_uid(uid)
     command = command_tlv.serialize()
     response = self.__interface.transmit_sc_command(command)
     response_tlv = MifareResponseTLV(response)
     return response_tlv.get_error()