问题标签 [globalplatform]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
applet - 在 JavaCard 上安装扩展小程序
如何将扩展的 Java-Card-applet 部署到我的卡上?到目前为止,我只处理经典小程序并在 OS X 下使用 GlobalPlatformPro 安装它们。
但是,当我尝试安装扩展小程序(使用gp -install KCIdentity.eap
)时,它会失败并显示以下消息:
有谁知道我如何将我的小程序部署到我的卡上(最好使用 OS X,但 Debian 或 Windows 也可以)?
编辑:链接到 GlobalPlatformPro:https ://github.com/martinpaljak/GlobalPlatformPro
更新:这与扩展 APDU 无关,而是与 Java-VM 版本有关。经典小程序使用 2.x 版,而扩展小程序使用 3.y 版。NetBeans 将扩展的小程序打包在一个似乎不受支持的 *.eap 文件中......但是我会看看是否可以将它打包在一个 *.cap 文件中。改名没用。。。
smartcard - Finding a way to upload and install the CAP file to multi- pieces of smart cards
Due to the requirement of our project, I need to upload and install the same CAP file to multiple smart cards simultaneously (at least 12 at once).
Does this need a tool or something else (as I'm not going to spend too much money for this)?
I have tried to google, but found nothing.
Is there any simple method to do this? Or any suggestions?
android - 使用 UICC 运营商特权证书签署应用程序
我正在阅读此链接上有关签署具有运营商特权的应用程序的信息。
我知道如何使用密钥库对应用程序进行签名以用于生产版本,但如何将 UICC 证书添加到我的应用程序以使其获得运营商权限?
我的主要目标是能够调用TelephonyManager函数,例如:
这是我在调用上述函数之一时得到的堆栈跟踪:
提前致谢!
java - 在 J3A081 上安装小程序(Java Card)
我刚刚创建了一个非常简单的小程序。这是 Java 卡技术中的“hello world”。我在下面粘贴了一段代码。
之后,我决定使用 Global Platform 将其安装在真实卡(J3A081)上,但失败了。首先,我使用命令检查卡上是否已经安装了任何小程序:
回应是:
当我决定使用 *.cap 文件安装小程序时,我得到了:
你能告诉我我做错了什么吗?这张卡是全新的,以前从未使用过。我正在使用 NXP 的 ACR122U NFC 读卡器和卡 J3A081。
编辑
经过几个小时的尝试,我设法实现了一些目标。首先,我更新了 ACR122U 智能卡读卡器的驱动程序。此外,我熟悉了 GPSShell 并创建了一个简单的脚本:
哪个输出:
所以我想一切正常,但是当我想使用这个安装小程序时:
我有一个例外:
有人会遇到类似的错误吗?你知道这意味着什么吗?
编辑 2 我终于设法在我的卡上安装了小程序。我使用了修改过的 GlobalPlatformPro,正如 vlp 所写,有必要将加载块更改为 16 字节。
但我只能安装 hello world 小程序,在处理我的过程中,GlobalPlatformPro 返回异常:
java - Java Card - 安装小程序
我正在尝试在我的卡上安装一个小程序,但不知道如何安装。有没有人可以帮助我可能是一个教程左右。
我尝试JCManager
安装并JSmartCardExplorer
启动它,但它对我不起作用。
smartcard - GlobalPlatform 的安全架构:发行人能做什么?
我无法理解 GlobalPlatform Card 规范的高级安全架构,特别是发卡机构和发卡机构安全域的功能。
发卡机构能否真正访问已安装应用程序的私人数据,或者这是不可能的事情?
换句话说,拥有发卡机构密钥是否相当于在卡上拥有完整的系统权限,还是仅限于安装新的和删除已安装的应用程序、创建安全通道、禁用卡等?
javacard - 更改 JavaCard 上的 GP-Key
我想阻止我的卡以进行进一步的开发。有谁知道如何用 GPSShell 做到这一点?我找到了这个命令:
但收到此错误:
我也试过:
但收到此错误:
javacard - 如何在 GP 兼容卡上启用 Visa2 密钥多样化?
我为客户开发了一个 Java Card 小程序,现在他希望我在他的卡上启用 Visa2 Key Diversification 算法。我从来没有参与过将小程序部署到卡片上,所以这对我来说是一个新概念。我偶尔用来将小程序下载到卡片的工具是gpj
,这是我对客户卡片使用的命令行:
这会导致 gpj 使用全球平台默认密钥 ( 404142434445464748494A4B4C4D4E4F
) 打开一个安全通道,其中包含卡上的安全域 (即A0 00 00 00 03 00 00 00
)。
其中一张卡上已经安装了一个作为示例卡的小程序,当我尝试上述带有-list
参数的命令时,我从gpj
. 经过几次试验和错误,我能够使用以下命令对安全域进行身份验证:
因此,似乎可以在我的卡上打开和关闭 Visa2 密钥多样化。我的问题是,我怎样才能做到这一点?
smartcard - setATRHistBytes() 方法总是返回 false
我编写了以下程序,将智能卡 ATR 中的历史字节更改为,例如0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
. 我GPSystem.setATRHistBytes()
用来设置历史字节。
请注意,这0x00 0x00 ... 0x00
不是我用于历史字节的实际值,但我对其进行了审查。实际值是一个 15 字节的数组,等于另一张现有卡的历史字节数。
在将上述程序转换为它的 CAP 文件并安装具有Default Selected
权限的小程序(需要使用GPSystem.setATRHistBytes()
)后,我仍然无法更改历史字节。
根据我收到的 APDU 响应,该setATRHistBytes()
方法似乎总是返回false
指示历史字节未更新。
请注意,这01 02 03 04 05 01
是我的小程序 AID。
我的卡是 JCOP v2.4.2 R3,我尝试针对 GP 2.2.1 v1.6 和 GP 2.2 v1.4 API 进行编译。
javacard - 如何检测传入命令的接口?
我有一个包含我的小程序的双接口 Java 卡。我想对来自不同接口的单个命令有两个不同的 APDU 响应。
例如,当从接触式接口接收到命令时,我想00 10 00 00
用“Contact”响应 APDU 命令,并在从非接触式接口接收到该命令时响应“ContactLess”。
那么,Java Card API 或Global Platform API 中是否有任何方法可以检测传入命令的接口?