1. 程式人生 > >Java Card Technology for Smart Card's Architecture and Programmer's Guide (Zhiqun Chen)翻譯版(PART 0)

Java Card Technology for Smart Card's Architecture and Programmer's Guide (Zhiqun Chen)翻譯版(PART 0)

這是一本Java Card開發者的Bible,本人在Amazon上花了45大刀還不算運費才搞到的,翻譯過來給大家共享。如果您覺得書不錯,或者我翻譯的爛,請支援正版。

Java Card Technology for Smart Cards

Architecture and Programmer's Guide

Zhiqun Chen

目錄
第 1 部分 緒論 ........................................................... 10
1.2.智慧卡應用開發中的挑戰.........................................................................................................11
1.3.把Java用於智慧卡......................................................................................................................11
1.3.1.Java卡技術的好處...........................................................................................................11
1.3.2. Java卡技術的簡史......................................................................................................... 12
第 2 部分 JAVA 卡技術..................................................... 13
第 3 章Java卡技術概述.................................................................................................................................
3.1  體系結構概述........................................................................................................................... 14
3.2 Java  卡語言子集....................................................................................................................... 14
3.3 Java  卡虛擬機器........................................................................................................................... 15
3.3.1 CAP  檔案和Export 檔案.............................................................................................. 16
3.3.2 Java  卡  轉換器(Converter)...................................................................................... 16
3.3.3 Java  卡  直譯器(Interpreter)..................................................................................... 17
3.4 Java卡Installer和卡外安裝程式................................................................................................ 17
3.5 Java  卡執行時環境................................................................................................................... 18
3.5.1 JCRE 生命週期.............................................................................................................. 20
3.5.2  在一個CAD Session  中JCRE如何工作? ..................................................................... 20
3.5.3 Java  卡執行時特性........................................................................................................ 21
3.6 Java  卡APIs............................................................................................................................... 21
3.6.1.java.lang 包............................................................................................................... 21
3.6.2.javacard.framework包..................................................................................................... 22
3.6.3.javacard.security 包........................................................................................................ 22
3.6.4.javacardx.crypto包.......................................................................................................... 22
3.7 Java  卡Applets .......................................................................................................................... 23
3.8  包和Applet命名約定................................................................................................................ 23
3.9 Applet下載過程......................................................................................................................... 24
3.10 Applet安裝............................................................................................................................... 25
3.10.1 ROM Applets ................................................................................................................ 25
3.10.2  事前或事後發行Applets.............................................................................................. 25
3.10.3  事後發行的Applet  的安裝......................................................................................... 26
3.10.4.Applet  安裝期間的錯誤恢復...................................................................................... 26
3.10.5.  安裝限制..................................................................................................................... 26
第 4 章Java 卡物件.......................................................................................................................................
4.1.Java卡儲存模式......................................................................................................................... 28
4.2.永久物件.................................................................................................................................... 29
4.3.臨時物件.................................................................................................................................... 29
4.3.1.臨時物件的屬性............................................................................................................. 29
4.3.2.臨時物件的型別............................................................................................................. 30
4.3.3.建立臨時物件................................................................................................................. 30
4.3.4.查詢臨時物件................................................................................................................. 31
4.4.關於物件建立和刪除的幾句話................................................................................................ 31
第 5 章 原子性和事物................................................................................................................................
5.1.原子性........................................................................................................................................ 33

5.2.陣列中塊資料修改.................................................................................................................... 33

