डेसफायर के साथ परीक्षण करते हुए, मैंने निम्नलिखित एटीएस को उठाया: 0x75 0x77 0x81 0x02 0x80

मैं जो बता सकता हूं, उससे ISO/IEC 14443-4 कहता है कि पहला बाइट "लंबाई बाइट" होनी चाहिए और एटीएस के हिस्से के रूप में भेजे गए बाइट्स की कुल संख्या को इंगित करना चाहिए। तो, पहला बाइट 0x75 क्यों है? यदि आप पहले कुतरने की उपेक्षा करते हैं, तो मान सही है, लेकिन क्या कोई कारण है कि मुझे वास्तव में ऐसा करना चाहिए, या इस बाइट और लंबाई मान के बीच कोई संबंध नहीं है?

नोट: एटीएस को libnfc द्वारा nfc_initiator_select_passive_target के माध्यम से प्राप्त किया गया था।

1
VortixDev 13 फरवरी 2019, 00:56

1 उत्तर

सबसे बढ़िया उत्तर

एटीएस बिल्कुल ठीक है। libnfc में nt.nti.nai.abtAts में संग्रहीत मान में लंबाई बाइट शामिल नहीं है। इसके बजाय, एटीएस की लंबाई nt.nti.nai.szAtsLen में संग्रहित की जाती है। नतीजतन, पहला बाइट लंबाई बाइट नहीं बल्कि प्रारूप बाइट है। यह इंगित करता है कि TA(1), TB(1), और TC(1) मौजूद हैं (Y(1) = 7h), और यह कि FSC 64 बाइट्स (FSCI = 5h) है। शेष बाइट्स तब डीकोड करते हैं:

  • TA(1) = 77h: तीनों भाजक दोनों दिशाओं के लिए समर्थित हैं
  • TB(1) = 81h: FWT = 256 * 16 / f_c * 2^8 = 77 ms, SFGT = 256 * 16 / f_c * 2^1 = 600 हमें
  • TC(1) = 02h: CID समर्थित, NAD समर्थित नहीं
  • ऐतिहासिक बाइट्स: 80h
1
Michael Roland 13 फरवरी 2019, 09:33