<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Taplinx iOS app reading Desfire EV2 in TapLinx SDK, TagWriter and TagInfo</title>
    <link>https://community.nxp.com/t5/TapLinx-SDK-TagWriter-and/Taplinx-iOS-app-reading-Desfire-EV2/m-p/2024926#M84</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;now the app no longer crashes. Thanks for that hint.&lt;/P&gt;&lt;P&gt;I guess to save other people a lot of time this info should go into the "UG10045.pdf" document.&lt;/P&gt;&lt;P&gt;I can now successfully select the application. I have some trouble now to get the authentication and reading of a file working. Here is the info about the card.&lt;/P&gt;&lt;P&gt;Card Type: Desfire EV2&lt;/P&gt;&lt;P&gt;Crypto: AES&lt;/P&gt;&lt;P&gt;File number: 1&lt;/P&gt;&lt;P&gt;File Type: Standard Data File&lt;/P&gt;&lt;P&gt;Communication:&amp;nbsp;Fully enciphered&lt;/P&gt;&lt;P&gt;Read access with Key Number: 1&lt;/P&gt;&lt;P&gt;File data: 10 bytes&lt;/P&gt;&lt;P&gt;Here is my current code:&lt;/P&gt;&lt;LI-CODE lang="c"&gt;desFireEV2.selectApplication(withAppID: appID) { success in
  print("selectApplication: success \(success)")
}

desFireEV2.authenticate(withCardKeyNo: 1, withAuthenticationType: .AES, withAuthKeyType: .AES128, withCommandSetForAuth:  .Native, withAuthkey: aesKey) { success in
 print("authenticate: success \(success)")
}

