[TapLink SDK iOS] Authentication with AES 128 not working

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

[TapLink SDK iOS] Authentication with AES 128 not working

571 次查看
SamanaGG
Contributor I

Hello, I have read your guide UG10045 and I have successfully integrated the Taplink iOS SDK in a demo Project.

 

In section 6.1 you describe an authenticationFlow with EV2 Card.

I have to use EV3 Cards, so I replicated that flow using a DesEV3Instance

 

Here my code:  

private func authenticateWithCustomOrZero(_ desfire: TL_DESFireEV3, completion: @escaping (Bool, Bool) -> Void) {

        desfire.authenticate(withCardKeyNo: 0, withAuthenticationType: .native, withAuthKeyType: .THREEDES, withCommandSetForAuth: .Native, withAuthkey: threeDESZero) { firstAuth3D in

            os_log("Internal Log  - %{public}@", log: OSLog(subsystem: Bundle.main.bundleIdentifier!, category: "DemoLog"), type: .error, "firstAuth3D: \(firstAuth3D)")

            

            desfire.changeKey(withCardKeyNo: 0, withAuthKeyType: .AES128, withFromKey: threeDESZero, withToKey: aesZero) { firstChangeAES in

                os_log("Internal Log  - %{public}@", log: OSLog(subsystem: Bundle.main.bundleIdentifier!, category: "DemoLog"), type: .error, "firstChangeAES: \(firstChangeAES)")

                

                desfire.authenticate(withCardKeyNo: 0, withAuthenticationType: .AES, withAuthKeyType: .AES128, withCommandSetForAuth: .Native, withAuthkey: aesZero) { firstAuthAES in

                    os_log("Internal Log  - %{public}@", log: OSLog(subsystem: Bundle.main.bundleIdentifier!, category: "DemoLog"), type: .error, "firstAuthAES: \(firstAuthAES)")

                    

                    desfire.changeKey(withCardKeyNo: 0, withAuthKeyType: .THREEDES, withFromKey: aesZero, withToKey: threeDESZero) { lastChange3D in

                        os_log("Internal Log  - %{public}@", log: OSLog(subsystem: Bundle.main.bundleIdentifier!, category: "DemoLog"), type: .error, "lastChange3D: \(lastChange3D)")

                        

                        desfire.authenticate(withCardKeyNo: 0, withAuthenticationType: .native, withAuthKeyType: .THREEDES, withCommandSetForAuth: .Native, withAuthkey: threeDESZero) { lastAuth3D in

                            os_log("Internal Log  - %{public}@", log: OSLog(subsystem: Bundle.main.bundleIdentifier!, category: "DemoLog"), type: .error, "lastAuth3D: \(lastAuth3D)")

                        }

                    }

                }

            }

        }

    }

 

The first authentication with 3DES, the change to aes key and then the authentication with Aes key works perfectly.

Then when I tried to change to old 3DES key I received a error and now the card is still "authenticated" with AES key

 

For completism, the keys are

private let aesZero = Data(repeating: 0x00, count: 16)

private let threeDESZero = Data(repeating: 0x00, count: 24)

 

I received this error from SDK logs (see the attachments).

Exception Caught: com.nxp.nfclib.exceptions.PICCException: Integrity Error SW2 = 30

 

Before doing others tests, I hope to know from you if my implementation is working as expected  and what that error means.

 

Thanks in advance

标签 (2)
0 项奖励
回复
1 回复

419 次查看
Fabian_R
NXP TechSupport
NXP TechSupport

Hello sir,

Thank you for sharing your code. My apologies for the delay.

I believe the root cause is very likely to be due to the threeDESZero odd parity per byte. After authenticating with an AES key and, the changing to the 3DES

You could quickly test this instead of using a 0x00, try a non-zero key to ensure odd parity byte.

If this still fails, please try changing from 3DES -> AES -> 3DES in two separated sessions but, please try using non-zero keys.

 

I hope this helps

