[英]Definition of package, module, applet in Java Card
我正在寻找一种方法来解释或描述Java Card中的包,模块和applet的概念。 是否有人知道如何描述它,以便使人容易理解。
只是为了从我的理解,包,模块和小程序之间的结构和关系提供更多信息。
Package AID
|--> Module AID
|--> Applet AID
在Java编程中,
Java包是一种将Java类组织到名称空间中的机制
但是,当涉及到Java Card时,会类似吗? 那模块呢?
我仍在网上搜索,如果有人可以提供帮助,那就太好了!
提前致谢。
一个包含多个Applet的javacard程序包将在Applet中创建多个实例。 包,Applet和实例是真实存在的。
实际上,模块和Applet是相同的,只是存在形式不同。 在运行或调试期间出现模块。 如下:
包<==>加载文件
小程序<==> Moudle
实例<==>应用程序
包-提供用于构建,与基于Java Card技术的applet进行通信和一起使用的类和接口的框架。 这些类和接口为Java Card环境提供了最低要求的功能。 如果需要其他功能(例如,将卡专门用于特定市场),则需要添加其他框架。
Javacard(以及安装在javacard上的applet)支持特定的APDU,具体取决于所安装的applet(以及用于安装applet的特定APDU)。javacard文档是开始学习此内容的最佳位置。
一些智能卡预先安装了Applet,这些Applet保留了用于生物识别数据的空间。 例如“ PIV”卡(和关联的小程序)。
如果您的卡没有预先安装用于存储生物特征数据的小程序,则需要编写并安装一个小程序。
Javacard包也是一种将Java代码组织到名称空间中的机制。 在javacard的世界中,程序包已映射到CAP文件,您可以将其加载到卡上。 您的javacard软件包可能包含模块。
正如您所指,Module是扩展Applet类的类,因此至少包含install()和process()方法。 模块和标准(非Applet)类之间的区别在于,模块可以作为应用程序进行实例化和访问(可以选择并可以向其发送APDU命令),而标准类只能作为普通Java实例化。对象,在您的javacard代码中。
实例化模块时,还为该新实例提供了AID(您称为Applet AID)。
这是高级答案。 有关更多详细信息,请阅读javacard规范。
Package AID
,它使Card Manager可以标识必须从中安装applet实例的程序包。 Module AID
是Module AID
,它允许卡管理器检索在加载文件中定义的applet的AID。 Applet or Instance AID
是要安装的Applet or Instance AID
。 卡片管理器会检查此值,因为两个卡片上的实体在卡片的注册表中不能具有相同的AID值。 如果发生这种情况,该命令将中止,并且卡管理器将恢复所有卡上资源。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.