u2f over nfc

https://github.com/flipperdevices/flipperzero-firmware/pull/1755
from @devsnek

may need more testing
This commit is contained in:
jbohack
2023-01-11 19:15:06 -05:00
parent d0d0e8d1d8
commit ea0b5488ad
13 changed files with 327 additions and 66 deletions

View File

@@ -206,10 +206,7 @@ bool furi_hal_nfc_activate_nfca(uint32_t timeout, uint32_t* cuid) {
}
bool furi_hal_nfc_listen(
uint8_t* uid,
uint8_t uid_len,
uint8_t* atqa,
uint8_t sak,
FuriHalNfcDevData* nfc_data,
bool activate_after_sak,
uint32_t timeout) {
rfalNfcState state = rfalNfcGetState();
@@ -232,16 +229,19 @@ bool furi_hal_nfc_listen(
.notifyCb = NULL,
.activate_after_sak = activate_after_sak,
};
if(FURI_BIT(sak, 5)) {
if (nfc_data->interface == FuriHalNfcInterfaceIsoDep) {
params.compMode = RFAL_COMPLIANCE_MODE_ISO;
}
else if (FURI_BIT(nfc_data->sak, 5)) {
params.compMode = RFAL_COMPLIANCE_MODE_EMV;
} else {
params.compMode = RFAL_COMPLIANCE_MODE_NFC;
}
params.lmConfigPA.nfcidLen = uid_len;
memcpy(params.lmConfigPA.nfcid, uid, uid_len);
params.lmConfigPA.SENS_RES[0] = atqa[0];
params.lmConfigPA.SENS_RES[1] = atqa[1];
params.lmConfigPA.SEL_RES = sak;
params.lmConfigPA.nfcidLen = nfc_data->uid_len;
memcpy(params.lmConfigPA.nfcid, nfc_data->uid, nfc_data->uid_len);
params.lmConfigPA.SENS_RES[0] = nfc_data->atqa[0];
params.lmConfigPA.SENS_RES[1] = nfc_data->atqa[1];
params.lmConfigPA.SEL_RES = nfc_data->sak;
rfalNfcDiscover(&params);
// Disable EMD suppression.