JAVACARD2.2中selectApplet()方法的功能是什么

2024-01-07

正如 JavaCard 2.2 API 文档中提到的here http://www.win.tue.nl/pinpasjc/docs/apis/jc222/javacard/framework/Applet.html, selectingApplet()是小程序使用的方法process()区分方法SELECT从所有其他小程序中选择此小程序的 APDU 命令SELECT可能与文件或内部小程序状态选择相关的 APDU 命令,如果选择了该小程序,则返回 true。

我的问题是为什么我们需要这个方法?甚至更一般:为什么选择的小程序需要接收 SELECT-applet 命令?我认为唯一需要知道的实体SELECT- 小程序 APDU 是JCRE.

我建议以下场景:

  1. JCRE接收来自 APDU 命令CAD
  2. 检查它是否是 SELECT APDU 命令。
  3. 如果它不是一个SELECTAPDU命令,它将接收到的APDU发送到process()选择Applet的方法。选定的小程序解释并执行它(使用开关和 if 表达式,不需要使用selectingApplet() method)
  4. 如果它是一个SELECTAPDU命令,检查命令的Data Field长度,看是否是一个选择文件或者它是一个选择小程序.
  5. 如果是选择文件命令,JCRE将其发送至process()再次选择小程序的方法。但如果它是一个选择小程序命令,JCRE invoke deselet()当前选择的小程序的方法,然后调用select()新请求的小程序的方法。并在收到后True,使其被选中并等待下一个APDU命令。(甚至不需要发送之前的APDU命令SELECT-AppletAPDU 命令至process()这个新选择的小程序的方法)

上述实现有什么问题吗? JC 2.2 中当前实现的优点是什么(将所有接收 APDU 发送到process()当前选择的小程序的方法和selectingApplet()区分不同SELECT命令)

我认为当前的实现提供了一个漏洞!如果程序员以某种方式实现他/她的小程序process()方法写入所有收到的APDUs in EEPROM,他/她可以检索卡上其他一些安装的小程序的 AID。这是正确的吗?


您可以使用 SELECT 来区分 ATR(全局平台选项)后的默认选择和通过 SELECT 进行的正常选择。换句话说,区分是在 MF 中还是在应用程序 DF 中。方法select()在这两种情况下都会被调用。

此外,选择其中P1不同于04可以向终端返回(FCI/FCP)数据。运行时不知道要返回什么,因为这是特定于应用程序的。

