如何更新包含需要跨版本保存的数据的Java Card applet?据我所知,更新applet是通过删除applet,然后安装新版本来完成的,这似乎也会删除与应用程序相关的任何持久数据。
作为一个具体的例子,假设我正在编写一个身份验证和加密小程序。applet的版本1将在安装时生成一个由硬件保护的密钥,并支持签名消息,但不加密它们。假设我想发布一个同样支持加密的版本2,并且可以使用版本1创建的密钥,那么我需要在版本1和2中做什么才能做到这一点呢?
除了纯Java之外,我对使用GlobalPlatform机制的解决方案也很开放。
发布于 2017-09-08 06:10:58
您需要第二个applet,它是拥有的,您希望在重新安装第一个applet的过程中保存所有对象。让我们称它们为Storage和Worker。
这意味着,每当员工applet需要使用Storage中的资源时,它都必须调用可共享的接口。代码大小、代码可维护性和速度都会受到影响。在Java卡或全球平台上,我想不出另一种方法来做到这一点。
发布于 2017-11-08 13:49:03
GlobalPlatform修正H卡可执行加载文件更新为此问题提供了解决方案。(PublicRelease.pdf)。但是,我不知道市场上是否已经有实现此规范的产品。
https://stackoverflow.com/questions/46103453
复制相似问题