Best Regards,
Fabian
0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-2324491%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%5BTapLink%20SDK%20iOS%5D%20%E4%BD%BF%E7%94%A8%20AES%20128%20%E8%BF%9B%E8%A1%8C%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2324491%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%EF%BC%8C%E6%88%91%E5%B7%B2%E7%BB%8F%E9%98%85%E8%AF%BB%E4%BA%86%E4%BD%A0%E4%BB%AC%E7%9A%84%E6%8C%87%E5%8D%97%20UG10045%EF%BC%8C%E5%B9%B6%E5%9C%A8%E4%B8%80%E4%B8%AA%E6%BC%94%E7%A4%BA%E9%A1%B9%E7%9B%AE%E4%B8%AD%E6%88%90%E5%8A%9F%E9%9B%86%E6%88%90%E4%BA%86%20Taplink%20iOS%20SDK%E3%80%82%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%E5%9C%A8%E7%AC%AC%206.1%20%E8%8A%82%E4%B8%AD%EF%BC%8C%E6%82%A8%E6%8F%8F%E8%BF%B0%E4%BA%86%E4%BD%BF%E7%94%A8%20EV2%20%E5%8D%A1%E7%9A%84%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%E6%B5%81%E7%A8%8B%E3%80%82%3C%2FP%3E%3CP%3E%E6%88%91%E5%BF%85%E9%A1%BB%E4%BD%BF%E7%94%A8%20EV3%20%E5%8D%A1%EF%BC%8C%E5%9B%A0%E6%AD%A4%E6%88%91%E4%BD%BF%E7%94%A8%20DesEV3Instance%20%E5%A4%8D%E5%88%B6%E4%BA%86%E8%AF%A5%E6%B5%81%E7%A8%8B%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%E8%BF%99%E6%98%AF%E6%88%91%E7%9A%84%E4%BB%A3%E7%A0%81%EF%BC%9A%3CSPAN%20class%3D%22%22%3E%20%20%3C%2FSPAN%3E%3C%2FP%3E%3CPRE%20translate%3D%22no%22%3E%3CSPAN%3E%3CSTRONG%3Eprivate%3C%2FSTRONG%3E%3C%2FSPAN%3E%20%3CSPAN%3E%3CSTRONG%3Efunc%3C%2FSTRONG%3E%3C%2FSPAN%3E%20%3CSPAN%3EauthenticateWithCustomOrZero%3C%2FSPAN%3E(%3CSPAN%3E_%3C%2FSPAN%3E%20desfire%3A%20TL_DESFireEV3%2C%20%3CSPAN%3Ecompletion%3C%2FSPAN%3E%3A%20%3CSPAN%3E%3CSTRONG%3E%40escaping%3C%2FSTRONG%3E%3C%2FSPAN%3E%20(%3CSPAN%3EBool%3C%2FSPAN%3E%2C%20%3CSPAN%3EBool%3C%2FSPAN%3E)%20-%26gt%3B%20%3CSPAN%3EVoid%3C%2FSPAN%3E)%20%7B%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3Edesfire.authenticate(withCardKeyNo%3A%20%3CSPAN%3E0%3C%2FSPAN%3E%2C%20withAuthenticationType%3A%20.%3CSPAN%3Enative%3C%2FSPAN%3E%2C%20withAuthKeyType%3A%20.THREEDES%2C%20withCommandSetForAuth%3A%20.Native%2C%20withAuthkey%3A%20%3CSPAN%3EthreeDESZero%3C%2FSPAN%3E)%20%7B%20firstAuth3D%20%3CSPAN%3E%3CSTRONG%3Ein%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3Eos_log%3C%2FSPAN%3E(%3CSPAN%3E%22Internal%20Log%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%3C%2FSPAN%3E-%20%25%7Bpublic%7D%40%22%3C%2FSPAN%3E%2C%20%3CSPAN%3Elog%3C%2FSPAN%3E%3A%20OSLog(subsystem%3A%20%3CSPAN%3EBundle%3C%2FSPAN%3E.%3CSPAN%3Emain%3C%2FSPAN%3E.%3CSPAN%3EbundleIdentifier%3C%2FSPAN%3E!%2C%20category%3A%20%3CSPAN%3E%22DemoLog%22%3C%2FSPAN%3E)%2C%20%3CSPAN%3Etype%3C%2FSPAN%3E%3A%20.%3CSPAN%3Eerror%3C%2FSPAN%3E%2C%20%3CSPAN%3E%22firstAuth3D%3A%20%3C%2FSPAN%3E%5C(firstAuth3D)%3CSPAN%3E%22%3C%2FSPAN%3E)%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3Edesfire.changeKey(withCardKeyNo%3A%20%3CSPAN%3E0%3C%2FSPAN%3E%2C%20withAuthKeyType%3A%20.AES128%2C%20withFromKey%3A%20%3CSPAN%3EthreeDESZero%3C%2FSPAN%3E%2C%20withToKey%3A%20%3CSPAN%3EaesZero%3C%2FSPAN%3E)%20%7B%20firstChangeAES%20%3CSPAN%3E%3CSTRONG%3Ein%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3Eos_log%3C%2FSPAN%3E(%3CSPAN%3E%22Internal%20Log%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%3C%2FSPAN%3E-%20%25%7Bpublic%7D%40%22%3C%2FSPAN%3E%2C%20%3CSPAN%3Elog%3C%2FSPAN%3E%3A%20OSLog(subsystem%3A%20%3CSPAN%3EBundle%3C%2FSPAN%3E.%3CSPAN%3Emain%3C%2FSPAN%3E.%3CSPAN%3EbundleIdentifier%3C%2FSPAN%3E!%2C%20category%3A%20%3CSPAN%3E%22DemoLog%22%3C%2FSPAN%3E)%2C%20%3CSPAN%3Etype%3C%2FSPAN%3E%3A%20.%3CSPAN%3Eerror%3C%2FSPAN%3E%2C%20%3CSPAN%3E%22firstChangeAES%3A%20%3C%2FSPAN%3E%5C(firstChangeAES)%3CSPAN%3E%22%3C%2FSPAN%3E)%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3Edesfire.authenticate(withCardKeyNo%3A%20%3CSPAN%3E0%3C%2FSPAN%3E%2C%20withAuthenticationType%3A%20.AES%2C%20withAuthKeyType%3A%20.AES128%2C%20withCommandSetForAuth%3A%20.Native%2C%20withAuthkey%3A%20%3CSPAN%3EaesZero%3C%2FSPAN%3E)%20%7B%20firstAuthAES%20%3CSPAN%3E%3CSTRONG%3Ein%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3Eos_log%3C%2FSPAN%3E(%3CSPAN%3E%22Internal%20Log%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%3C%2FSPAN%3E-%20%25%7Bpublic%7D%40%22%3C%2FSPAN%3E%2C%20%3CSPAN%3Elog%3C%2FSPAN%3E%3A%20OSLog(subsystem%3A%20%3CSPAN%3EBundle%3C%2FSPAN%3E.%3CSPAN%3Emain%3C%2FSPAN%3E.%3CSPAN%3EbundleIdentifier%3C%2FSPAN%3E!%2C%20category%3A%20%3CSPAN%3E%22DemoLog%22%3C%2FSPAN%3E)%2C%20%3CSPAN%3Etype%3C%2FSPAN%3E%3A%20.%3CSPAN%3Eerror%3C%2FSPAN%3E%2C%20%3CSPAN%3E%22firstAuthAES%3A%20%3C%2FSPAN%3E%5C(firstAuthAES)%3CSPAN%3E%22%3C%2FSPAN%3E)%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3Edesfire.changeKey(withCardKeyNo%3A%20%3CSPAN%3E0%3C%2FSPAN%3E%2C%20withAuthKeyType%3A%20.THREEDES%2C%20withFromKey%3A%20%3CSPAN%3EaesZero%3C%2FSPAN%3E%2C%20withToKey%3A%20%3CSPAN%3EthreeDESZero%3C%2FSPAN%3E)%20%7B%20lastChange3D%20%3CSPAN%3E%3CSTRONG%3Ein%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3Eos_log%3C%2FSPAN%3E(%3CSPAN%3E%22Internal%20Log%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%3C%2FSPAN%3E-%20%25%7Bpublic%7D%40%22%3C%2FSPAN%3E%2C%20%3CSPAN%3Elog%3C%2FSPAN%3E%3A%20OSLog(subsystem%3A%20%3CSPAN%3EBundle%3C%2FSPAN%3E.%3CSPAN%3Emain%3C%2FSPAN%3E.%3CSPAN%3EbundleIdentifier%3C%2FSPAN%3E!%2C%20category%3A%20%3CSPAN%3E%22DemoLog%22%3C%2FSPAN%3E)%2C%20%3CSPAN%3Etype%3C%2FSPAN%3E%3A%20.%3CSPAN%3Eerror%3C%2FSPAN%3E%2C%20%3CSPAN%3E%22lastChange3D%3A%20%3C%2FSPAN%3E%5C(lastChange3D)%3CSPAN%3E%22%3C%2FSPAN%3E)%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3Edesfire.authenticate(withCardKeyNo%3A%20%3CSPAN%3E0%3C%2FSPAN%3E%2C%20withAuthenticationType%3A%20.%3CSPAN%3Enative%3C%2FSPAN%3E%2C%20withAuthKeyType%3A%20.THREEDES%2C%20withCommandSetForAuth%3A%20.Native%2C%20withAuthkey%3A%20%3CSPAN%3EthreeDESZero%3C%2FSPAN%3E)%20%7B%20lastAuth3D%20%3CSPAN%3E%3CSTRONG%3Ein%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3Eos_log%3C%2FSPAN%3E(%3CSPAN%3E%22Internal%20Log%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%3C%2FSPAN%3E-%20%25%7Bpublic%7D%40%22%3C%2FSPAN%3E%2C%20%3CSPAN%3Elog%3C%2FSPAN%3E%3A%20OSLog(subsystem%3A%20%3CSPAN%3EBundle%3C%2FSPAN%3E.%3CSPAN%3Emain%3C%2FSPAN%3E.%3CSPAN%3EbundleIdentifier%3C%2FSPAN%3E!%2C%20category%3A%20%3CSPAN%3E%22DemoLog%22%3C%2FSPAN%3E)%2C%20%3CSPAN%3Etype%3C%2FSPAN%3E%3A%20.%3CSPAN%3Eerror%3C%2FSPAN%3E%2C%20%3CSPAN%3E%22lastAuth3D%3A%20%3C%2FSPAN%3E%5C(lastAuth3D)%3CSPAN%3E%22%3C%2FSPAN%3E)%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%7D%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%7D%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%7D%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%7D%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%7D%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%7D%3C%2FPRE%3E%3CBR%20%2F%3E%3CP%3E%E7%AC%AC%E4%B8%80%E6%AC%A1%E4%BD%BF%E7%94%A8%203DES%20%E8%BF%9B%E8%A1%8C%E9%AA%8C%E8%AF%81%EF%BC%8C%E7%84%B6%E5%90%8E%E6%9B%B4%E6%94%B9%E4%B8%BA%20Aes%20%E5%AF%86%E9%92%A5%EF%BC%8C%E5%86%8D%E4%BD%BF%E7%94%A8%20Aes%20%E5%AF%86%E9%92%A5%E8%BF%9B%E8%A1%8C%E9%AA%8C%E8%AF%81%EF%BC%8C%E6%95%B4%E4%B8%AA%E8%BF%87%E7%A8%8B%E9%83%BD%E9%9D%9E%E5%B8%B8%E9%A1%BA%E5%88%A9%E3%80%82%3C%2FP%3E%3CP%3E%E7%84%B6%E5%90%8E%EF%BC%8C%E5%BD%93%E6%88%91%E5%B0%9D%E8%AF%95%E6%94%B9%E7%94%A8%E6%97%A7%E7%9A%84%203DES%20%E5%AF%86%E9%92%A5%E6%97%B6%EF%BC%8C%E6%88%91%E6%94%B6%E5%88%B0%E4%BA%86%E4%B8%80%E4%B8%AA%E9%94%99%E8%AF%AF%EF%BC%8C%E7%8E%B0%E5%9C%A8%E8%AF%A5%E5%8D%A1%E4%BB%8D%E5%9C%A8%22%E9%AA%8C%E8%AF%81%22%20%EF%BC%8C%E4%BD%BF%E7%94%A8%E7%9A%84%E6%98%AF%20AES%20%E5%AF%86%E9%92%A5%E3%80%82%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%E4%B8%BA%E5%AE%8C%E6%95%B4%E8%B5%B7%E8%A7%81%EF%BC%8C%E5%85%B3%E9%94%AE%E6%98%AF%3C%2FP%3E%3CP%3E%3CSPAN%3E%3CSTRONG%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%3E%3CSTRONG%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%3E%E7%A7%81%E4%BA%BA%20%E8%AE%A9%20aesZero%3C%2FSPAN%3E%3CSPAN%3E%20%3D%3C%2FSPAN%3E%20Data%3CSPAN%3E%20%EF%BC%88%3C%2FSPAN%3E%20%E9%87%8D%E5%A4%8D%3CSPAN%3E%20%EF%BC%9A%3C%2FSPAN%3E%3CSPAN%3E%200x00%3C%2FSPAN%3E%3CSPAN%3E%20%EF%BC%8C%3C%2FSPAN%3E%20%E8%AE%A1%E6%95%B0%3CSPAN%3E%20%EF%BC%9A%3C%2FSPAN%3E%3CSPAN%3E%2016%EF%BC%89%3C%2FSPAN%3E%3CSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%E7%A7%81%E4%BA%BA%3CSPAN%3E%3CSTRONG%3E%20%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%3E%3CSTRONG%3E%E8%AE%A9%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%3E%20threeDESZero%3C%2FSPAN%3E%3CSPAN%3E%20%3D%3C%2FSPAN%3E%3CSPAN%3E%20Data%20%EF%BC%88%3C%2FSPAN%3E%20%E9%87%8D%E5%A4%8D%3CSPAN%3E%20%EF%BC%9A%3C%2FSPAN%3E%3CSPAN%3E%200x00%3C%2FSPAN%3E%3CSPAN%3E%20%EF%BC%8C%3C%2FSPAN%3E%20%E8%AE%A1%E6%95%B0%3CSPAN%3E%20%EF%BC%9A%3C%2FSPAN%3E%3CSPAN%3E%2024%EF%BC%89%3C%2FSPAN%3E%3CSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%E6%88%91%E4%BB%8E%20SDK%20%E6%97%A5%E5%BF%97%E4%B8%AD%E6%94%B6%E5%88%B0%E4%BA%86%E8%BF%99%E4%B8%AA%E9%94%99%E8%AF%AF%EF%BC%88%E8%AF%B7%E5%8F%82%E9%98%85%E9%99%84%E4%BB%B6%EF%BC%89%E3%80%82%3C%2FP%3E%3CP%3E%3CSTRONG%3E%E6%8D%95%E8%8E%B7%E7%9A%84%E5%BC%82%E5%B8%B8%EF%BC%9Acom.nxp.nfclib.exception.PICCException%EF%BC%9A%E5%AE%8C%E6%95%B4%E6%80%A7%E9%94%99%E8%AF%AF%20SW2%20%3D%2030%3C%2FSTRONG%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%E5%9C%A8%E8%BF%9B%E8%A1%8C%E5%85%B6%E4%BB%96%E6%B5%8B%E8%AF%95%E4%B9%8B%E5%89%8D%EF%BC%8C%E6%88%91%E5%B8%8C%E6%9C%9B%E4%BB%8E%E6%82%A8%E9%82%A3%E9%87%8C%E4%BA%86%E8%A7%A3%E6%88%91%E7%9A%84%E5%AE%9E%E7%8E%B0%E6%98%AF%E5%90%A6%E8%BE%BE%E5%88%B0%E9%A2%84%E6%9C%9F%E6%95%88%E6%9E%9C%EF%BC%8C%E4%BB%A5%E5%8F%8A%E8%AF%A5%E9%94%99%E8%AF%AF%E6%84%8F%E5%91%B3%E7%9D%80%E4%BB%80%E4%B9%88%E3%80%82%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%E9%A2%84%E5%85%88%E8%87%B4%E8%B0%A2%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2324491%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3E%E4%BB%A3%E7%A0%81%E7%A4%BA%E4%BE%8B%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3E%E7%A4%BA%E4%BE%8B%E4%BB%A3%E7%A0%81%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2336211%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20%5BTapLink%20SDK%20iOS%5D%20Authentication%20with%20AES%20128%20not%20working%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2336211%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%20style%3D%22margin%3A%200in%3B%20font-family%3A%20Calibri%3B%20font-size%3A%2011.0pt%3B%22%20lang%3D%22en-US%22%3E%E6%82%A8%E5%A5%BD%EF%BC%8C%E5%85%88%E7%94%9F%EF%BC%8C%3C%2FP%3E%0A%3CP%20style%3D%22margin%3A%200in%3B%20font-family%3A%20Calibri%3B%20font-size%3A%2011.0pt%3B%22%20lang%3D%22en-US%22%3E%E6%84%9F%E8%B0%A2%E6%82%A8%E5%88%86%E4%BA%AB%E4%BB%A3%E7%A0%81%E3%80%82%E6%88%91%E5%AF%B9%E5%BB%B6%E8%AF%AF%E8%A1%A8%E7%A4%BA%E6%AD%89%E6%84%8F%E3%80%82%3C%2FP%3E%0A%3CP%20style%3D%22margin%3A%200in%3B%20font-family%3A%20Calibri%3B%20font-size%3A%2011.0pt%3B%22%20lang%3D%22en-US%22%3E%E6%88%91%E7%9B%B8%E4%BF%A1%E6%A0%B9%E6%9C%AC%E5%8E%9F%E5%9B%A0%E5%BE%88%E5%8F%AF%E8%83%BD%E6%98%AF%E7%94%B1%E4%BA%8E%E6%AF%8F%E5%AD%97%E8%8A%82%E7%9A%84ThreedesZero%E5%A5%87%E5%81%B6%E6%A0%A1%E9%AA%8C%E9%80%A0%E6%88%90%E7%9A%84%E3%80%82%E4%BD%BF%E7%94%A8%20AES%20%E5%AF%86%E9%92%A5%E8%BF%9B%E8%A1%8C%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%E5%90%8E%EF%BC%8C%E5%88%87%E6%8D%A2%E5%88%B0%203DES%3C%2FP%3E%0A%3CP%20style%3D%22margin%3A%200in%3B%20font-family%3A%20Calibri%3B%20font-size%3A%2011.0pt%3B%22%20lang%3D%22en-US%22%3E%E4%BD%A0%E5%8F%AF%E4%BB%A5%E5%BF%AB%E9%80%9F%E6%B5%8B%E8%AF%95%E8%BF%99%E4%B8%AA%E8%80%8C%E4%B8%8D%E6%98%AF%E4%BD%BF%E7%94%A8%200x00%EF%BC%8C%E5%B0%9D%E8%AF%95%E4%BD%BF%E7%94%A8%E9%9D%9E%E9%9B%B6%E5%AF%86%E9%92%A5%E6%9D%A5%E7%A1%AE%E4%BF%9D%E5%A5%87%E5%81%B6%E6%A0%A1%E9%AA%8C%E5%AD%97%E8%8A%82%E6%98%AF%E5%A5%87%E6%95%B0%E3%80%82%3C%2FP%3E%0A%3CP%20style%3D%22margin%3A%200in%3B%20font-family%3A%20Calibri%3B%20font-size%3A%2011.0pt%3B%22%20lang%3D%22en-US%22%3E%E5%A6%82%E6%9E%9C%E4%BB%8D%E7%84%B6%E5%A4%B1%E8%B4%A5%EF%BC%8C%E8%AF%B7%E5%9C%A8%E4%B8%A4%E4%B8%AA%E4%B8%8D%E5%90%8C%E7%9A%84%E4%BC%9A%E8%AF%9D%E4%B8%AD%E5%B0%9D%E8%AF%95%E4%BB%8E%203DES%20-%26gt%3B%20AES%20-%26gt%3B%203DES%20%E6%9B%B4%E6%94%B9%EF%BC%8C%E4%BD%86%E8%AF%B7%E5%B0%9D%E8%AF%95%E4%BD%BF%E7%94%A8%E9%9D%9E%E9%9B%B6%E5%AF%86%E9%92%A5%E3%80%82%3C%2FP%3E%0A%3CP%20style%3D%22margin%3A%200in%3B%20font-family%3A%20Calibri%3B%20font-size%3A%2011.0pt%3B%22%20lang%3D%22en-US%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%20style%3D%22margin%3A%200in%3B%20font-family%3A%20Calibri%3B%20font-size%3A%2011.0pt%3B%22%20lang%3D%22en-US%22%3E%E5%B8%8C%E6%9C%9B%E5%AF%B9%E6%82%A8%E6%9C%89%E6%89%80%E5%B8%AE%E5%8A%A9%3C%2FP%3E%3C%2FLINGO-BODY%3E