selectingApplet()非常有用,因为您可以立即看到 Applet 实际上已通过此方法(重新)选择了。如果小程序被重新选择,您可能想要进行一些内部处理,但您肯定不希望返回指示错误的状态字。错误表明 APDU 失败,这与运行时选择小程序的事实不一致。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JAVACARD2.2中selectApplet()方法的功能是什么 的相关文章

  • SIM工具包应用-Javacard开发套件

    我正在尝试开发 STK 应用程序 但我不知道在哪里可以获得开发套件 现在对于 Javacard 我从 Oracle 网站获得了一个 但它没有 sim toolkit 包 我不想从金雅拓等公司购买它 是否有任何 免费 实施 我已经找到了欧洲电
  • Safe Max Java 卡 APDU 数据命令和响应大小

    Java Card APDU 中建议的数据字段大小是多少 来自陈志群的Java Card Technology for Smart Cards Architecture and Programmer s Guide书中提到 Le 字段最多允
  • 将 ECPublicKey 从 JavaCard 恢复到 Java

    我正在尝试在终端 由我的计算机模拟 和智能卡 Java Card 之间实现 ECDH 我修复了我想要使用的椭圆曲线 并且在卡端我有以下代码来运行协议的第一部分 ECPublicKey pubKey ECPublicKey KeyBuilde
  • 验证充气城堡上的 javacard 签名 ALG_ECDSA_SHA

    我的问题如下所示 我在 javaCard jcdk 2 2 2 上生成签名 当我想使用 BouncyCastle 在终端上验证它时 签名并不总是经过验证 3 66 中的 1 100 次尝试的平均值 签名是验证完毕 其余返回 false 当我
  • 如何获得唯一的智能卡ID?

    我正在寻找一种方法来为我使用的每张智能卡找到唯一的号码 我听说每张卡都有唯一的 IC 制造日期 IC 序列号和 IC 批次标识符 我如何从我的卡中获取这些信息 当然 每个硬件供应商都会将上述信息集成到芯片中 不幸的是 这留下了以下问题 操作
  • 如何从智能卡获取 CPLC 数据?

    我在用着GPShell在带有智能卡读卡器 型号为 ACR122 的 Ubuntu VM 上 我使用几种不同的 NXP SmartMX 芯片 使用他们的Android 标签信息应用程序 当我扫描一个特定的 SmartMX 芯片时 我能够看到
  • JavaCard 的数学库?

    我目前正在开发一个 JavaCard 项目 v 2 2 2 我需要使用平方根 对数等来计算值 我知道Math类在 JavaCard API 中不可用 想知道是否存在另一个提供此类操作的库 而且我也不能用double价值观 但我需要 有没有一
  • 使用 Java 卡钱包

    我是一个java卡初学者 从示例中复制了下面的代码 不知何故 我已经知道部分代码是如何工作的 但还是对下面的事情感到困惑 ownerpin 的工作方式以及设置 pin 的方式和时间 如何进行信用和借记工作 我了解平衡是如何运作的 这方面还不
  • 为什么使用Shareable接口时小程序转换失败? (这种情况下如何使用导出文件)

    我写了两个java卡小程序 名为大师应用程序 and SlaveApp位于两个不同的包中 名为大师包 and 从包 掌握艾滋病 包裹 01 02 03 04 01 小程序 01 02 03 04 01 01 奴隶援助 包裹 01 02 03
  • jcop 小程序上传错误

    我是 Java 卡开发的新手 我用jcop工具作为开发套件 当我在 Eclipse 中运行简单的小程序时 出现此错误 在运行配置中我选择Java卡模拟模式 在模拟模式下成功安装后 我想在java卡中安装应用程序 cm gt upload b
  • 如何使用java卡apdu从智能卡写入和读取数据

    我写了一个小程序并将其安装在智能卡中 但我不知道如何读写智能卡数据 private void readName APDU apdu throws ISOException byte apduBuffer apdu getBuffer for
  • 验证和认证的区别?

    如您所知 我们通过以下方式向卡证明我们是真实用户INITIAL UPDATE and EXTERNAL AUTHENTICATION命令 如下 lt 80 50 00 00 08 Host Challenge gt lt 84 82 03
  • 在javacard中安装小程序

    我通过 Eclipse 制作了流行的 Hello World javacard 代码的 cap 文件 现在我想通过 GPShell 和 ACR38 智能卡读卡器将其加载到真正的 javacard 中 问题 我需要任何密钥才能将 cap 文件
  • Java 卡连接到模拟器失败

    我正在尝试测试 Java Card 小程序以建立与 cref 等模拟器的连接 try sckClient new Socket localhost 9025 InputStream is sckClient getInputStream O
  • 数据字段中包含 SSD AID 的删除 APDU 命令,返回 6985

    我有一个包含 SSD 补充安全域 的 Javacard 我想删除它 通常 当我想从卡中删除小程序或包时 我会发送以下内容删除 APDU成功后命令相互认证过程 不需要 MAC 或数据字段加密 并且Security Level 0就足够了删除
  • 安装后将 Javacard 小程序标记为隐式可选(默认小程序)

    我正在寻找一种方法 将小程序标记为隐式可选 默认选择 小程序 然后将其上传并安装在全球平台 http www globalplatform org JCOP 2 4 2 R1 http www nxp com products identi
  • Secure Com SCP02 会话:响应初始化更新命令返回的“密钥多样化数据”的作用是什么

    在初始化更新命令的响应字段中 密钥多样化数据 包含制造商ID和安全域AID的最后两个字节 被返回到Off Card实体 我想知道这些数据的用途是什么 我在某处读到 该密钥多样化数据用于派生卡外的基本密钥 我不知道这是对还是错 如果是正确的
  • Java Card 中的加密/解密输出 + 相应的 APDU

    我对 Java Card 的整个主题很陌生 并尝试查看一些代码示例以更好地理解 我在以下位置找到了 AES 使用示例甲骨文论坛 https community oracle com thread 1751988但以下部分有一些问题 priv
  • 在 Java Card 上将 byte[] 转换为 Short[] 的快速方法

    我想在 Java 卡上优化 SHA 3 算法 我需要一种消耗更少内存的快速算法 可以轻松转换byte to short 或短 to byte 我当前的实现如下所示 private short byteToShort byte b int l
  • jcop是在java卡中安装小程序的唯一方法吗?

    我正在尝试理解java卡的概念 我有一些疑问 我想与大家分享 也许你会对我有任何最好的建议 Jcop 我在某处读到 Java Card OpenPlatform JCOP 是由 IBM Z rich Research Laboratory

