stkutil: Add get reader status command parser

This commit is contained in:
Yang Gu 2010-05-13 18:48:41 +08:00 committed by Denis Kenzior
parent d6e1718a82
commit 1a5d9bc8d5
2 changed files with 32 additions and 0 deletions

View File

@ -2661,6 +2661,30 @@ static gboolean parse_power_on_card(struct stk_command *command,
return TRUE;
}
static gboolean parse_get_reader_status(struct stk_command *command,
struct comprehension_tlv_iter *iter)
{
if (command->src != STK_DEVICE_IDENTITY_TYPE_UICC)
return FALSE;
switch (command->qualifier) {
case STK_QUALIFIER_TYPE_CARD_READER_STATUS:
if (command->dst != STK_DEVICE_IDENTITY_TYPE_TERMINAL)
return FALSE;
break;
case STK_QUALIFIER_TYPE_CARD_READER_ID:
if ((command->dst < STK_DEVICE_IDENTITY_TYPE_CARD_READER_0) ||
(command->dst >
STK_DEVICE_IDENTITY_TYPE_CARD_READER_7))
return FALSE;
break;
default:
return FALSE;
}
return TRUE;
}
struct stk_command *stk_command_new_from_pdu(const unsigned char *pdu,
unsigned int len)
{
@ -2770,6 +2794,9 @@ struct stk_command *stk_command_new_from_pdu(const unsigned char *pdu,
case STK_COMMAND_TYPE_POWER_ON_CARD:
ok = parse_power_on_card(command, &iter);
break;
case STK_COMMAND_TYPE_GET_READER_STATUS:
ok = parse_get_reader_status(command, &iter);
break;
default:
ok = FALSE;
break;

View File

@ -198,6 +198,11 @@ enum stk_device_identity_type {
STK_DEVICE_IDENTITY_TYPE_NETWORK = 0x83,
};
enum stk_qualifier_get_reader_status_type {
STK_QUALIFIER_TYPE_CARD_READER_STATUS = 0x00,
STK_QUALIFIER_TYPE_CARD_READER_ID = 0x01,
};
enum stk_duration_type {
STK_DURATION_TYPE_MINUTES = 0x00,
STK_DURATION_TYPE_SECONDS = 0x01,