5.3.事物............................................................................................................................................ 34
5.3.1.提交事物......................................................................................................................... 34
5.3.2.廢除事物......................................................................................................................... 34
5.3.3.巢狀的事物..................................................................................................................... 35
5.3.4.提交能力......................................................................................................................... 35
5.3.5.TransactionException例外.............................................................................................. 35
5.3.6.在一個事物期間的區域性變數和臨時物件..................................................................... 36
6 章 Java 卡例外和例外處理.................................................................................................................38
6.2.Java  卡例外............................................................................................................................... 38
6.2.1.Java  卡例外原因碼........................................................................................................ 39
6.2.2.在Java卡平臺中丟擲例外.............................................................................................. 39
6.2.3.ISOException. ................................................................................................................. 40
6.2.4.UserException. ................................................................................................................ 40
7 章Java 卡 Applets. ...............................................................................................................................42
7.1.Applet  概述............................................................................................................................... 42
7.1.1.Applet 安裝與執行........................................................................................................ 42
7.1.2.Applet 通訊.................................................................................................................... 42
7.2.類 javacard.framework.Applet. ................................................................................................. 43
7.3.install  方法................................................................................................................................ 44
7.3.1.在Applet建構函式中建立物件...................................................................................... 45
7.3.2.向JCRE註冊Applet 例項............................................................................................... 45
7.3.3.處理安裝引數................................................................................................................. 46
7.3.4. Applet進一步初始化..................................................................................................... 47
7.4.select  方法................................................................................................................................. 48
7.4.1.SELECT APDU  格式和處理......................................................................................... 48
7.4.2.預設Applet. ..................................................................................................................... 48
7.5.deselect 方法............................................................................................................................. 49
7.6.process 方法.............................................................................................................................. 49
7.7.類 javacard.framework.Applet中的其它方法.......................................................................... 50
8 章  處理APDUs .....................................................................................................................................51
8.1.APDU  類................................................................................................................................... 51
8.1.1.APDU  物件.................................................................................................................... 51
8.1.2.APDU Buffer  的大小..................................................................................................... 51
8.2.介面 ISO7816 ........................................................................................................................... 52
8.3.在Applets中使用APDUs ........................................................................................................... 52
8.3.1.獲取 APDU Buffer. ........................................................................................................ 52
8.3.2.檢查命令 APDU  頭...................................................................................................... 52
8.3.3.接收APDU  命令資料. ................................................................................................... 53
8.3.3.1.接收長命令資料.................................................................................................. 54
8.3.4.處理APDU  命令與產生響應資料................................................................................ 56
8.3.5.返回 APDU  響應資料.................................................................................................. 56
8.3.5.1.從其它地方傳送資料.......................................................................................... 57
8.3.5.2.傳送長的響應資料.............................................................................................. 58
8.3.6.返回狀態字..................................................................................................................... 59
8.4.協議相關的APDU  處理........................................................................................................... 59
8.4.1.方法getProtocol. ............................................................................................................. 60

8.4.2.方法getInBlockSize. ....................................................................................................... 60
8.4.3.方法getOutBlockSize...................................................................................................... 61
8.4.4.方法setOutgoingNoChaining. ......................................................................................... 62
8.4.5.方法 getNAD. ................................................................................................................ 62
8.4.6.方法 waitExtension. ....................................................................................................... 62
小結............................................................................................................................................ 62
Applet  防火牆和物件共享...............................................................................................................6
Applet  防火牆........................................................................................................................... 64
9.1.1 Contexts........................................................................................................................... 64
9.1.2  物件的擁有關係............................................................................................................ 65
9.1.3  物件訪問........................................................................................................................ 65
9.1.4  臨時陣列和Context ....................................................................................................... 66
9.1.5  靜態域和方法................................................................................................................ 67
Contexts 間物件共享................................................................................................................ 67
9.2.1 Context  切換.................................................................................................................. 67
9.2.2 JCRE 的特權................................................................................................................. 68
9.2.3 JCRE 入口點物件.......................................................................................................... 68
9.2.4  全域性陣列........................................................................................................................ 69
9.2.5  物件共享的介面機制.................................................................................................... 69
9.2.5.1  可共享的介面..................................................................................................... 70
9.2.5.2  可共享的介面物件............................................................................................. 70
9.2.5.3  可共享介面機制背後的思考............................................................................. 70
9.2.5.4 Applets  間物件共享的一個例子........................................................................ 71
9.2.5.5  建立一個可共享的介面物件............................................................................. 72
9.2.5.6  請求一個可共享的介面物件............................................................................. 73
9.2.5.7  使用一個可共享的介面物件............................................................................. 74
9.2.5.8  在物件共享期間的Context  切換...................................................................... 76
9.2.5.9  可共享的介面方法中的引數型別和返回型別................................................. 77
9.2.5.10  認證客戶 Applet .............................................................................................. 78
9.2.5.11 getPreviousContextAID  方法............................................................................ 81
9.2.5.12  小結................................................................................................................... 82
 密碼技術程式設計..............................................................................................................................8
1.密碼技術快速瀏覽.................................................................................................................. 84
10.1.1.加密和解密................................................................................................................... 84
10.1.2.訊息摘要....................................................................................................................... 86
10.1.3.數字簽名....................................................................................................................... 87
10.1.4.隨機數........................................................................................................................... 87
2.智慧卡應用中的密碼技術實踐.............................................................................................. 88
10.2.1.保正應用的安全性....................................................................................................... 88
10.2.2.作為安全Token............................................................................................................. 88
10.2.3.小結............................................................................................................................... 88
3.Java卡密碼技術APIs............................................................................................................... 89
10.3.1.設計原則....................................................................................................................... 89
10.3.2.體系結構....................................................................................................................... 89
10.3.3.包的結構....................................................................................................................... 90
10.4.程式碼舉例.................................................................................................................................. 91

