aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/smartcard/Transport.java
diff options
context:
space:
mode:
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/smartcard/Transport.java')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/smartcard/Transport.java30
1 files changed, 28 insertions, 2 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/smartcard/Transport.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/smartcard/Transport.java
index 5252a95d0..fa8b0695a 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/smartcard/Transport.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/smartcard/Transport.java
@@ -2,14 +2,40 @@ package org.sufficientlysecure.keychain.smartcard;
import java.io.IOException;
+/**
+ * Abstraction for transmitting APDU commands
+ */
public interface Transport {
- byte[] sendAndReceive(byte[] data) throws IOException;
+ /**
+ * Transmit and receive data
+ * @param data data to transmit
+ * @return received data
+ * @throws IOException
+ */
+ byte[] transceive(byte[] data) throws IOException;
+ /**
+ * Disconnect and release connection
+ */
void release();
+ /**
+ * Check if device is was connected to and still is connected
+ * @return connection status
+ */
boolean isConnected();
- boolean allowPersistentConnection();
+ /**
+ * Check if Transport supports persistent connections e.g connections which can
+ * handle multiple operations in one session
+ * @return true if transport supports persistent connections
+ */
+ boolean isPersistentConnectionAllowed();
+
+ /**
+ * Connect to device
+ * @throws IOException
+ */
void connect() throws IOException;
}