diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/SecurityTokenHelper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/SecurityTokenHelper.java index bc1c42f7f..a4f950254 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/SecurityTokenHelper.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/SecurityTokenHelper.java @@ -477,10 +477,18 @@ public class SecurityTokenHelper { String data = "00CA006E00"; byte[] buf = mTransport.transceive(Hex.decode(data)); - Iso7816TLV tlv = Iso7816TLV.readSingle(buf, true); - Log.d(Constants.TAG, "nfcGetFingerprints() Iso7816TLV tlv data:\n" + tlv.prettyPrint()); + Iso7816TLV[] tlvs = Iso7816TLV.readList(buf, true); + Iso7816TLV fptlv = null; + + for (int i = 0; i < tlvs.length; i++) { + Log.d(Constants.TAG, "nfcGetFingerprints() Iso7816TLV tlv data:\n" + tlvs[i].prettyPrint()); + + Iso7816TLV tlv = Iso7816TLV.findRecursive(tlvs[i], 0xc5); + if (tlv != null) { + fptlv = tlv; + } + } - Iso7816TLV fptlv = Iso7816TLV.findRecursive(tlv, 0xc5); if (fptlv == null) { return null; }