smartcard - APDU 命令可以在 Java 卡小程序*内部*执行吗?

标签 smartcard javacard jcop

我们知道 Applet.process() 方法在 APDU 请求及其 APDU 响应之间调用,即它可以读取一些传入的 APDU 并发送一些传出的作为响应。

但是,Applet 可以发送自己的 APDU 命令并获得响应吗?即:

public void process(APDU apdu)
{
...
APDU resp = SomeAPI.someMethod("00A40101FF...");
...
}

最佳答案

But, can Applet send its own APDU command and get the response?

简单的答案是,您无法为另一个小程序发送APDU,因为您无权访问命令调度程序。但有一种方法可以做到这一点,请阅读下文。

public void process(APDU apdu)
{
...
APDU resp = SomeAPI.someMethod("00A40101FF...");
...
}

在java卡小程序(直到最新版本3.0.5u)中,这样的事情是不可能的,因为在这里您存储了APDU对象的引用,而临时JCRE入口点对象及其引用不能被存储。

现在,实现您想要的功能。使用可共享的接口(interface)对象。显然,您需要在这里修改目标小程序(您要调用的)。通过可共享对象调用小程序将为您执行上下文切换,之后您可以返回到您的小程序。

引用http://www.oracle.com/technetwork/java/javacard/specs-jsp-136430.html

关于smartcard - APDU 命令可以在 Java 卡小程序*内部*执行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49889334/

相关文章:

applet - 如何在JavaCard中存储大于128字节的数据

cryptography - 如何使用 RSA 加密为 Java Card 上的数字供电

Javacard - 签名和验证

smartcard - 智能卡预个性化和历史字节

windows-phone-8 - 如何使用 Windows Phone 8 NFC 应用程序将 APDU 命令发送到智能卡

c# - C# 中来自智能卡的证书

asp.net - 远程站点和客户端私钥

c++ - 我可以从智能卡中的 key 容器中获取公钥/私钥对吗?

for-loop - for循环中的Java Card内存泄漏?

JavaCard 3 Eclipse 转换器错误,找不到包 org.globalplatform 的导出文件 globalplatform.exp