Slight improvements

This commit is contained in:
2026-05-22 21:56:30 +02:00
parent b81b6954ef
commit 92eef82e0a

View File

@@ -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)