非CPU卡和CPU卡在應用軟件編程上需要注意哪些事項?
發(fā)表時間:2020-12-25 18:19:32
在智能卡的發(fā)卡過程中,卡片的數(shù)據(jù)結構和數(shù)據(jù)調(diào)用也至關重要,PC端IC卡應用軟件編程中,非CPU卡與CPU卡有著不小的差別。
首先,非CPU卡,你必須熟悉卡的存儲結構,哪里是制造商區(qū),哪里是密碼區(qū),哪里是數(shù)據(jù)控制區(qū),哪里是數(shù)據(jù)區(qū)(應用區(qū))……;而CPU卡,你不必關心數(shù)據(jù)的地址,卻要關注文件系統(tǒng)的結構:主文件(MF,相當于DOS文件系統(tǒng)的根目錄)、專用文件(DF,相當于DOS文件系統(tǒng)的目錄,可以有多層)、基本文件(EF,相當于DOS文件系統(tǒng)的文件)。
CPU卡的基本文件類型雖然只有透明(二進制)文件、(定長與不定長)線性記錄文件和循環(huán)記錄文件三類,但由于COS內(nèi)部控制的需要,派生出一些特定的“變種”——復位應答文件、口令文件、密鑰文件、DIR文件、SFI文件……。這些都需要熟悉。
純粹的存儲卡是可以自由讀取的;非CPU邏輯加密卡的訪問控制,需要掌握特定的卡的口令控制、認證控制、特定的數(shù)據(jù)控制標志字節(jié)和卡的熔絲(一種卡上這些控制不一定都有)。
而CPU卡的訪問控制,是在建立文件時定義的,讀、寫、更改分別是否需要認證,用哪個密鑰,是否需要口令,是否需要MAC驗證等等。需要說明的是,創(chuàng)建文件命令的格式是隨COS而不同的。所以,你必須熟讀他的COS手冊。
現(xiàn)在說說卡操作。非CPU卡的訪問一般是通過調(diào)用函數(shù)直接完成的,大不了需要熟悉一下調(diào)用參數(shù)。而CPU卡除了設備命令(測卡、上下電、選卡座等)和卡的復位命令以外,所有卡命令都是通過一個通用的命令函數(shù)執(zhí)行的,所以你需要熟悉COS手冊的命令。
COS的卡操作命令有統(tǒng)一的格式:CLA(命令類別Class)、INS(命令指令Instruction)、P1(參數(shù)1)、P2(參數(shù)2)、Lc(命令數(shù)據(jù)域Data長度)、Data和Le(應答數(shù)據(jù)域長度)。命令域中除了Data,都是1字節(jié)十六進制數(shù)。數(shù)據(jù)域則是十六進制數(shù)串,可以是二進制數(shù)、BCD碼或文字的ASCII碼等等。這有點像匯編語言。調(diào)用命令函數(shù)時,把命令串代入對應參數(shù)即可。更多非CPU卡和CPU卡等相關介紹,歡迎關注融智興科技技術交流。