10.4.1.計算訊息摘要............................................................................................................... 91
10.4.2.產生金鑰....................................................................................................................... 93
10.4.3.計算和驗證簽名........................................................................................................... 94
10.4.4.資料加密和解密........................................................................................................... 95
10.4.5.隨機資料生成............................................................................................................... 96
第 11 章Java 卡平臺的安全性.....................................................................................................................97
11.1.Java卡平臺的安全特性........................................................................................................... 97
11.1.1.Java 語言的安全性...................................................................................................... 97
11.2.Java  卡平臺的安全機制......................................................................................................... 98
11.2.1.編譯時的檢查............................................................................................................... 98
11.2.2.類檔案驗證和子集檢查............................................................................................... 99
11.2.3.CAP 檔案和Export  檔案驗證..................................................................................... 99
11.2.4.安裝檢查..................................................................................................................... 101
11.2.5.密碼技術加強了開發-安裝鏈的信任度.................................................................... 102
11.2.6.執行時安全性的強制要求......................................................................................... 103
11.2.7.Java卡密碼技術支援.................................................................................................. 104
11.3.Applet的安全性..................................................................................................................... 104
第 3 部分 程式設計指南與提示............................................... 106
第 12 章  Applet按步開發指南.................................................................................................................107
12.1.設計 Applet ........................................................................................................................... 107
12.1.1.指定 Applet  的功能.................................................................................................. 107
12.1.4.1.SELECT APDU................................................................................................ 109
12.1.4.2.VERIFY APDU................................................................................................ 109
12.1.4.3.CREDIT APDU.................................................................................................110
12.1.4.4.DEBIT APDU....................................................................................................110
12.4.1.5.GET BALANCE APDU....................................................................................110
12.2.編寫applet  程式碼.....................................................................................................................111
12.2.1.Wallet applet程式碼.........................................................................................................111
12.2.2.實現錯誤檢查..............................................................................................................116
12.3.下一步該幹什麼?.................................................................................................................117
第 13 章  Applet  優化...............................................................................................................................118
13.1.優化一個applet的概要設計...................................................................................................118
13.2.卡上執行時間.........................................................................................................................118
13.3.方法呼叫.................................................................................................................................118
13.4.建立Applets中的物件............................................................................................................118
13.5.重用物件.................................................................................................................................119
13.6.消除冗餘程式碼........................................................................................................................ 120
13.7.訪問陣列................................................................................................................................120
13.8. switch 語句和if-else  語句.................................................................................................. 121
13.9.算術計算語句........................................................................................................................ 123
13.10.優化Applets中的變數......................................................................................................... 123
第 14 章  使用int型別的資料......................................................................................................................125
14.1.32-位算術操作...................................................................................................................... 125
14.2.陣列大小和索引.................................................................................................................... 133
14.4.小結........................................................................................................................................ 137
第 4 部分:附錄 ......................................................... 138

