From a9be45febde308d811970ad99d4a01a830aa9d4d Mon Sep 17 00:00:00 2001 From: frankmorgner Date: Tue, 16 Nov 2010 09:47:49 +0000 Subject: [PATCH] fixed intialization issues of libnfc relay git-svn-id: https://vsmartcard.svn.sourceforge.net/svnroot/vsmartcard@363 96b47cad-a561-4643-ad3b-153ac7d7599c --- pcsc-relay/src/lnfc.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/pcsc-relay/src/lnfc.c b/pcsc-relay/src/lnfc.c index a563c58..7a6a2b1 100644 --- a/pcsc-relay/src/lnfc.c +++ b/pcsc-relay/src/lnfc.c @@ -114,6 +114,17 @@ static int lnfc_connect(driver_data_t **driver_data) .nm.nbr = NBR_106, }; + /* fix emulation issues. Initialisation taken from nfc-relay-picc */ + // We can only emulate a short UID, so fix length & ATQA bit: + ntEmulatedTarget.nti.nai.szUidLen = 4; + ntEmulatedTarget.nti.nai.abtAtqa[1] &= (0xFF-0x40); + // First byte of UID is always automatically replaced by 0x08 in this mode anyway + ntEmulatedTarget.nti.nai.abtUid[0] = 0x08; + ntEmulatedTarget.nti.nai.abtAts[0] = 0x75; + ntEmulatedTarget.nti.nai.abtAts[1] = 0x33; + ntEmulatedTarget.nti.nai.abtAts[2] = 0x92; + ntEmulatedTarget.nti.nai.abtAts[3] = 0x03; + if (!driver_data) return 0;