尝试使用java smartcardio进行相互身份验证后出现0x6A88错误

尝试使用java smartcardio进行相互身份验证后出现0x6A88错误,java,smartcard,javacard,pcsc,Java,Smartcard,Javacard,Pcsc,我一直在尝试在Java上进行相互身份验证,这就是我正在做的: 首先我要求挑战,得到了随机数 TRX --> 0084000008 REC <-- 4E621D238C8B185F 9000 有没有人在Java进行相互身份验证时遇到过同样的问题 有人找到解决方案了吗?我的问题是,我试图在错误的小程序上执行相互身份验证。在get challenge APDU之前,我刚刚选择了正确的小程序id,并最终获得了它。什么协议的相互身份验证?你做了一个选择援助吗?是的,我忘了把它放在我的问题。

我一直在尝试在Java上进行相互身份验证,这就是我正在做的:

首先我要求挑战,得到了随机数

TRX --> 0084000008
REC <-- 4E621D238C8B185F 9000 
有没有人在Java进行相互身份验证时遇到过同样的问题


有人找到解决方案了吗?

我的问题是,我试图在错误的小程序上执行相互身份验证。在get challenge APDU之前,我刚刚选择了正确的小程序id,并最终获得了它。

什么协议的相互身份验证?你做了一个选择援助吗?是的,我忘了把它放在我的问题。但是你给了我一个可能是我的问题的线索,我选择了一个小程序,但是当我必须在另一个小程序中进行相互验证时。我会更新我的帖子。谢谢@owlstead谢谢@owlstead!我试图在一个错误的小程序上进行相互身份验证。
TRX --> 0082000028[seed enc mac ... bytes transformed]00
REC <-- 6A88
public CardTerminal getCardTerminal() throws Exception {
    CardTerminal ct = null;
    TerminalFactory terminalFactory = TerminalFactory.getDefault();        
    CardTerminals cardTerminals = terminalFactory.terminals();
    // Searches for first card terminal available on the PC
    if (cardTerminals.list().isEmpty() == false) {
        ct = cardTerminals.list().get(0);
    }
    return ct;
}

public void test() throws Exception {
    CardTerminal cardTerminal;
    Card card;
    MyManager instance;

    cardTerminal = getCardTerminal(); 
    instance = new DpiV2Manager();

    card = cardTerminal.connect("T=1");
    card = connect(cardTerminal);
    card.beginExclusive();
    CardChannel cardChannel = card.getBasicChannel();

    // Inside this method I do the get challange, mutual auth, etc
    instance.readGeneralData(cardChannel); 

    card.endExclusive();
    card.disconnect(true);
}