專利名稱:主機對多廠商芯片設備數據交換協(xié)議進行動態(tài)轉換的方法
技術領域:
本發(fā)明涉及一種主機對多廠商芯片設備數據交換協(xié)議進行動態(tài)轉換的方法,屬于計算 機技術領域。
背景技術:
芯片設備得以在全世界范圍內迅猛發(fā)展,其標準化的制訂和推廣功不可沒,IS07816 作為國際規(guī)范已成為各個智能芯片設備應用的根本和基礎,其中,IS07816規(guī)范中的 APDU(即plication protocol data unit)部分對數據交換協(xié)議指令格式及主要功能做了詳 細說明和限制,盡管如此,各芯片設備的數據交換協(xié)議指令集仍是極具個性化和差異性, 造成這種狀況的原因如下1、 IS07816所規(guī)定的APDU指令集,過于全面和龐大,很多芯片設備廠商在設計自己 的數據交換協(xié)議指令集時根據實際應用需要對該規(guī)范進行了裁剪性使用,只包含并實現了 其中部分指令,比如多數廠商不支持安全環(huán)境相關的指令。2、 IS07816所規(guī)定的APDU指令集,某些指令細節(jié)的規(guī)定過于復雜,而規(guī)范本身并沒 有強制各芯片設備廠商嚴格遵照執(zhí)行,很多芯片設備廠商在設計實現其數據交換協(xié)議指令 時對其規(guī)范進行了改造,以便實現和用戶理解,如創(chuàng)建文件指令中,對文件的安全屬性進行重新設計和支持。3、 IS07816規(guī)范對APDU指令的規(guī)定也存在擴展性,各芯片設備廠商在設計實現自己 的數據交換協(xié)議指令時發(fā)揮各自的優(yōu)勢,這也會帶來各芯片設備數據交換協(xié)議指令的差異 性,如各芯片設備廠商對非對稱密鑰操作的指令就各不相同,主要體現在公鑰信息出卡 時機、私鑰信息讀取權限和讀取方式上。4、 IS07816規(guī)范是芯片設備設計實現的最佳實踐總結,難免會滯后于市場的發(fā)展和新 技術的興起,而很多芯片設備制造商更樂于在自己的數據交換協(xié)議指令集實現過程中運用 新技術,力求進一步創(chuàng)新,而新技術新思路往往是IS07816規(guī)范里沒有規(guī)定和限制的,各 廠商的創(chuàng)新會加大芯片設備數據協(xié)議交換協(xié)議指令的差異性,如各廠商對國產密碼算法(SSF33算法)的支持就各具一格。由于上述原因導致了市場上現有各芯片設備數據交換協(xié)議的差異性,這就給使用帶來 極大的不方便,針對于此主要有如下兩種解決辦法1、 芯片設備開發(fā)商直接將其數據交換協(xié)議交給應用開發(fā)商,應用開發(fā)商在自己的應 用程序中直接使用該數據交換協(xié)議與芯片設備交互,但是當芯片設備的數據交換協(xié)議發(fā)生 增減改變時,應用開發(fā)商就要修改自己的應用程序,這就會影響應用程序的穩(wěn)定性,并需 要應用程序開發(fā)商做好日后修改和長期維護的準備,尤其是應用開發(fā)商需要同時支持多個 芯片設備時,投入到應用程序開發(fā)、修改、維護上的工作量會明顯增多;2、 芯片設備開發(fā)商對其數據交換協(xié)議進行封裝,對外提供簡單直觀易使用的接口, 以便應用可以通過這些接口與芯片設備交互,但這種方式仍然不能避免當芯片設備的數據 交換協(xié)議發(fā)生增減改變時帶來的程序修改和維護,只是將程序不穩(wěn)定的風險和修改維護工 作從應用程序開發(fā)商轉移到了芯片設備開發(fā)商,而且若改動較大導致芯片設備開發(fā)商提供 的接口也有所改變時,那么應用開發(fā)商也要隨之修改應用程序,應用程序的穩(wěn)定性仍然會 受到影響。發(fā)明內容本發(fā)明的目的是提出一種主機對多廠商芯片設備數據交換協(xié)議進行動態(tài)轉換的方法, 開發(fā)一個通用的數據交換協(xié)議轉換程序,程序中不體現任何一個芯片設備的數據交換協(xié) 議,而是通過讀取芯片設備的數據交換協(xié)議規(guī)則庫來獲得與其交互的指令規(guī)則,對于多廠 商芯片設備的數據交換協(xié)議具有普遍的適用性。本發(fā)明提出的主機對多廠商芯片設備數據交換協(xié)議進行動態(tài)轉換的方法,包括以下步驟(1) 分別為多種廠商芯片設備配置與主機中的數據交換協(xié)議轉換模塊通信的數據交 換協(xié)議規(guī)則,并形成數據交換協(xié)議規(guī)則庫;(2) 當主機中的應用模塊向當前插入的芯片設備發(fā)送數據交互請求指令時,主機中 的應用模塊向主機中的數據交換協(xié)議轉換模塊發(fā)送數據交互請求指令;主機的數據交換協(xié) 議轉換模塊接到上述數據交互指令后,從主機中的驅動模塊分別獲取當前插入芯片設備的 廠商代碼、產品代碼、產品版本號,根據上述獲取的廠商代碼、產品代碼、產品版本號, 主機的數據交換協(xié)議轉換模塊從上述數據交換協(xié)議規(guī)則庫中檢索到與當前插入芯片設備 相匹配的數據交換協(xié)議規(guī)則;(3) 主機中的數據交換協(xié)議轉換模塊根據上述檢索到的數據交換協(xié)議規(guī)則,對來自 主機中的應用模塊的數據交互請求指令進行組包處理后,經由主機中的驅動模塊發(fā)送至當 前插入芯片設備,當前插入芯片設備對上述數據交互請求指令進行處理,并將處理數據通 過主機的驅動模塊返回至主機的數據交換協(xié)議轉換模塊;(4) 主機中的數據交換協(xié)議轉換模塊根據上述檢索到的數據交換協(xié)議規(guī)則,從來自 主機中的驅動模塊的數據中獲取相關信息,并返回給主機中的應用模塊。本發(fā)明提出的主機對多廠商芯片設備數據交換協(xié)議進行動態(tài)轉換的方法,由于主機中 的數據交換協(xié)議轉換模塊對各種芯片設備數據交換協(xié)議的識別是通過芯片設備中的廠商 代碼、產品代碼、產品版本號從而讀取數據交換協(xié)議規(guī)則方式實現的,因此即使有更多的 芯片設備數據交換協(xié)議需要支持也不需修改主機中的數據交換協(xié)議轉換模塊的程序,這就 保證了主機中的數據交換協(xié)議轉換模塊的穩(wěn)定性,當已有主機中的數據交換協(xié)議轉換模塊 需支持新的芯片設備數據交換協(xié)議時,只要按照已設計好的芯片設備數據交換協(xié)議規(guī)則配 置流程和配置方法為該芯片設備數據交換協(xié)議增加一個新的數據交換協(xié)議規(guī)則,新的芯片 設備數據交換協(xié)議就可以通過已有主機中的數據交換協(xié)議轉換模塊進行識別了,這也不再 需要芯片設備廠商對外提供與其對應的數據交換協(xié)議接口程序,大大減少了芯片設備廠商 的工作量,只要理解和掌握數據交換協(xié)議規(guī)則的配置方法,對于新的芯片設備數據交換協(xié) 議的支持將更快捷、更可靠。
圖1是本發(fā)明方法的流程框圖。
具體實施方式
本發(fā)明提出的主機^"多廠商芯片設備數據交換協(xié)議進行動態(tài)轉換的方法,其流程框圖 如圖l所示,包括以下步驟(1) 分別為多種廠商芯片設備配置與主機中的數據交換協(xié)議轉換模塊通信的數據交 換協(xié)議規(guī)則,并形成數據交換協(xié)議規(guī)則庫;(2) 當主機中的應用模塊向當前插入的芯片設備發(fā)送數據交互請求指令時,主機中 的應用模塊向主機中的數據交換協(xié)議轉換模塊發(fā)送數據交互請求指令;主機的數據交換協(xié) 議轉換模塊接到上述數據交互指令后,從主機中的驅動模塊分別獲取當前插入芯片設備的 廠商代碼、產品代碼、產品版本號,根據上述獲取的廠商代碼、產品代碼、產品版本號, 主機的數據交換協(xié)議轉換模塊從上述數據交換協(xié)議規(guī)則庫中檢索到與當前插入芯片設備 相匹配的數據交換協(xié)議規(guī)則;(3) 主機中的數據交換協(xié)議轉換模塊根據上述檢索到的數據交換協(xié)議規(guī)則,對來自 主機中的應用模塊的數據交互請求指令進行組包處理后,經由主機中的驅動模塊發(fā)送至當 前插入芯片設備,當前插入芯片設備對上述數據交互請求指令進行處理,并將處理數據通 過主機的驅動模塊返回至主機的數據交換協(xié)議轉換模塊;(4) 主機中的數據交換協(xié)議轉換模塊根據上述檢索到的數據交換協(xié)議規(guī)則,從來自 主機中的驅動模塊的數據中獲取相關信息,并返回給主機中的應用模塊。以下介紹本發(fā)明的一個實施例以國內某廠商的芯片設備為例,說明其數據交換協(xié)議在windows系統(tǒng)上的動態(tài)轉換過程。(假設這個芯片操作系統(tǒng)所在芯片設備的廠商代碼、產品代碼、產品版本號分別為x9876、 0x5432、 0x1000,并假設主機中的應用模塊將從芯片設備中讀取一個文件標識是 0x0001、文件長度是0x0010字節(jié)的二進制文件)。新增芯片設備及其數據交換協(xié)議時,配置方法和步驟如下(1) 修改數據交換協(xié)議規(guī)則庫中的全局配置文件,即文件eid. ini,在該文件的段 [PTL]中添加一屬性及屬性值,該屬性為芯片設備的廠商代碼、產品代碼、產品版本號對 應值的16進制顯示的順序組合,例子中的屬性應為"987654321000",該屬性值為該芯片 設備的數據交換協(xié)議規(guī)則對應的配置文件的路徑及名稱,例子中其文件名為"987654321000.ini",并假定該文件所在路徑為"C:\ProgramFiles\eid\PTL",則此處 屬性"987654321000"對應的屬性值為"C:\ProgramFiles\eid\PTL\987654321000.ini";(2) 配置該例子中的芯片設備的數據交換協(xié)議規(guī)則,即文件"987654321000. ini", 該文件的格式及所包含的段、及各段包含的屬性、屬性值格式等應按照已經設計好的數據 交換協(xié)議規(guī)則配置說明進行配置,且配置時屬性值需遵照芯片設備廠商提供的數據交換協(xié) 議集說明,每一個數據交換協(xié)議作為一個單獨的段,且格式都相同,例子中讀取二進制文 件所用到的數據交換協(xié)議段如下[Read—Binary] CmdType=l CLA =00 INS =B0 ArgCount=3 PI =%Argl% P2 =%Arg2% LcLen =0= -5 Da_ta = _5 LeLen =1 Le =%Arg3% MaxWaitTime=300其中,屬性CLA、 INS、 Pl、 P2、 Lc、 Data、 Le的屬性值按順序組合符合IS07816中 規(guī)定的應用程序協(xié)議數據單元指令格式。該芯片設備的數據交換協(xié)議規(guī)則即文件"987654321000. ini"配置完成后,需將該 文件拷貝到路徑"C:\Progmm Files\eid\PTL\"下,此后,主機的數據交換協(xié)議轉換模 塊就可以根據該文件中的數據交換協(xié)議規(guī)則與當前插入芯片設備進行數據交互了。當主機的應用模塊向當前插入芯片設備發(fā)送讀取二進制文件指令時,主機中的數據交 換協(xié)議轉換模塊處理過程如下所述(1) 主機的數據交換協(xié)議轉換模塊接到上述讀取二進制文件指令后,從主機中的驅動模 塊分別獲取當前插入芯片設備的廠商代碼,產品代碼、產品版本號,根據上述獲取的廠商 代碼、產品代碼、產品版本號,主機的數據交換協(xié)議轉換模塊先從上述數據交換協(xié)議規(guī)則 庫中檢索到與當前插入芯片設備相匹配的數據交換協(xié)議規(guī)則,即文件"0x987654321000. ini ",再從該文件中獲取與讀取二進制文件對應的指令段 [Read—Binary ]及段內各屬性值;(2) 主機中的數據交換協(xié)議轉換模塊根據上述檢索到的讀取二進制文件數據交換協(xié)議 規(guī)則,對來自主機中的應用模塊的讀取二進制文件指令請求進行組包處理后得到數據流 0x00b0000110,再經由主機中的驅動模塊發(fā)送至當前插入芯片設備,當前插入芯片設備 對上述數據交互請求指令進行處理,具體處理過程為先進行CLA合法性檢查,然后找到 文件標識符為0x0001的二進制文件,再按照文件長度0x0010讀取該二進制文件0x0001 的內容,最后當前插入芯片設備將讀取出的文件內容等信息經由主機的驅動模塊返回至主 機中的數據交換協(xié)議轉換模塊;(3)主機中的數據交換協(xié)議轉換模塊根據上述檢索到的數據交換協(xié)議規(guī)則,從來自主機 中的驅動模塊的數據中獲取標識為0x0001的二進制文件的長度為0x0010字節(jié)的有效信 息,并將有效文件信息返回給主機中的應用模塊。
權利要求
1、主機對多廠商芯片設備數據交換協(xié)議進行動態(tài)轉換的方法,其特征在于該方法包括以下步驟(1)分別為多種廠商芯片設備配置與主機中的數據交換協(xié)議轉換模塊通信的數據交換協(xié)議規(guī)則,并形成數據交換協(xié)議規(guī)則庫;(2)當主機中的應用模塊向當前插入的芯片設備發(fā)送數據交互請求指令時,主機中的應用模塊向主機中的數據交換協(xié)議轉換模塊發(fā)送數據交互請求指令;主機的數據交換協(xié)議轉換模塊接到上述數據交互指令后,從主機中的驅動模塊分別獲取當前插入芯片設備的廠商代碼、產品代碼、產品版本號,根據上述獲取的廠商代碼、產品代碼、產品版本號,主機的數據交換協(xié)議轉換模塊從上述數據交換協(xié)議規(guī)則庫中檢索到與當前插入芯片設備相匹配的數據交換協(xié)議規(guī)則;(3)主機中的數據交換協(xié)議轉換模塊根據上述檢索到的數據交換協(xié)議規(guī)則,對來自主機中的應用模塊的數據交互請求指令進行組包處理后,經由主機中的驅動模塊發(fā)送至當前插入芯片設備,當前插入芯片設備對上述數據交互請求指令進行處理,并將處理數據通過主機的驅動模塊返回至主機的數據交換協(xié)議轉換模塊;(4)主機中的數據交換協(xié)議轉換模塊根據上述檢索到的數據交換協(xié)議規(guī)則,從來自主機中的驅動模塊的數據中獲取相關信息,并返回給主機中的應用模塊。
全文摘要
本發(fā)明涉及一種主機對多廠商芯片設備數據交換協(xié)議進行動態(tài)轉換的方法,屬于計算機技術領域。先為芯片設備配置數據交換協(xié)議規(guī)則,并形成規(guī)則庫,主機中的數據交換協(xié)議轉換模塊從主機中的驅動模塊獲取當前插入芯片設備的廠商代碼等信息并根據此信息檢索到與上述芯片設備數據交換協(xié)議相匹配的數據交換協(xié)議規(guī)則,并根據此規(guī)則對來自主機中的應用模塊的數據交互請求指令進行組包后經由主機中的驅動模塊發(fā)給上述芯片設備,并再根據此規(guī)則從經由主機中的驅動模塊返回的芯片設備的處理數據中獲取相關信息并返回給主機中的應用模塊。本發(fā)明的優(yōu)點是掌握了數據交換協(xié)議的配置方法后,對新的芯片設備數據交換協(xié)議的支持將更快捷、更可靠。
文檔編號G06K7/00GK101324918SQ20081011717
公開日2008年12月17日 申請日期2008年7月25日 優(yōu)先權日2008年7月25日
發(fā)明者張文翠, 張明德, 楊文勝 申請人:北京信城通數碼科技有限公司