我正在尝试为Java卡小程序实现双向身份验证流程。以下是我的方法。
我在第二步挣扎。所有其他人似乎微不足道。我需要找到一种方法将外部创建的公钥编码为字节数组,然后将该字节数组传输到Java卡小程序并重新构建公钥并将其存储在持久存储器中。
对此有任何提示。
答案 0 :(得分:2)
使用以下命令数据创建APDU:
00
(如果存在)04
04
指示符01
)set...
方法设置密钥并且为您准备一个EC密钥。
您当然也可以解析PKCS#8 EC密钥或为每个字段使用长度指示器,但这种方法可能是最紧凑的方法。
答案 1 :(得分:-3)
要实现这一点,你必须创建一个Javacard小程序......如下所示
class MyApplet extends javacard.framework.Applet
{
// ...
public void process(APDU apdu)
{
// ...
byte[] buffer = apdu.getBuffer();
//Other stuff
}
}
要使用public void process(APDU apdu)
方法,您应该选择具有AID的applet,然后每个命令都会开始使用此方法。
您可以创建自己的专有APDU来发送" offcard应用程序私钥"并且可以在这里得到
byte[] buffer = apdu.getBuffer();
然后您可以将其存储在applet的持久数组中。