desFireEV2.readData(withFileNo: 1, withOffset: 0, withLength: 10) { data, success in
  print("readDataWithFileNo: success \(success) - data = \(data)")
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;Authentication returns "success = true"&lt;/P&gt;&lt;P&gt;When calling"desFireEV2.readData"&amp;nbsp;readData returns "success = false" and&amp;nbsp;I see the following in the log&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Command sent to card : F501&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;MIFARE CAPDU -&amp;gt; f501&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;[general] response.tag.type:&amp;nbsp;&lt;/STRONG&gt;&lt;STRONG&gt;DESFire&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;[general] response.responseData: {length = 1, bytes = 0xae}&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Response received : AE&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;An exception occurred: ItF9fDb&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Here are some details: com.nxp.nfclib.exceptions.PICCException: Authentication Error SW2 = -82&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;When I change the "withCommandSetForAuth" to ".ISO" I receive the following in the log&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Command sent to card : 90F50000010100&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;MIFARE CAPDU -&amp;gt; 90f50000010100&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;[general] response.tag.type:&amp;nbsp;&lt;/STRONG&gt;&lt;STRONG&gt;DESFire&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;[general] response.responseData: {length = 2, bytes = 0x91ae}&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Response received : 91AE&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;An exception occurred: ItF9fDb&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Here are some details: com.nxp.nfclib.exceptions.PICCException: Authentication Error SW2 = -82&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;I'm not sure what I'm doing wrong here. Can you please help. This seems to be the last blocker to resolve.&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Martin&lt;/P&gt;</description>
    <pubDate>Thu, 09 Jan 2025 15:15:23 GMT</pubDate>
    <dc:creator>Octopussy</dc:creator>
    <dc:date>2025-01-09T15:15:23Z</dc:date>
    <item>
      <title>Taplinx iOS app reading Desfire EV2</title>
      <link>https://community.nxp.com/t5/TapLinx-SDK-TagWriter-and/Taplinx-iOS-app-reading-Desfire-EV2/m-p/2013086#M68</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I new to the Taplinx for iOS. I'm working on an app to read Desfire EV2 app data. I'm quite experienced with iOS development. I got an app running but I'm not sure how to correctly initiate a&amp;nbsp;getDESFireEV2Instance to select the app and then start to read using authentication. My first step is to actually get the tag details and select the app.&lt;/P&gt;&lt;P&gt;When I call "libraryManager&lt;SPAN&gt;.getTagDetails" the app always crashes. Probably my calling sequence is still wrong.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;verifyLicense is implemented and works&lt;/P&gt;&lt;P&gt;Attached is my code that I have so far.&lt;/P&gt;&lt;P&gt;I really hope someone would be able to point me into the right direction.&lt;/P&gt;&lt;P&gt;Thanks so much,&lt;/P&gt;&lt;P&gt;Martin&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;class NFCReader: NSObject, NFCTagReaderSessionDelegate, TapLinxApduHandlerProtocol {
	var session: NFCTagReaderSession?
	var handler: TapLinxApduHandler = TapLinxApduHandler()
	let libraryManager = TLLibraryManager()

	func startSession() {
		session = NFCTagReaderSession(pollingOption: .iso14443, delegate: self, queue: nil)
		session?.alertMessage = "Hold your iPhone near the NFC tag."
		session?.begin()
	}
	
	func tagReaderSessionDidBecomeActive(_ session: NFCTagReaderSession) {
		print("NFCReader.tagReaderSessionDidBecomeActive: Session active.")
	}
	
	func tagReaderSession(_ session: NFCTagReaderSession, didInvalidateWithError error: Error) {
		print("NFCReader.tagReaderSessionDidBecomeActive: Session invalidated: \(error.localizedDescription)")
	}
	
	func tagReaderSession(_ session: NFCTagReaderSession, didDetect tags: [NFCTag]) {
		guard let firstTag = tags.first else {
			print("NFCReader.tagReaderSession: No tags detected.")
			session.invalidate(errorMessage: "No tags detected.")
			return
		}
		
		switch firstTag {
			case .miFare(let miFareTag):
				print("NFCReader.tagReaderSession.connect(to): miFareTag detected")
				self.handleMiFareTag(miFareTag, session: session)
			default:
				print("NFCReader.tagReaderSession.connect(to): Unsupported tag type: \(firstTag)")
				session.invalidate(errorMessage: "Unsupported tag type.")
		}
	}
	
	
	private func handleMiFareTag(_ tag: NFCMiFareTag, session: NFCTagReaderSession) {
		print("handleMiFareTag")
		let reader = TL_IOSNFCReader(uid: tag.identifier, historicalBytes: Data())
		handler = TapLinxApduHandler(reader: reader)
		handler.delegate = self
		libraryManager.setApduHandlerWithApduHandler(handler)
		libraryManager.getTagDetails { tagDetails, success in
			print("getTagDetails: \(success)")
		}
		libraryManager.getDESFireEV2Instance().selectApplication(withAppID: appID) { result in
			print("result: \(result)")
		}
		
//		let desFireEV2 = libraryManager.getDESFireEV2Instance()
//		desFireEV2.getVersionOnCompletion { version, x  in
//			//print("DESFire EV2 Version \(version) - \(x)")
//		}
	}
	
	func apduExchange(withByteArray apduData: Data) -&amp;gt; TL_TagAPDUResponse? {
		var tagAPDUResponse: TL_TagAPDUResponse?
		print("MIFARE CAPDU -&amp;gt; \(apduData.hex)")
		
		return tagAPDUResponse
	}
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 12 Dec 2024 18:44:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/TapLinx-SDK-TagWriter-and/Taplinx-iOS-app-reading-Desfire-EV2/m-p/2013086#M68</guid>
      <dc:creator>Octopussy</dc:creator>
      <dc:date>2024-12-12T18:44:21Z</dc:date>
    </item>
    <item>
      <title>Re: Taplinx iOS app reading Desfire EV2</title>
      <link>https://community.nxp.com/t5/TapLinx-SDK-TagWriter-and/Taplinx-iOS-app-reading-Desfire-EV2/m-p/2013799#M69</link>
      <description>&lt;P&gt;Hello,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you very much for working with us.&lt;/P&gt;
&lt;P&gt;Unfortunately, we don't have an example for running in iOS but my recommendation would be to please check the Android example for NTAG and start by adapting this application to iOS. When you are able to correctly implement it on iOS I'm sure it will get easier.&lt;/P&gt;
&lt;P&gt;Additionally, please let me know if you have already check the javadoc available in Taplinx site.&lt;/P&gt;</description>
      <pubDate>Fri, 13 Dec 2024 19:08:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/TapLinx-SDK-TagWriter-and/Taplinx-iOS-app-reading-Desfire-EV2/m-p/2013799#M69</guid>
      <dc:creator>Fabian_R</dc:creator>
      <dc:date>2024-12-13T19:08:04Z</dc:date>
    </item>
    <item>
      <title>Re: Taplinx iOS app reading Desfire EV2</title>
      <link>https://community.nxp.com/t5/TapLinx-SDK-TagWriter-and/Taplinx-iOS-app-reading-Desfire-EV2/m-p/2014396#M70</link>
      <description>&lt;P&gt;Hi Fabian,&lt;/P&gt;&lt;P&gt;the iOS TapLinx library is quite different from the Android one. The issue I'm having is that the initialization of the "TLLibraryManager" doesn't seem to work as expected.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;	let libraryManager = TLLibraryManager()
	libraryManager.getDESFireEV2Instance().selectApplication(withAppID: appID) { result in
			print("result: \(result)")
		}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This will always result in a crash. So it looks like the instantiation of the "TLLibraryManager" is wrong.&lt;/P&gt;&lt;P&gt;Calling&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;TLLibraryManager.shared()&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;will also crash right away. But calling&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;TapLinxLibrary.shared()&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;works. so there seems to be an issuer on how the "TLLibraryManager" need to be instantiated.&lt;/P&gt;&lt;P&gt;I would need some help on how to instantiated the "TLLibraryManager" correctly so I can make additional call then.&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Martin&lt;/P&gt;</description>
      <pubDate>Mon, 16 Dec 2024 10:23:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/TapLinx-SDK-TagWriter-and/Taplinx-iOS-app-reading-Desfire-EV2/m-p/2014396#M70</guid>
      <dc:creator>Octopussy</dc:creator>
      <dc:date>2024-12-16T10:23:57Z</dc:date>
    </item>
    <item>
      <title>Re: Taplinx iOS app reading Desfire EV2</title>
      <link>https://community.nxp.com/t5/TapLinx-SDK-TagWriter-and/Taplinx-iOS-app-reading-Desfire-EV2/m-p/2015228#M71</link>
      <description>&lt;P&gt;Dear Octopussy,&lt;/P&gt;
&lt;P&gt;TLLibraryManager is a singleton class and we have a class method +(TLLibraryManager *)shared.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Try to instantiate like:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="java"&gt;import UIKit
import CoreNFC
import Network
 
class ViewController: UIViewController {
    
    lazy var downloadQueue: OperationQueue = {
        var queue = OperationQueue()
        queue.name = "Execute Commands queue"
        queue.maxConcurrentOperationCount = 1
        return queue
    }()
    
    @IBOutlet var scanButton: UIButton? = UIButton()
    
    var connectedTag: NFCISO7816Tag?
    var connectedMifareTag: NFCMiFareTag?
    var tagReaderSession: NFCTagReaderSession!
    var uid = ""
    var isExecutingSelectedCommands = false
    var CommandsToExecute = [String]()
    var handler = TapLinxApduHandler()
    var currentTag: TL_TagInfo?
 
    var libraryManager : TLLibraryManager! = TLLibraryManager.shared()
...

func testMIFARELibraryManagerInstance() {
        let libraryMangager = TLLibraryManager.shared()
        XCTAssertNotNil(libraryMangager)
    }
...&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;LI-WRAPPER&gt;&lt;/LI-WRAPPER&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 17 Dec 2024 11:02:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/TapLinx-SDK-TagWriter-and/Taplinx-iOS-app-reading-Desfire-EV2/m-p/2015228#M71</guid>
      <dc:creator>ukcas</dc:creator>
      <dc:date>2024-12-17T11:02:40Z</dc:date>
    </item>
    <item>
      <title>Re: Taplinx iOS app reading Desfire EV2</title>
      <link>https://community.nxp.com/t5/TapLinx-SDK-TagWriter-and/Taplinx-iOS-app-reading-Desfire-EV2/m-p/2015283#M72</link>
      <description>&lt;P&gt;Hi&amp;nbsp;ukcas,&lt;/P&gt;&lt;P&gt;unfortunately the call&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;var libraryManager : TLLibraryManager! = TLLibraryManager.shared()&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;will crash. Here is the crash log.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Octopussy_0-1734436722982.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/316282i058A24543BA8AC79/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Octopussy_0-1734436722982.png" alt="Octopussy_0-1734436722982.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;So there seems to be something wrong with the "TLLibraryManager.shared()" call.&lt;/P&gt;&lt;P&gt;If you want I can send you a bare bone project that shows the issue.&lt;/P&gt;&lt;P&gt;Thanks very much,&lt;/P&gt;&lt;P&gt;Martin&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 17 Dec 2024 12:06:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/TapLinx-SDK-TagWriter-and/Taplinx-iOS-app-reading-Desfire-EV2/m-p/2015283#M72</guid>
      <dc:creator>Octopussy</dc:creator>
      <dc:date>2024-12-17T12:06:56Z</dc:date>
    </item>
    <item>
      <title>Re: Taplinx iOS app reading Desfire EV2</title>
      <link>https://community.nxp.com/t5/TapLinx-SDK-TagWriter-and/Taplinx-iOS-app-reading-Desfire-EV2/m-p/2024755#M82</link>
      <description>&lt;P&gt;Dear Martin,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Since library is an obfuscated build, it is not possible to debug the executable. Therefore it needs to be disabled in IDE options.&lt;/P&gt;
&lt;P&gt;Follow below steps.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Select the scheme that you are using to run the application&lt;/LI&gt;
&lt;LI&gt;Edit Scheme&lt;/LI&gt;
&lt;LI&gt;In the Info Tab, uncheck the Debug executable option.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;Best regards,&lt;/P&gt;
&lt;P&gt;TapLinx team&lt;/P&gt;</description>
      <pubDate>Thu, 09 Jan 2025 10:17:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/TapLinx-SDK-TagWriter-and/Taplinx-iOS-app-reading-Desfire-EV2/m-p/2024755#M82</guid>
      <dc:creator>ukcas</dc:creator>
      <dc:date>2025-01-09T10:17:48Z</dc:date>
    </item>
    <item>
      <title>Re: Taplinx iOS app reading Desfire EV2</title>
      <link>https://community.nxp.com/t5/TapLinx-SDK-TagWriter-and/Taplinx-iOS-app-reading-Desfire-EV2/m-p/2024926#M84</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;now the app no longer crashes. Thanks for that hint.&lt;/P&gt;&lt;P&gt;I guess to save other people a lot of time this info should go into the "UG10045.pdf" document.&lt;/P&gt;&lt;P&gt;I can now successfully select the application. I have some trouble now to get the authentication and reading of a file working. Here is the info about the card.&lt;/P&gt;&lt;P&gt;Card Type: Desfire EV2&lt;/P&gt;&lt;P&gt;Crypto: AES&lt;/P&gt;&lt;P&gt;File number: 1&lt;/P&gt;&lt;P&gt;File Type: Standard Data File&lt;/P&gt;&lt;P&gt;Communication:&amp;nbsp;Fully enciphered&lt;/P&gt;&lt;P&gt;Read access with Key Number: 1&lt;/P&gt;&lt;P&gt;File data: 10 bytes&lt;/P&gt;&lt;P&gt;Here is my current code:&lt;/P&gt;&lt;LI-CODE lang="c"&gt;desFireEV2.selectApplication(withAppID: appID) { success in
  print("selectApplication: success \(success)")
}

desFireEV2.authenticate(withCardKeyNo: 1, withAuthenticationType: .AES, withAuthKeyType: .AES128, withCommandSetForAuth:  .Native, withAuthkey: aesKey) { success in
 print("authenticate: success \(success)")
}

desFireEV2.readData(withFileNo: 1, withOffset: 0, withLength: 10) { data, success in
  print("readDataWithFileNo: success \(success) - data = \(data)")
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;Authentication returns "success = true"&lt;/P&gt;&lt;P&gt;When calling"desFireEV2.readData"&amp;nbsp;readData returns "success = false" and&amp;nbsp;I see the following in the log&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Command sent to card : F501&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;MIFARE CAPDU -&amp;gt; f501&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;[general] response.tag.type:&amp;nbsp;&lt;/STRONG&gt;&lt;STRONG&gt;DESFire&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;[general] response.responseData: {length = 1, bytes = 0xae}&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Response received : AE&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;An exception occurred: ItF9fDb&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Here are some details: com.nxp.nfclib.exceptions.PICCException: Authentication Error SW2 = -82&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;When I change the "withCommandSetForAuth" to ".ISO" I receive the following in the log&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Command sent to card : 90F50000010100&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;MIFARE CAPDU -&amp;gt; 90f50000010100&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;[general] response.tag.type:&amp;nbsp;&lt;/STRONG&gt;&lt;STRONG&gt;DESFire&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;[general] response.responseData: {length = 2, bytes = 0x91ae}&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Response received : 91AE&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;An exception occurred: ItF9fDb&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Here are some details: com.nxp.nfclib.exceptions.PICCException: Authentication Error SW2 = -82&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;I'm not sure what I'm doing wrong here. Can you please help. This seems to be the last blocker to resolve.&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Martin&lt;/P&gt;</description>
      <pubDate>Thu, 09 Jan 2025 15:15:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/TapLinx-SDK-TagWriter-and/Taplinx-iOS-app-reading-Desfire-EV2/m-p/2024926#M84</guid>
      <dc:creator>Octopussy</dc:creator>
      <dc:date>2025-01-09T15:15:23Z</dc:date>
    </item>
    <item>
      <title>Re: Taplinx iOS app reading Desfire EV2</title>
      <link>https://community.nxp.com/t5/TapLinx-SDK-TagWriter-and/Taplinx-iOS-app-reading-Desfire-EV2/m-p/2025903#M88</link>
      <description>&lt;P&gt;Hi Martin,&lt;/P&gt;
&lt;P&gt;From your pasted Log, it seems the code fails at a GetFileSettings command (F501 or 90 F5 00 00 01 01 00 as the ISO equivalent).&lt;/P&gt;
&lt;P&gt;If i get it correctly, previous to this you are authenticating with Application Key 1. The reason for the failing GetFile settings therefore might be that the application requires an authentication with the Application Master Key (Key 0) for sending the GetFileSettings command. This would explaing the error code at this place.&lt;/P&gt;
&lt;P&gt;Can you please crosscheck the configuration of the application with the DESFire datasheet, if this setting is enabled or not? You can also try to authentication with Key 0 before the read command and check if there is any difference.&lt;/P&gt;
&lt;P&gt;In case this does not bring more clarity, please provide some more communication Logs that we can see what is going on. Ideally, if you can provide the APDUs, this would be perfect!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;regards,&lt;/P&gt;
&lt;P&gt;Florian&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 10 Jan 2025 15:17:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/TapLinx-SDK-TagWriter-and/Taplinx-iOS-app-reading-Desfire-EV2/m-p/2025903#M88</guid>
      <dc:creator>Florian_Mikulik</dc:creator>
      <dc:date>2025-01-10T15:17:23Z</dc:date>
    </item>
    <item>
      <title>Re: Taplinx iOS app reading Desfire EV2</title>
      <link>https://community.nxp.com/t5/TapLinx-SDK-TagWriter-and/Taplinx-iOS-app-reading-Desfire-EV2/m-p/2026328#M90</link>
      <description>&lt;P&gt;Hi Florian,&lt;/P&gt;&lt;P&gt;I don't have the Application Master key 0. The additional info about the card / spec that I have is:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;PICC Master Key Settings&lt;/STRONG&gt;&lt;BR /&gt;Application / KeySetting can be viewed without PICC: &lt;STRONG&gt;Yes&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Application Setting&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Crypto setting : AES&lt;/P&gt;&lt;P&gt;Application / KeySetting can be viewed without Master key: &lt;STRONG&gt;No&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;File Level&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;File Level communication: &lt;STRONG&gt;Fully enciphered&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;The Android version of the app, developed many years ago with an older version of the Taplink SDK, uses a readData call passing "IDESFireEV1.CommunicationType.Enciphered" as one of the parameters.&lt;/P&gt;&lt;P&gt;I think this is what the "&lt;SPAN&gt;GetFileSettings" command is used for internally when I call "readData" to determine the file level encryption.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;What can I do to resolve the issue? Is there another readData call like the one in the old SDK to specify the CommunicationType?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I do need a solution for the issue.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;If you still need more logging with APDUs let me know.&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Martin&lt;/P&gt;</description>
      <pubDate>Mon, 13 Jan 2025 03:30:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/TapLinx-SDK-TagWriter-and/Taplinx-iOS-app-reading-Desfire-EV2/m-p/2026328#M90</guid>
      <dc:creator>Octopussy</dc:creator>
      <dc:date>2025-01-13T03:30:50Z</dc:date>
    </item>
    <item>
      <title>Re: Taplinx iOS app reading Desfire EV2</title>
      <link>https://community.nxp.com/t5/TapLinx-SDK-TagWriter-and/Taplinx-iOS-app-reading-Desfire-EV2/m-p/2027418#M92</link>
      <description>&lt;P&gt;Hi Martin,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Indeed, i have the same impression than you have.&lt;/P&gt;
&lt;P&gt;Let me check internally and come back to you asap!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;regards,&lt;/P&gt;
&lt;P&gt;Florian&lt;/P&gt;</description>
      <pubDate>Tue, 14 Jan 2025 08:42:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/TapLinx-SDK-TagWriter-and/Taplinx-iOS-app-reading-Desfire-EV2/m-p/2027418#M92</guid>
      <dc:creator>Florian_Mikulik</dc:creator>
      <dc:date>2025-01-14T08:42:03Z</dc:date>
    </item>
    <item>
      <title>Re: Taplinx iOS app reading Desfire EV2</title>
      <link>https://community.nxp.com/t5/TapLinx-SDK-TagWriter-and/Taplinx-iOS-app-reading-Desfire-EV2/m-p/2028775#M93</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I'm trying to figure out how to communicate with a DESFire EV card in my iOS app. My problem is that whenever I try to authenticate, I get an "Incomplete response received from PICC" error.&lt;/P&gt;&lt;P&gt;Below is my code:&lt;/P&gt;&lt;LI-CODE lang="c"&gt;let des3 = libraryManager.getDESFireEV3Instance()

// Default key
let defaultKey: [UInt8] = [0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF] // Default key (0xFF repeated)
let keyData = Data(defaultKey)

des3.authenticate(withCardKeyNo: 0, withAuthenticationType: .native, withAuthKeyType: .THREEDES, withCommandSetForAuth: .Native, withAuthkey: keyData, onCompletion: { isSuccess in
    print(isSuccess)
})&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Response from the log:&lt;/P&gt;&lt;LI-CODE lang="c"&gt;[55205:3622464] AuthType - Native KeyType - THREEDES KeyInfo.KeyArray - {length = 16, bytes = 0xffffffffffffffffffffffffffffffff}, cardKeyNo - 0
[55205:3622464] [general] Command sent to card : 0A00
MIFARE CAPDU -&amp;gt; 0a00
[55205:3622464] [general] Response received : null
[55205:3622464] Exception com.nxp.nfclib.exceptions.InvalidResponseLengthException: Incomplete response received from PICC.&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm not sure if I'm missing something in my setup. Any guidance would be greatly appreciated.&lt;/P&gt;&lt;P&gt;Thank you!&lt;/P&gt;</description>
      <pubDate>Thu, 16 Jan 2025 07:02:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/TapLinx-SDK-TagWriter-and/Taplinx-iOS-app-reading-Desfire-EV2/m-p/2028775#M93</guid>
      <dc:creator>pMolon</dc:creator>
      <dc:date>2025-01-16T07:02:09Z</dc:date>
    </item>
  </channel>
</rss>

