pyecsca.sca.target.ISO7816 module
Provides classes for working with ISO7816-4 APDUs and an abstract base class for an ISO7816-4 based target.
-
exception CardConnectionException[source]
Bases: Exception
Card could not be connected.
-
add_note()[source]
Exception.add_note(note) –
add a note to the exception
-
args[source]
-
with_traceback()[source]
Exception.with_traceback(tb) –
set self.__traceback__ to tb and return self.
-
class CardProtocol(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]
Bases: IntEnum
Card protocol to use/negotiate.
-
T0 = 0[source]
-
T1 = 1[source]
-
class CommandAPDU(cls, ins, p1, p2, data=None, ne=None)[source]
Bases: object
Command APDU that can be sent to an ISO7816-4 target.
-
cls:
int
[source]
-
ins:
int
[source]
-
p1:
int
[source]
-
p2:
int
[source]
-
data:
Optional
[bytes
] = None[source]
-
ne:
Optional
[int
] = None[source]
-
class ResponseAPDU(data, sw)[source]
Bases: object
Response APDU that can be received from an ISO7816-4 target.
-
data:
bytes
[source]
-
sw:
int
[source]
-
class ISO7816Target[source]
Bases: Target
, ABC
ISO7816-4 target.
-
abstract connect(protocol=None)[source]
Connect to the card.
- Parameters:
protocol (Optional
[CardProtocol
]) – CardProtocol to use.
-
abstract property atr: bytes[source]
Return the ATR (Answer To Reset) of the target.
-
abstract select(aid)[source]
Select an applet with aid
.
- Parameters:
aid (bytes
) – The AID of the applet to select.
- Return type:
bool
- Returns:
Whether the selection was successful.
-
abstract send_apdu(apdu)[source]
Send an APDU to the selected applet.
- Parameters:
apdu (CommandAPDU
) – The APDU to send.
- Return type:
ResponseAPDU
- Returns:
The response.
-
abstract disconnect()[source]
Disconnect from the target device.
-
class ISO7816[source]
Bases: object
Bunch of ISO7816-4 constants (status words).
-
SW_FILE_FULL = 27268[source]
-
SW_UNKNOWN = 28416[source]
-
SW_CLA_NOT_SUPPORTED = 28160[source]
-
SW_INS_NOT_SUPPORTED = 27904[source]
-
SW_CORRECT_LENGTH_00 = 27648[source]
-
SW_WRONG_P1P2 = 27392[source]
-
SW_INCORRECT_P1P2 = 27270[source]
-
SW_RECORD_NOT_FOUND = 27267[source]
-
SW_FILE_NOT_FOUND = 27266[source]
-
SW_FUNC_NOT_SUPPORTED = 27265[source]
-
SW_WRONG_DATA = 27264[source]
-
SW_APPLET_SELECT_FAILED = 27033[source]
-
SW_COMMAND_NOT_ALLOWED = 27014[source]
-
SW_CONDITIONS_NOT_SATISFIED = 27013[source]
-
SW_DATA_INVALID = 27012[source]
-
SW_FILE_INVALID = 27011[source]
-
SW_SECURITY_STATUS_NOT_SATISFIED = 27010[source]
-
SW_WRONG_LENGTH = 26368[source]
-
SW_BYTES_REMAINING_00 = 24832[source]
-
SW_NO_ERROR = 36864[source]