OSX CryptoTokenKit 智能卡返回错误 6d00
OSX CryptoTokenKit SmartCard returned error 6d00
我正在尝试使用 CryptoTokenKit 读取 OSX 上智能卡的主文件,但我总是收到状态字 6d00
作为响应。我也尝试 运行 对 trivial example 进行一些修改,但得到了同样的错误。我的 reader 是 Gemalto PC Twin Reader。
如果您有任何修复建议,请告诉我。
我正在使用以下代码:
TKSmartCardSlot *slot = [self.smartCardManager slotWithName:slotName];
TKSmartCard *card = [slot makeSmartCard];
card.sensitive = YES;
[card beginSessionWithReply:^(BOOL success, NSError *error) {
NSLog(@"%@", error);
NSLog(@"Proto: %ld", card.currentProtocol);
NSData *data = [CommonUtil dataFromHexString:@"3F00"]; //<3f00>
NSLog(@"%@", data);
[card sendIns:0xA4 p1:0x00 p2:0x00 data:data le:@0
reply:^(NSData *replyData, UInt16 sw, NSError *error)
{
NSLog(@"Response: %@", replyData);
if (error) {
if (error.code == TKErrorCodeCommunicationError) {
// set response error code.
}
NSLog(@"%@", error);
}
}];
}];
这很愚蠢,但是在没有成功代码 90 00
的情况下没有响应数据的 apdu 中,le
应该是 nil
。
[card sendIns:0xA4 p1:0x00 p2:0x00 data:nil le:nil
reply:^(NSData *replyData, UInt16 sw, NSError *error)
{
}
状态字 6D00 为“不支持或无效的指令代码”
http://www.cardwerk.com/smartcards/smartcard_standard_ISO7816-4_5_basic_organizations.aspx
并非所有卡都允许 select 主文件 (0x3F00)。
我正在尝试使用 CryptoTokenKit 读取 OSX 上智能卡的主文件,但我总是收到状态字 6d00
作为响应。我也尝试 运行 对 trivial example 进行一些修改,但得到了同样的错误。我的 reader 是 Gemalto PC Twin Reader。
如果您有任何修复建议,请告诉我。
我正在使用以下代码:
TKSmartCardSlot *slot = [self.smartCardManager slotWithName:slotName];
TKSmartCard *card = [slot makeSmartCard];
card.sensitive = YES;
[card beginSessionWithReply:^(BOOL success, NSError *error) {
NSLog(@"%@", error);
NSLog(@"Proto: %ld", card.currentProtocol);
NSData *data = [CommonUtil dataFromHexString:@"3F00"]; //<3f00>
NSLog(@"%@", data);
[card sendIns:0xA4 p1:0x00 p2:0x00 data:data le:@0
reply:^(NSData *replyData, UInt16 sw, NSError *error)
{
NSLog(@"Response: %@", replyData);
if (error) {
if (error.code == TKErrorCodeCommunicationError) {
// set response error code.
}
NSLog(@"%@", error);
}
}];
}];
这很愚蠢,但是在没有成功代码 90 00
的情况下没有响应数据的 apdu 中,le
应该是 nil
。
[card sendIns:0xA4 p1:0x00 p2:0x00 data:nil le:nil
reply:^(NSData *replyData, UInt16 sw, NSError *error)
{
}
状态字 6D00 为“不支持或无效的指令代码” http://www.cardwerk.com/smartcards/smartcard_standard_ISO7816-4_5_basic_organizations.aspx
并非所有卡都允许 select 主文件 (0x3F00)。