[TapLink SDK iOS] Authentication with AES 128 not working

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

[TapLink SDK iOS] Authentication with AES 128 not working

355件の閲覧回数
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 返信

203件の閲覧回数
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%20AES%20128%20%E3%81%AB%E3%82%88%E3%82%8B%E8%AA%8D%E8%A8%BC%E3%81%8C%E6%A9%9F%E8%83%BD%E3%81%97%E3%81%AA%E3%81%84%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2324491%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%82%E3%82%AC%E3%82%A4%E3%83%89%20UG10045%20%E3%82%92%E8%AA%AD%E3%81%BF%E3%80%81Taplink%20iOS%20SDK%20%E3%82%92%E3%83%87%E3%83%A2%20%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%AB%E6%AD%A3%E5%B8%B8%E3%81%AB%E7%B5%B1%E5%90%88%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%E3%82%BB%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%206.1%20%E3%81%A7%E3%81%AF%E3%80%81EV2%20%E3%82%AB%E3%83%BC%E3%83%89%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%9F%E8%AA%8D%E8%A8%BC%E3%83%95%E3%83%AD%E3%83%BC%E3%82%92%E8%AA%AC%E6%98%8E%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3EEV3%E3%82%AB%E3%83%BC%E3%83%89%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8B%E3%81%AE%E3%81%A7%E3%80%81DesEV3Instance%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%81%9D%E3%81%AE%E3%83%95%E3%83%AD%E3%83%BC%E3%82%92%E5%86%8D%E7%8F%BE%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%E3%81%93%E3%82%8C%E3%81%8C%E7%A7%81%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E3%81%A7%E3%81%99%3A%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%26nbsp%3B%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%E6%9C%80%E5%88%9D%E3%81%AE%E8%AA%8D%E8%A8%BC%E3%81%AF%203DES%20%E3%81%A7%E3%80%81%E3%81%9D%E3%81%AE%E5%BE%8C%20AES%20%E3%82%AD%E3%83%BC%E3%81%AB%E5%A4%89%E6%9B%B4%E3%81%97%E3%80%81AES%20%E3%82%AD%E3%83%BC%E3%81%A7%E8%AA%8D%E8%A8%BC%E3%81%99%E3%82%8B%E3%81%A8%E5%AE%8C%E7%92%A7%E3%81%AB%E6%A9%9F%E8%83%BD%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E3%81%9D%E3%81%AE%E5%BE%8C%E3%80%81%E5%8F%A4%E3%81%843DES%E3%82%AD%E3%83%BC%E3%81%AB%E5%A4%89%E6%9B%B4%E3%81%97%E3%82%88%E3%81%86%E3%81%A8%E3%81%97%E3%81%9F%E3%81%A8%E3%81%8D%E3%81%AB%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%97%E3%80%81%E3%82%AB%E3%83%BC%E3%83%89%E3%81%AFAES%E3%82%AD%E3%83%BC%E3%81%A7%E3%80%8C%E8%AA%8D%E8%A8%BC%E3%80%8D%E3%81%95%E3%82%8C%E3%81%9F%E3%81%BE%E3%81%BE%E3%81%AB%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%E5%AE%8C%E5%85%A8%E4%B8%BB%E7%BE%A9%E3%81%AE%E5%A0%B4%E5%90%88%E3%80%81%E9%8D%B5%E3%81%A8%E3%81%AA%E3%82%8B%E3%81%AE%E3%81%AF%3C%2FP%3E%3CP%3E%3CSPAN%3E%3CSTRONG%3Eprivate%3C%2FSTRONG%3E%3C%2FSPAN%3E%20%3CSPAN%3E%3CSTRONG%3Elet%3C%2FSTRONG%3E%3C%2FSPAN%3E%20%3CSPAN%3EaesZero%3C%2FSPAN%3E%20%3CSPAN%3E%3D%3C%2FSPAN%3E%20Data%20%3CSPAN%3E(%3C%2FSPAN%3E%E7%B9%B0%E3%82%8A%E8%BF%94%E3%81%97%3CSPAN%3E%3A%3C%2FSPAN%3E%20%3CSPAN%3E0x00%3C%2FSPAN%3E%20%3CSPAN%3E%E3%80%81%3C%2FSPAN%3E%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%3CSPAN%3E%3A%3C%2FSPAN%3E%20%3CSPAN%3E16%3C%2FSPAN%3E%20%3CSPAN%3E)%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%3CSTRONG%3Eprivate%3C%2FSTRONG%3E%3C%2FSPAN%3E%20%3CSPAN%3E%3CSTRONG%3Elet%3C%2FSTRONG%3E%3C%2FSPAN%3E%20%3CSPAN%3EthreeDESZero%3C%2FSPAN%3E%20%3CSPAN%3E%3D%3C%2FSPAN%3E%20Data%20%3CSPAN%3E(%3C%2FSPAN%3E%E7%B9%B0%E3%82%8A%E8%BF%94%E3%81%97%3CSPAN%3E%3A%3C%2FSPAN%3E%20%3CSPAN%3E0x00%3C%2FSPAN%3E%20%3CSPAN%3E%E3%80%81%3C%2FSPAN%3E%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%3CSPAN%3E%3A%3C%2FSPAN%3E%20%3CSPAN%3E24%3C%2FSPAN%3E%20%3CSPAN%3E)%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3ESDK%20%E3%83%AD%E3%82%B0%E3%81%8B%E3%82%89%E3%81%93%E3%81%AE%E3%82%A8%E3%83%A9%E3%83%BC%E3%82%92%E5%8F%97%E3%81%91%E5%8F%96%E3%82%8A%E3%81%BE%E3%81%97%E3%81%9F%20(%E6%B7%BB%E4%BB%98%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E5%8F%82%E7%85%A7)%E3%80%82%3C%2FP%3E%3CP%3E%3CSTRONG%3E%E4%BE%8B%E5%A4%96%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%3A%20com.nxp.nfclib.exceptions.PICCException%3A%20%E6%95%B4%E5%90%88%E6%80%A7%E3%82%A8%E3%83%A9%E3%83%BC%20SW2%20%3D%2030%3C%2FSTRONG%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%E4%BB%96%E3%81%AE%E3%83%86%E3%82%B9%E3%83%88%E3%82%92%E8%A1%8C%E3%81%86%E5%89%8D%E3%81%AB%E3%80%81%E7%A7%81%E3%81%AE%E5%AE%9F%E8%A3%85%E3%81%8C%E6%9C%9F%E5%BE%85%E3%81%A9%E3%81%8A%E3%82%8A%E3%81%AB%E5%8B%95%E4%BD%9C%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%81%8B%E3%81%A9%E3%81%86%E3%81%8B%E3%80%81%E3%81%9D%E3%81%AE%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%8C%E4%BD%95%E3%82%92%E6%84%8F%E5%91%B3%E3%81%99%E3%82%8B%E3%81%AE%E3%81%8B%E3%82%92%E6%95%99%E3%81%88%E3%81%A6%E3%81%84%E3%81%9F%E3%81%A0%E3%81%91%E3%82%8C%E3%81%B0%E5%B9%B8%E3%81%84%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%E5%89%8D%E3%82%82%E3%81%A3%E3%81%A6%E6%84%9F%E8%AC%9D%E3%81%97%E3%81%BE%E3%81%99%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%E3%82%B3%E3%83%BC%E3%83%89%E3%83%BB%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%20%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3E%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%83%BB%E3%82%B3%E3%83%BC%E3%83%89%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%E3%81%8A%E4%B8%96%E8%A9%B1%E3%81%AB%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%99%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%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E5%85%B1%E6%9C%89%E3%81%97%E3%81%A6%E3%81%84%E3%81%9F%E3%81%A0%E3%81%8D%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%E9%81%85%E3%82%8C%E3%81%A6%E7%94%B3%E3%81%97%E8%A8%B3%E3%81%82%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%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%A0%B9%E6%9C%AC%E5%8E%9F%E5%9B%A0%E3%81%AF%E3%80%81threeDESZero%E3%81%AE%E3%83%90%E3%82%A4%E3%83%88%E3%81%94%E3%81%A8%E3%81%AE%E5%A5%87%E6%95%B0%E3%83%91%E3%83%AA%E3%83%86%E3%82%A3%E3%81%AB%E3%81%82%E3%82%8B%E5%8F%AF%E8%83%BD%E6%80%A7%E3%81%8C%E9%9D%9E%E5%B8%B8%E3%81%AB%E9%AB%98%E3%81%84%E3%81%A8%E8%80%83%E3%81%88%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82AES%E3%82%AD%E3%83%BC%E3%81%A7%E8%AA%8D%E8%A8%BC%E3%81%97%E3%81%9F%E5%BE%8C%E3%80%813DES%E3%81%AB%E5%A4%89%E6%9B%B4%E3%81%97%E3%81%BE%E3%81%99%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%3E0x00%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E4%BB%A3%E3%82%8F%E3%82%8A%E3%81%AB%E3%80%81%E3%82%BC%E3%83%AD%E4%BB%A5%E5%A4%96%E3%81%AE%E3%82%AD%E3%83%BC%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E5%A5%87%E6%95%B0%E3%83%91%E3%83%AA%E3%83%86%E3%82%A3%E3%83%90%E3%82%A4%E3%83%88%E3%82%92%E7%A2%BA%E5%AE%9F%E3%81%AB%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%A7%E3%80%81%E3%81%93%E3%82%8C%E3%82%92%E7%B0%A1%E5%8D%98%E3%81%AB%E3%83%86%E3%82%B9%E3%83%88%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%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%E3%81%9D%E3%82%8C%E3%81%A7%E3%82%82%E3%81%86%E3%81%BE%E3%81%8F%E3%81%84%E3%81%8B%E3%81%AA%E3%81%84%E5%A0%B4%E5%90%88%E3%81%AF%E3%80%812%E3%81%A4%E3%81%AE%E5%88%A5%E3%80%85%E3%81%AE%E3%82%BB%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A73DES%E2%86%92AES%E2%86%923DES%E3%81%AE%E9%A0%86%E3%81%AB%E5%A4%89%E6%9B%B4%E3%81%97%E3%81%A6%E3%81%BF%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%E3%81%9F%E3%81%A0%E3%81%97%E3%80%81%E3%82%BC%E3%83%AD%E4%BB%A5%E5%A4%96%E3%81%AE%E9%8D%B5%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%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%E3%81%93%E3%82%8C%E3%81%8C%E3%81%8A%E5%BD%B9%E3%81%AB%E7%AB%8B%E3%81%A6%E3%81%B0%E5%B9%B8%E3%81%84%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E