mirror of
https://github.com/logos-blockchain/logos-execution-zone.git
synced 2026-05-14 12:09:35 +00:00
34 lines
943 B
Python
34 lines
943 B
Python
from .. import constants
|
|
from ..card_interface import CardInterface
|
|
from ..parsing.application_info import ApplicationInfo
|
|
|
|
|
|
def select(card: CardInterface) -> ApplicationInfo:
|
|
'''
|
|
Selects the Keycard application on the smart card and retrieves
|
|
application information.
|
|
|
|
Sends a SELECT APDU command using the Keycard AID, checks for a
|
|
successful response, parses the returned application information,
|
|
and returns it.
|
|
|
|
Args:
|
|
transport: The transport instance used to send the APDU command.
|
|
|
|
Returns:
|
|
ApplicationInfo: Parsed information about the selected Keycard
|
|
application.
|
|
|
|
Raises:
|
|
APDUError: If the card returns a status word indicating failure.
|
|
'''
|
|
result = card.send_apdu(
|
|
cla=constants.CLAISO7816,
|
|
ins=constants.INS_SELECT,
|
|
p1=0x04,
|
|
p2=0x00,
|
|
data=constants.KEYCARD_AID
|
|
)
|
|
|
|
return ApplicationInfo.parse(result)
|