Code documentation
ragger.backend
ragger.backend.interface
Interface contract
The contract a backend must respect:
Response management policy
To change the behavior of the backend on response APDU, one can
tinker with the RaisePolicy:
ragger.error
- class ragger.error.ExceptionRAPDU(status: int, data: bytes = b'')
Depending on the
RaisePolicy, communication with an application can raise this exception.Just like
RAPDU, it is composed of two attributes:status(int), which is extracted from the two last bytes of the response,data(bytes), which is the entire response payload, except the two last bytes.
ragger.firmware
Most Ragger high-level class needs to know which Firmware they
should expect. This is declared with this class:
- class ragger.firmware.Firmware(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)
Bases:
IntEnum- NANOS = 1
- NANOSP = 2
- NANOX = 3
- STAX = 4
- FLEX = 5
- APEX_P = 6
- APEX_M = 7
- property device: str
A proxy property for
Firmware.name. This property is deprecated. It is advise to not use it.
- property is_nano
States if the firmware’s name starts with ‘nano’ or not.
- property name: str
Returns the name of the current firmware’s device
ragger.utils
ragger.utils.structs
- class ragger.utils.structs.RAPDU(status: int, data: bytes)
The dataclass containing the application’s response of an APDU from the client to the application.
It is composed of two attributes:
status(int): from the two last bytes of the payload. Common values are 0x9000 for success, other being errors.data(bytes): the rest of the response (the entire payload without the two last bytes)