A. Java  卡語言子集....................................................................................................................................139
A.1  不支援的項............................................................................................................................ 139
A.1.1 不支援的特性.............................................................................................................. 139
A.1.2  關鍵字(Keywords)................................................................................................. 140
A.1.3  不支援的型別............................................................................................................. 140
A.1.4  類................................................................................................................................. 140
A.1.5 System.......................................................................................................................... 140
A.2  支援的專案............................................................................................................................ 140
A.2.1  特性............................................................................................................................. 141
A.2.2  關鍵字......................................................................................................................... 141
A.2.3  型別............................................................................................................................. 142
A.2.4  類................................................................................................................................. 142
A.3 Optionally Supported Items..................................................................................................... 142
A.3.1 int.................................................................................................................................. 142
A.4 Java  卡虛擬機器的限制............................................................................................................ 142
A.4.1  類................................................................................................................................. 143
A.4.2  物件............................................................................................................................. 143
A.4.3  方法............................................................................................................................. 143
A.4.4 Switch 語句................................................................................................................. 144
A.4.5  類初始化..................................................................................................................... 144
B. Java 卡 2.1 應用程式設計介面.....................................................................................................................145
B.1 包 java.lang............................................................................................................................. 145
B.1.1 java.lang ArithmeticException類................................................................................. 145
B.1.2 java.lang ArrayIndexOutOfBoundsException類.......................................................... 146
B.1.3. java.lang ArrayStoreException類................................................................................ 147
B.1.4 java.lang ClassCastException類................................................................................... 147
B.1.5 java.lang Exception類.................................................................................................. 148
B.1.6 java.lang IndexOutOfBoundsException類................................................................... 149
B.1.7 java.lang NegativeArraySizeException類.................................................................... 149
B.1.8 java.lang NullPointerException類................................................................................ 150
B.1.9 java.lang Object類........................................................................................................ 151
B.1.10 java.lang RuntimeException類................................................................................... 152
B.1.11 java.lang SecurityException類................................................................................... 153
B.1.12 java.lang Throwable類............................................................................................... 153
B.2  包javacard.framework ............................................................................................................ 154
B.2.1 javacard.framework AID類.......................................................................................... 155
B.2.2 javacard.framework APDU類...................................................................................... 157
B.2.3 javacard.framework APDUException類...................................................................... 166
B.2.4 javacard.framework Applet類...................................................................................... 169
B.2.5 javacard.framework CardException類......................................................................... 174
B.2.6 javacard.framework CardRuntimeException類............................................................ 176
B.2.7 javacard.framework ISO7816 介面.............................................................................. 177
B.2.8 javacard.framework ISOException類........................................................................... 181
B.2.9 javacard.framework 類 JCSystem.............................................................................. 183
B.2.10 javacard.framework OwnerPIN類.............................................................................. 190
B.2.11 javacard.framework PIN介面..................................................................................... 193

B.2.12 javacard.framework PINException類......................................................................... 195
B.2.13 javacard.framework Shareable介面........................................................................... 196
B.2.14 javacard.framework SystemException類................................................................... 197
B.2.15 javacard.framework TransactionException類............................................................ 199
B.2.16 javacard.framework 類 UserException..................................................................... 200
B.2.17 javacard.framework Util類......................................................................................... 202
B.3  包 javacard.security............................................................................................................... 207
B.3.1 javacard.security CryptoException類........................................................................... 208
B.3.2 javacard.security DESKey介面.................................................................................... 209
B.3.3 javacard.security DSAKey介面....................................................................................211
B.3.4 javacard.security DSAPrivateKey介面........................................................................ 213
B.3.5 javacard.security DSAPublicKey介面......................................................................... 215
B.3.6 javacard.security Key介面........................................................................................... 216
B.3.7 javacard.security KeyBuilder類................................................................................... 217
B.3.8 javacard.security MessageDigest類.............................................................................. 220
B.3.9 javacard.security PrivateKey介面................................................................................ 223
B.3.10 javacard.security PublicKey介面............................................................................... 223
B.3.11 javacard.security RandomData類............................................................................... 224
B.3.12 javacard.security RSAPrivateCrtKey介面................................................................. 225
B.3.13 javacard.security RSAPrivateKey介面...................................................................... 230
B.3.14 javacard.security RSAPublicKey介面........................................................................ 232
B.3.15 javacard.security SecretKey介面............................................................................... 234
B.3.16 javacard.security Signature類..................................................................................... 234
B.4  包javacardx.crypto ................................................................................................................. 241
B.4.1 javacardx.crypto Cipher類............................................................................................ 242
詞彙 .................................................................. 249
參考文獻............................................................... 251
索引 .................................................................. 252
 
 

相關推薦

Java Card Technology for Smart Card's Architecture and Programmer's Guide (Zhiqun Chen)譯版(PART 0)

這是一本Java Card開發者的Bible,本人在Amazon上花了45大刀還不算運費才搞到的,翻譯過來給大家共享。如果您覺得書不錯,或者我翻譯的爛,請支援正版。 Java Card Technology for Smart Cards Architecture and

Java Card Technology for Smart Card's Architecture and Programmer's Guide (Zhiqun Chen)譯版(PART 1)

第 1部分  緒論  1.2.智慧卡應用開發中的挑戰  開發一個智慧卡應用傳統上是一個長期而困難的過程。儘管卡片在尺寸、外形,和通訊協議方面 被標準化了,但是它們的內部工作從一個製造商到另一個製造商是大不相同的。大多數智慧卡開發工 具是由智慧卡製造商利用普通的組合語言工

AI for drug development: What's possible and what's just hype?

If a group of chemists found 18 more potent versions of a drug out of a sea of 3,000 potential chemicals in the span of a few weeks, they might be hailed a

