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