Slight improvements
This commit is contained in:
@@ -49,7 +49,7 @@ def getCardService(timeout: int = 10):
|
|||||||
cardservice = cardrequest.waitforcard()
|
cardservice = cardrequest.waitforcard()
|
||||||
except CardRequestTimeoutException:
|
except CardRequestTimeoutException:
|
||||||
logger.error("No tag detected within the timeout.")
|
logger.error("No tag detected within the timeout.")
|
||||||
raise Exception
|
raise Exception("No tag detected within the timeout.")
|
||||||
return cardservice
|
return cardservice
|
||||||
|
|
||||||
def DeleteCard():
|
def DeleteCard():
|
||||||
@@ -95,26 +95,14 @@ def WriteNewCard():
|
|||||||
from app.main import scanner as scannerThread
|
from app.main import scanner as scannerThread
|
||||||
scannerThread.stop()
|
scannerThread.stop()
|
||||||
|
|
||||||
cardtype = AnyCardType()
|
cardservice = getCardService(20)
|
||||||
cardrequest = CardRequest(timeout=10, cardType=cardtype)
|
|
||||||
print("Please present DESfire tag...")
|
|
||||||
try:
|
|
||||||
cardservice = cardrequest.waitforcard()
|
|
||||||
except CardRequestTimeoutException:
|
|
||||||
logger.error("No tag detected within the timeout.")
|
|
||||||
return None
|
|
||||||
|
|
||||||
cardservice.connection.connect()
|
cardservice.connection.connect()
|
||||||
|
|
||||||
# Create Desfire object
|
|
||||||
desfire = DESFire(PCSCDevice(cardservice.connection.component))
|
desfire = DESFire(PCSCDevice(cardservice.connection.component))
|
||||||
|
|
||||||
# Create Key objects
|
# Create Key objects
|
||||||
AES_NULL_KEY_DATA = "00" * 16
|
aes_keysettings = KeySettings(key_type=DESFireKeyType.DF_KEY_AES)
|
||||||
aes_keysettings = KeySettings(
|
aes_null_key = DESFireKey(aes_keysettings, "00" * 16)
|
||||||
key_type=DESFireKeyType.DF_KEY_AES,
|
|
||||||
)
|
|
||||||
aes_null_key = DESFireKey(aes_keysettings, AES_NULL_KEY_DATA)
|
|
||||||
aes_master_key = DESFireKey(aes_keysettings, MIFARE_APP_MASTER_KEY)
|
aes_master_key = DESFireKey(aes_keysettings, MIFARE_APP_MASTER_KEY)
|
||||||
keysetting = desfire.get_key_setting()
|
keysetting = desfire.get_key_setting()
|
||||||
desKey = DESFireKey(keysetting, "00" * 8)
|
desKey = DESFireKey(keysetting, "00" * 8)
|
||||||
@@ -151,15 +139,15 @@ def WriteNewCard():
|
|||||||
|
|
||||||
# Select application
|
# Select application
|
||||||
desfire.select_application(MIFARE_APP_ID)
|
desfire.select_application(MIFARE_APP_ID)
|
||||||
#Auth again as 0key
|
|
||||||
aes_null_auth_key = DESFireKey(aes_keysettings, AES_NULL_KEY_DATA)
|
#recreate key object
|
||||||
desfire.authenticate(0x0, aes_null_auth_key)
|
desfire.authenticate(0x0, aes_null_key)
|
||||||
# Authenticate with AES key, as this has been set as the default key
|
desfire.change_key(0x0, aes_null_key, aes_master_key, 0x1)
|
||||||
aes_app_mk = DESFireKey(aes_keysettings, MIFARE_APP_MASTER_KEY)
|
|
||||||
desfire.change_key(0x0, aes_null_key, aes_app_mk, 0x1)
|
|
||||||
|
|
||||||
print("new key auth")
|
print("new key auth")
|
||||||
desfire.authenticate(0x0, aes_app_mk)
|
desfire.authenticate(0x0, aes_master_key)
|
||||||
|
|
||||||
|
aes_null_key = DESFireKey(aes_keysettings, "00" * 16)
|
||||||
|
|
||||||
#generate div data
|
#generate div data
|
||||||
diversification_data = [0x01] + uid + get_list(MIFARE_APP_ID) + get_list(MIFARE_SYS_ID)
|
diversification_data = [0x01] + uid + get_list(MIFARE_APP_ID) + get_list(MIFARE_SYS_ID)
|
||||||
|
|||||||
Reference in New Issue
Block a user