JavaCard 中的类字节到底是什么?

2023-12-21

我已经开始使用 JavaCards 并试图掌握 CLA 字节的含义。

如果要读RFC 5.4.1 类字节 http://www.cardwerk.com/smartcards/smartcard_standard_ISO7816-4_5_basic_organizations.aspx#table8

5.4.1 类字节

根据与表 9 结合使用的表 8,类别字节 命令的 CLA 用于指示命令和响应在多大程度上符合 ISO/IEC 7816 的本部分以及适用时(参见表 9)、安全消息传递的格式和逻辑通道号。

那么... CLA 标志用于指示,但具体是什么?因为,表格和描述对于初学者来说相当困难,我知道通常使用下一个 CLA 字节:0x00, 0x80, 0x84.

例如如果从表中读取内容:

  • 0X' 根据 ISO/IEC 7816 本部分的命令和响应的结构和编码('X' 的编码见表 9)

  • 10 至 7F RFU

  • 保留给PTS

我明白为了良好的发展 - 我应该阅读GlobalPlatform规格,有关确切卡的规格(我的是NXP one https://smartcard-atr.appspot.com/parse?ATR=3B8880014A434F50763234315E)和其他相关材料,但我承认,这些内容很难理解。

我期望以下内容(伪表):

  • 0x00 -> 用于从文件系统读取流
  • 0x01 -> 用于将字节缓冲区写入内存块
  • 0x02 -> 调用 AES/RSA 方法

CLASS 字节在 ISO 7816-4 中定义。第一位表示行业间类别。 Java Card 小程序应按照该行业间标准运行。 Global Platform 是管理和维护卡的另一个规范,所有命令都将具有类字节 0x80 - 0x8F。类字节 0xFF 在某些情况下用于与读卡器通信,否则对卡无效。

CLA 的行业间含义有 3 个主要功能:

功能1:链接
bit5 = 1 表示当前命令不是链中的最后一个命令,这意味着多个 APDU 都属于一起,因此卡可以执行其他操作

功能 2:安全消息传递
位 4+3 用于表示当前命令的安全消息传送状态。这意味着 APDU 已通过身份验证(例如 MACed)并且数据已加密(例如分组密码)。命令头从未加密。

功能3:逻辑通道
bit2+1用于标识逻辑通道号。逻辑通道是通过卡的并行通信接口,因此可以在通道 0 上选择小程序 A,在通道 1 上选择小程序 B,同时两个小程序都保持其内部状态(没有 RAM 重置)。大多数卡不支持逻辑通道,或者您必须显式启用它们。

CLA 字节是 Java 卡初学者的典型陷阱,通常最好从 0x00 开始。

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

JavaCard 中的类字节到底是什么? 的相关文章

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

    我正在尝试开发 STK 应用程序 但我不知道在哪里可以获得开发套件 现在对于 Javacard 我从 Oracle 网站获得了一个 但它没有 sim toolkit 包 我不想从金雅拓等公司购买它 是否有任何 免费 实施 我已经找到了欧洲电
  • 从字节数组创建私钥

    有没有办法从字节数组生成私钥 我使用 getEncoded 方法获取了这个字节数组 但现在我必须将其转换回 PrivateKey 谢谢 武克 我也在寻找这个答案 终于找到了 keyBytes 是最初使用 getEncoded 创建的字节数组
  • 将 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价值观 但我需要 有没有一
  • 在智能卡上上传 .cap 文件?

    我有一张新卡 其 ATR 代码如下 3B 68 00 00 00 73 C8 40 12 00 90 00 我在谷歌上搜索了这张ATR 最后我知道这是一张 巴西电子公积金卡 问题是我该如何使用这张卡 我的意思是它支持哪些 APDU 有它的数
  • 从 javacard 小程序读取大文件

    我正在编写一个小程序 它存储 3 个不同大小的文件 5 Kb 7 Kb 和 11 Kb 我在小程序中存储文件没有任何问题 但是当我尝试读回它们时 我只能读取前两个 较小的文件 第三个文件抛出异常 javax smartcardio Card
  • 为什么使用Shareable接口时小程序转换失败? (这种情况下如何使用导出文件)

    我写了两个java卡小程序 名为大师应用程序 and SlaveApp位于两个不同的包中 名为大师包 and 从包 掌握艾滋病 包裹 01 02 03 04 01 小程序 01 02 03 04 01 01 奴隶援助 包裹 01 02 03
  • 处理方法未从主机接收完整的 APDU 命令?

    主机向小程序发送以下命令选择EF文件 00 A4 02 00 02 40 01 目的是选择带ID的EF文件40 01 在命令的数据字段中指定 但是当我调试 process APDU apdu 方法时 APDU 缓冲区仅包含前 5 个字节00
  • 如何使用java卡apdu从智能卡写入和读取数据

    我写了一个小程序并将其安装在智能卡中 但我不知道如何读写智能卡数据 private void readName APDU apdu throws ISOException byte apduBuffer apdu getBuffer for
  • JAVACARD2.2中selectApplet()方法的功能是什么

    正如 JavaCard 2 2 API 文档中提到的here http www win tue nl pinpasjc docs apis jc222 javacard framework Applet html selectingAppl
  • 向 Javacard 发送扩展 APDU

    我有一个 ACR38 智能卡读卡器和一些符合 GP 规范 02 的 Javacard 2 1 1 据我所知 有两种APDU 短APDU APDU 与LC or and LE比 短255 and 扩展APDU APDU 与LC or and
  • 如何创建和使用Java Card库包?

    正如您可能知道的 正如中提到的Java 卡开发套件用户指南为Java Card平台编写大型应用程序的关键是将代码划分为单独的包单元 软件包最重要的限制是最大组件大小为 64KB 对于 方法组件 如果应用程序的方法组件的大小超过 64KB 那
  • Java 卡连接到模拟器失败

    我正在尝试测试 Java Card 小程序以建立与 cref 等模拟器的连接 try sckClient new Socket localhost 9025 InputStream is sckClient getInputStream O
  • 扩展 APDU 和 T=0/1 通信协议

    我有一个 JCOP V2 4 2 R3 java 卡 它的数据表中提到 该卡支持T 1 and T 0通信协议 我还有一个 ACR38 智能卡读卡器 它支持 T 0 和 T 1 协议 我与一张卡成功进行了 T 0 通信 并且与该卡成功进行了
  • Javacard 中的 ECDSA 签名

    我正在 Javacard 中使用 ECDSA 实现签名代码 我的代码在异常部分输出 0x0003 NO SUCH ALGORITHM 这意味着该卡不支持该算法 我不明白这一点 因为我的供应商告诉我它支持 ECC 我的结论是 我不知道如何使用
  • 在 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

随机推荐

  • 如何制作 MKAnnotationView 下降动画?

    我有一个自定义 MKAnnotationView 我自己在 viewForAnnotation 中设置图像 如何像使用 MKPinAnnotationView 一样为其掉落设置动画 我的代码是 MKAnnotationView mapVie
  • Keras 使用预训练嵌入初始化大型嵌入层

    我正在尝试使用预训练的嵌入和自定义语料库在 Keras 2 中使用 Tensorflow 后端重新训练 word2vec 模型 这就是我使用预训练嵌入来初始化嵌入层的方法 embedding Embedding vocab size emb
  • 想要有效地克服 Boost.Interprocess 共享内存中映射中关键类型之间的不匹配

    我正在使用 Boost Interprocess 在共享内存中创建一个映射 在本示例中从字符串到字符串 编译器似乎想强迫我在从映射检索期间在 托管段只是为了 不必要地 包含查询项 我希望能够 通过将映射的键与非共享内存中已有的实例进行匹配
  • 奥里利亚的全球职能

    我试图弄清楚如何在 Aurelia 中存储类似 全局 的函数 我已经按照这个教程 http blog durandal io 2015 04 24 aurelia custom elements and content selectors
  • 使用 Typescript 从 switch case 返回进行类型推断

    函数的类型 type fn01 name string gt void type fn02 age string gt void type fn03 description number gt void 我有这样一个案例 type Opti
  • 检测二维图中的倾角

    我需要自动检测二维图中的倾角 如下图中用红色圆圈标记的区域 我只对 主要 倾角感兴趣 这意味着倾角必须在 x 轴上跨越最小长度 倾角的数量是未知的 即不同的地块将包含不同数量的倾角 有任何想法吗 Update 根据要求 这里是示例数据 以及
  • 通过单元测试访问 Symfony 2 容器?

    如何在单元测试中访问 Symfony 2 容器 我的图书馆需要它 所以它是必不可少的 测试类扩展 PHPUnit Framework TestCase所以没有容器 Symfony 现已内置支持 看http symfony com doc m
  • Web应用程序访问用户的文件系统

    我正在为我的客户创建一个网络应用程序 该应用程序将安装在公司网络内的专用服务器上 他想在网页上查看他的本地文件列表 来自他的本地 PC 他的意思是任何访问者都可以从某个文件夹中看到他的本地文件列表 I knowWeb 应用程序无法访问访问者
  • React-select:如何在选项中显示 HTML

    我想知道react select是否可以在渲染选项中显示html 例如 如果获取的 ajax 选项有 b text b 我希望在下拉菜单中看到粗体文本 而不是看到 b text b 我阅读了文档 但没有找到任何选项 谢谢 我实现了上述解决方
  • 什么是 DOM 元素?

    以下语句中 DOM 元素的含义是什么 声明 1 https stackoverflow com questions 1065435 can a css class inherit one or more other classes 1065
  • 如何使用 W3C EBNF-Notation 并生成解析器生成器?

    在整个 RDF 规范中 EBNF NOTATION XML 规范用于指定文档的语法 所以我想知道如何使用 Antlr bison yacc 也许这些工具中的一些标志我不知道如何搜索 或者我还不知道的其他工具 来使用这些规范并生成解析器供我在
  • 如何记录 QApplication 未捕获的异常?

    我应该在哪里使用 except 块来记录异常QApplication 这似乎不起作用 app QtGui QApplication sys argv MainWindow MainWindow MainWindow show try eve
  • 查看文件路径是否在目录内

    如何检查不一定存在的文件的路径是否指向特定目录内的位置 说我有一个方法 bool IsInside string path string folder 然后 如果我这样称呼它 IsInside C Users Dude Hi C Users
  • VIsual Studio 2010,轻松最大化/最小化编辑器?

    有没有一种简单的方法可以最大化and最小化 恢复 Visual Studio 中的编辑器 为了演示 我正在寻找 Eclipse 具有的功能 正常布局 点击一个组合键 你就会得到这个 这看起来有点像 VS2010 中的 Windows gt
  • Python Plotly - 多个下拉图,每个下拉图都有子图

    Problem 我正在尝试结合两个 Python Plotly 功能 其中之一是下拉菜单 用户可以在其中切换绘图 链接到示例 https plot ly python dropdowns 另一个特点是次要情节 我的尝试 我有使用下拉菜单的工
  • 为 log4net 设置动态连接字符串

    我正在使用 log4net 并且我想在 log4net 配置中引用一个连接字符串 因为 Config connectionStrings config 中的连接字符串将是来自用户的动态输入 这是我正在尝试做的事情
  • 如何在不打开 Whatsapp 应用程序的情况下向 Whatsapp 发送消息到指定号码

    我想将消息发送到 Whatsapp 指定号码 而无需单击按钮打开 Whatsapp 应用程序 提前致谢 None
  • mysql加载数据本地infile

    我正在尝试使用下面的代码使用 LOAD DATA LOCAL INFILE 将数据加载到 mysql 表中 Mysql LOAD DATA INFILE var www vhosts domain com httpdocs test1 cs
  • 有人可以帮我编译 PHP runkit DLL 扩展吗?

    我放弃 我问过这个问题 https stackoverflow com questions 4667333 where can i get runkit dll extensions for php 5 3前一段时间 但我又陷入了这个问题
  • JavaCard 中的类字节到底是什么?

    我已经开始使用 JavaCards 并试图掌握 CLA 字节的含义 如果要读RFC 5 4 1 类字节 http www cardwerk com smartcards smartcard standard ISO7816 4 5 basi