GeForce RTX: Beast for Today’s Games, and Tomorrow’s

Open box. Start your game. Witness the impossible. Our GeForce RTX series GPUs — the first gaming GPUs based on our new NVIDIA Turing architecture — fuse n

Wearable tech becomes top fitness trend for 2019: What's hot and what's not for next year

Other notable trends in the 13th annual survey include the continued rise of high-intensity interval training (HIIT), increased interest in hiring certifi

Global sea level could rise 50 feet by 2300, study says: Characterizing what's known and what's uncertain is key to managing coa

Since the start of the century, global average sea-level has risen by about 0.2 feet. Under moderate emissions, central estimates of global average sea-le

The Talent Code: Greatness Isn’t Born. It’s Grown and Here’s How

The Talent Code: Greatness Isn’t Born. It’s Grown and Here’s HowThere exist a zone of accelerated learning, in which you learn super fast, and retain a lot

【經驗】停止Smart Card服務

light aid gpa 禁用 tps target window 類型 .com Windows+R鍵調出運行 輸入 services.msc 有一項Smart Card的服務找到他->屬性->啟動類型(設置為禁用 )->確定,然後重新啟動服務【經驗】

[AtCoder ARC061F]Card Game for Three 組合數好題

排列 出了 情況 turn tasks bits 而且 如果 ref 題目鏈接 總結:組合數 這$F$題好難啊...只會部分分做法,下面兩個方法都是部分分做法。滿分做法我去看看...會的話就補一下 部分分做法 方法1: 首先$A$能贏的條件很明顯,假設在所有的牌裏

Quantum Bits Store Dat 4g LTE router with SIM card a for Nearly Two Seconds Using Laboratory Grownsm

www.inhandnetworks.com Mikhail Lukin (from left), Georg Kucsko, and Christian Latta are part of a group of Harvard scientists who were able to c

Smart technology for synchronized 3D printing of concrete

This method of concurrent 3D-printing, known as swarm printing, paves the way for a team of mobile robots to print even bigger structures in future. Devel

What's next for smart homes: An 'Internet of Ears?': Next generation of smart homes envisions using changes in vibrations, sound

Today's smart home features appliances, entertainment systems, security cameras and lighting, heating and cooling systems that are connected to each other

Smart Card 使用心得

Windows系統提供了大量的API來方便的進行智慧卡應用程式的開發,通過它們我們可以直接控制智慧卡讀卡器對智慧卡進行操作,也可以與智慧卡建立直接的虛擬連線而不用考慮智慧卡讀卡器。 智慧卡應用程式開發

Open Smart Card Shell Test on doemv.js - EMV DDA Test

文章目錄 Summary Authentication procedure Retrieval of ICC Public Key Dynamic Data Authentication Reference Summary

智慧卡(Smart Card)服務修復工具(解決無法讀取外接裝置的問題)

用於修復XP/Vista/Win7 下的智慧卡(Smart Card)服務。 用於解決無法讀取各類外接裝置的問題。 程式自身有多語言功能,通過判斷本地系統語言來顯示相應的語言文字。 程式碼之後會放出。 作者:pencil  Email:[email prot

使用“api-monitor工具”及應用程式讀取smart card 資訊

PCCERT_CONTEXT WINAPI CertCreateCertificateContext( __in DWORD dwCertEncodingType, __in const BYTE* pbCertEncoded, __in DWORD cbCertEncoded ); Pa

mybatis Cause: java.lang.NumberFormatException: For input string: "S"

mybatis Cause: java.lang.NumberFormatException: For input string: “S” 需要用到字串比較,可以採用以下方式: 1:將程式碼改為test=“param eq ‘S’.toString()” 2:將程式碼改

Java學習之for循環打印菱形練習

ron comment 說明 racket 更新 簡化 ... ets 有趣的 for循環語句是Java程序設計中非常有用的循環語句。一個for循環可以用來重復執行某條語句,直到某個條件得到滿足。在Java 5新增的加強的foreach語法,也非常有用。 1. for語句

<轉>Java循環for, while和do...while

中一 article 必須 ria 方法調用 tty 一個 http date Java循環for, while和do...while 分類:java基礎 (3293) (0) 舉報 收藏 可能存在一種情況,當我們需要執行的代碼塊數次,並且通常被稱為一個循環。

Caused by: java.lang.NumberFormatException: For input string: &quot;&quot;

ble dynamic reads pri cor auth erb encoding sed 1、錯誤描寫敘述java.lang.NumberFormatException: For input string: "" at java.lang.N