随机推荐

  • 在Python/Pandas中将dtype“object”的所有列转换为“float”

    我想将数据框中的所有 对象 类型列转换为另一种数据类型 浮点数 而不需要对列名称进行硬编码 我能够从其他似乎有效的答案中拼凑出一些代码 但我觉得必须有一种更简单的方法来做到这一点 Creating isolating columns of
  • 使用 Selenium Python chromeDriver 向下滚动到结束页面

    请帮忙 我想向下滚动到袋子的末尾 但它停止了 我尝试的代码在这里 browser webdriver Chrome browser get url button browser find element by tag name html o
  • Slick:选项列过滤

    我想做这样的事情 这是一个虚构的例子 以简化我的实际问题 def findByGender isMale Option Boolean People filter row gt row name isNotNull isMale match
  • 如何禁用编译器和 JVM 优化?

    我有这段正在测试的代码Calendar getInstance getTimeInMillis vs System currentTimeMilli long before getTimeInMilli for int i 0 i lt T
  • 从 java 代码启动和停止 Tomcat

    基于我在 Stackoverflow 和互联网上其他页面上看到的代码 我创建了一种方法来停止和启动 tomcat 此时我将在系统中运行一个进程 因为我需要清理操作系统中的内存 我使用System gc 但仍然不足以释放内存 这是代码 全球声
  • 将 UTF-8 转换为 base64 字符串

    我正在尝试转换UTF 8 to base64 string 示例 我有 abcdef UTF 8 它实际上是一个 代表 base64细绳 如何检索 abcdef base64字符串 请注意 我不想要来自的 abcdef 翻译 UTF 8 我
  • Java 8:Lambda 函数和通用通配符

    我有以下课程 class Book implement Borrowable Override public String toString Function
  • NSOperationQueue 在 iPhone 上不重用线程

    我正在使用 iPhone SDK 3 1 2 以下代码显示 NSOperationQueue 不会为每个任务重用线程 该代码在 Snow Leopard 上没有任何问题 void applicationDidFinishLaunching
  • YouTube API - 检索超过 5000 个项目

    我只想获取所有我喜欢的视频 25k 项 据我的研究表明 通过 YouTube v3 API 是不可能实现这一点的 我已经发现多个问题 issue https stackoverflow com questions 56389215 how
  • 使用 jQuery 计算两个特定行之间的表行数

    table tr td Parent 1 td tr tr class child td Child 1 td tr tr class child td Child 2 td tr tr td Parent2 td tr table 如何使
  • 将VBA中的文件路径替换为用户名

    我有一个 Excel 文件 上面写有 VBA 它从我的计算机上的文件中提取信息 Excel 文件位于网络文件夹中 我希望网络上的其他用户也能使用它 但是 我已对 VBA 上的文件路径进行了硬编码 因此 每当其他用户打开它时 它都会查找不可用
  • 如何在应用程序域之间传递事件?

    我有两个应用程序域 一个父域创建子域 在子域中 有一个MarshalByRef对象 使用 NET Remoting 进行通信 在父域中运行的对象调用远程对象的包装器作为应用程序功能的一部分 public class ScanningTask
  • 这是什么意思? (谷歌地图 API)

    我在控制台中收到此错误消息 谁能解释为什么 并且页面正在正常运行 js key MyAPIKey v 3 exp libraries places drawing geometry 32 InvalidValueError not an i
  • 将用户 ID 添加到 PhoneGap 文件上传

    我想使用 PhoneGap API 上传照片 FileTransfer 对象基本上就是我想要的 因为我想上传照片 但我想包含一些有关用户的基本信息 例如他们的用户 ID 以便我可以将其存储为他们的 我的代码如下 这基本上来自PhoneGap
  • ifstream 未打开文件

    在此函数中 我试图打开一个文件 其中包含一组我想分配给矩阵数组的字符 但是每当我运行此程序时 控制台都会显示一条错误 指出该文件未打开 另一个问题 如果我将该文件添加到我的资源文件夹中 我如何指定访问该文件而不是硬盘驱动器根目录中的文件 i
  • Keras:如何在训练和测试阶段使用 dropout?

    是否可以在 Keras 的训练和测试阶段使用 dropout 就像这里描述的那样 https github com soumith ganhacks 17 use dropouts in g in both train and test p
  • Office.context.mailbox.displayNewMessageForm 在移动设备中不起作用

    我试图通过单击 Outlook Web 插件中的按钮来创建新的邮件表单 然后使用显示新消息表格 https learn microsoft com en gb office dev add ins reference objectmodel
  • 视图何时附加和分离?

    这个问题是not关于如何检测视图是否已附加或分离 一般来说 什么时候附加或分离视图 有这方面的生命周期图吗 为了澄清 我正在寻找以下情况下发生的情况的答案 活动发送到背景 不透明视图放置在顶部 可见性设置为GONE 视图膨胀 父级分离等 这
  • Yii - 对上传表单进行模型单元测试

    我有以下上传表单模型 class TestUploadForm extends CFormModel public test public function rules return array array test file types
  • JAVACARD2.2中selectApplet()方法的功能是什么

    正如 JavaCard 2 2 API 文档中提到的here http www win tue nl pinpasjc docs apis jc222 javacard framework Applet html selectingAppl