簡體   English   中英

在javacard中調用不同的applet

[英]Call different applet in javacard

我在 java 卡中有 2 個小程序。 第一個小程序用作會員卡。 第二個小程序用於存儲交易。

我想使用第二個小程序將add balances/credit transactionpurchase transactions記錄到eeprom

file_name: month
-----------------------------------
datetime | transaction code | amount
-----------------------------------

month:
01 = january
02 = february
ect..

datetime (7 bytes): 
dd MM yyyy HH mm ss  

transaction code (1 byte):
01 = purchase
02 = add balance

amount (4 bytes):
FF FF FF FF

---------------------------------------
example:
---------------------------------------

1. transaction add balance 100 in 01-02-2022 03:04:05 (dd-MM-yyyy HH:mm:ss)

file_name: 01
------------------------------------------------
datetime           | transaction code | amount
------------------------------------------------
01 02 07D2 030405        02            00000064

CLA = 80
INS = E0
P1  = 00
P2  = 00
LC  = 0C
DATA = 01 02 07 D2 03 04 05 02 00 00 00 64

我想將 apdu 80 E0 00 00 0C 01 02 07 D2 03 04 05 02 00 00 00 64first applet發送到second applet程序。 怎么做? 謝謝。

伊赫迪娜
由於 JC 平台具有旨在提高平台安全性的相當復雜的功能(即防火牆保護、上下文切換),因此您可以做自己想做的事情的能力有限。

在此處輸入圖像描述

注意:應將從另一個小程序調用 API 的能力指定為在小程序之間交換數據的能力。 前者可以通過使用Shareable接口實現。 后者更復雜。

第一個選項one CAP file with two applets
要交換數據,您可以將兩個小程序放入一個 CAP 文件中,從而避免繞過 JC 平台安裝的柵欄問題。 允許這樣做的功能稱為擴展 CAP 文件格式 一個小程序實例可以自由訪問屬於另一個小程序實例的對象,該小程序實例位於同一 Java 卡 CAP 文件中的任何 package 中。 注意:這只能從JC 3.1開始。

第二個選項Array View
JC 3.1中也提供了一個非常好的功能。 數組視圖是現有 arrays 的視圖,它顯示潛在的只讀數組切片。

第三個選項GlobalArray
在舊平台上實現小程序間通信的唯一方法(比如我的,是3.0.4版本)。 您可以使用JCSystem.makeGlobalArray API 輕松創建一個數組並使其成為全局數組。這就是最初在 JC 平台上聲明 APDU object 的方式。

基本上,還有更多的特性需要考慮,包括 RE Privileges、RE Entry Point Objects 等。但是上面給出的應該足夠了。

附注:我曾經在我的 Twitter 帳戶上發布關於 JavaCard 平台的雜項信息,特別是關於Inter-Applet 通信的更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM