TW476909B - Method and system of performing a security check of a smart device description file - Google Patents

Method and system of performing a security check of a smart device description file Download PDF

Info

Publication number
TW476909B
TW476909B TW89111362A TW89111362A TW476909B TW 476909 B TW476909 B TW 476909B TW 89111362 A TW89111362 A TW 89111362A TW 89111362 A TW89111362 A TW 89111362A TW 476909 B TW476909 B TW 476909B
Authority
TW
Taiwan
Prior art keywords
application
dictionary
response
quot
logic unit
Prior art date
Application number
TW89111362A
Other languages
English (en)
Inventor
Augustin Farrugia
Original Assignee
Think Pulse Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Think Pulse Inc filed Critical Think Pulse Inc
Application granted granted Critical
Publication of TW476909B publication Critical patent/TW476909B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)
  • Collating Specific Patterns (AREA)
  • Storage Device Security (AREA)

Description

476909 經濟部智慧財產局員工消費合作社印製 A7 B7 五、發明說明(1 ) 發明領域: 本發明係關於聰敏裝置的領域。詳言之,本發明係關 於與一聰敏裝置一起被使用之應用軟體的領域。 發明背景: 聰敏裝置,如聰敏卡,聰敏手錶,聰敏標簽,或其它 具有處理資料或貯料的能力之可攜帶物件,可與其它處理 裝置溝通以提供一功能的操作。聰敏裝置之功能性的操作 或使用的例子包括有貯存數値(通常是指電子脈衝),安 全存取,安全認證,及許多其它的使用。 第1圖爲一傳統的聰敏裝置系統(1 )的方塊圖。一 聰敏裝置(2 )與一終端機(3 )溝通。在該終端機(3 )上執行之應用軟體通常被稱爲一 ”應用,,(4 )。應用(4 )透過應用軟體界面(A P I ) ( 6 )而與該終端機硬體 (5 )界面。該A P I爲支援該鄧應用之聰敏裝置界面所 組合起來的。典型地,該A P I在一層直接與該終端機硬 體互動的軟體(未示出)之上執行。此等軟體層的例子包 括 Open Card Framework(〇CF)層,Personal Computer to Smart Card ( P C — S C )層’及s u 11〜啓始層。 用來在該聰敏裝置(2 )上處理資料並經由該聰敏裝 置作業系統(0 S ) ( 9 )與聰敏裝置硬體(8 )互動之 應用軟體’通吊被稱爲”小程式(a p p丨e t s ) ”( 7 )。在該 終端機(3 )上執行之應用(4 )經由A P I ( 6 ),終 端機硬體(5 ),及聰敏裝置硬體(8 )與該小程式(7 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公爱) U—^-------裝--------訂---------^!^· (請先閱讀背面之注意事項再填寫本頁) -4- 476909 A7 B7 五、發明說明(2 ) )界面。 資料是經由該終端機(3 )被下載/上傳至該聰敏裝 置(2 )。該終端機可以是接觸式或非接觸式。在接觸式 中,聰敏裝置與終端機之標籤接觸以經由與位在該聰敏裝 置上的接觸墊的實體接觸而建立與該聰敏裝置的溝通。在 非接觸式中,終端機射頻(R F )典型地被用來提供與聰 敏裝置間的溝通。其它非接觸式的終端機可使用光,微波 ,或其它溝通方法。 因爲記憶體在終端機記憶體上很寶貴的關係,所以傳 統的A P I被最佳化以支援一特殊的中端機-從敏裝置組 合的特定用途的功能。例如,一被設計來與-一作爲電子錢 包之聰敏裝置一起使用之A P I被最佳化以支援在實施電 子錢包應用時經常被使用到的功能。相同地,一被設計來 支援忠誠度獎勵應用之A P I ,如航空公司經常飛行旅客 獎勵方案,被最佳化以支援在實施忠誠度應用時經常被使 用到的功能。電子錢包應用典型地將無法與忠誠度A P I 相互作用,因爲此等A P I不支援電子錢包功能。相同地 ,忠誠度應用及小程式典型地無法與電子錢包A P I相互 作用。以此方式,專屬於一特定功能的工具的應用,如忠 誠度,典型地只能與用於相同功能的工具之A P I相互作 用。 A P I典型地被最佳化以與來自於一特定的製造商的 特定聰敏裝置一起工作。一用於一特定製造商的電子錢包 聰敏裝置的A P I所支援的應用功能不同於被設來用於另 本紙張尺度適用中國國家標準(CNS)A4規格(210 x 297公釐) LI!y-------f►裝 (請先閱讀背面之注音?事項再填寫本頁) 訂--------- 經濟部智慧財產局員工消費合作社印製 -5- 476909 A7 B7 五、發明說明(3 ) ~製造商的聰敏裝置的電子錢包。此外,即使是賴自於一 特定製造商之不同型號的電子錢包聰敏裝置亦需要一不同 的API ’該API無法與爲同一製造上之其它型號的電 子錢包聰敏裝置的所寫的應用相互作用。A P I典型地亦 被最佳化以與一特定的讀取器一起工作。因此,一爲一已 知的A P I所寫的應用與一組特定的讀取器結合可與一小 組聰敏裝置一起使用。這所產生的結果爲用於忠誠度的應 用缺乏跨越用在來自於不同的製造商的卡及爲特定的終端 機之A P I的相互作用性。 該等應用之跨越爲特定的聰敏裝置,終端機及功能而 最佳化之A P I的缺乏降低了開發者產生可<實施於不同的 聰敏裝置上的應用的能力。傳統A P I之現有的設計要求 開發者寫出及發展出用於一特定的或一組特定的AP I上 的應用。因此,以此方式所寫成的應用只對於有限數量的 聰敏裝置及終端機有用。 既有的程式界面嘗試要解決傳統A P I與缺乏彈性相 -L---y-------裝--------訂--------- (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 用 C {卡 { 作 充式敏該該用 互 Μ程聰。。應 相 Μ小被行行va 的TMava}執執Ja 大vaJa2 所上。 較Ja行 1 > >面 供 的執丨 3 4 界 提 型可式 1 1 } 間 典爲程彳丨5 之 一 } 小 } S 1 I 示 lvaM 〇 C P 顯 lJav的體 A。 其 { 。 C 卡硬 與 m ,卡置 J 敏的 用語圖va裝丨聰卡 應式塊Ja敏器在敏 在程方一聰機} 聰 種va一 。的擬 3 與 一 J 爲構統虛 1 } 。 爲圖架傳卡彳 4 題試 2 的之avaMl 問嘗第 } } Jv 的之 ο 2 如 c S 關性 1 1 , J 〇 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公餐) -6 - 經濟部智慧財產局員工消費合作社印製 476909 A7 B7 五、發明說明(4 ) 1 6 )在終端機(1 8 )的J v Μ ( 1 7 )上執行。與 Java卡(1 1 )溝通的終端機(1 8 )可以是接觸是或非 接觸式的終端機。應用藉由A P I ( 2 0 )而與終端機硬 體(1 9 ) ,:iava卡的硬體,及了ava小程式相界面。與第 1圖中之API (6)相同的,API (20)與應用界 面以支援該Java卡的功能。因爲記憶體在終端機記憶體上 很寶貴的關係,所以A P I典型地被最佳化以支援聰敏卡 之特定用途的功能。因此’一爲了電子錢包小程式而被最 佳化的A P I典型地將不會支援忠誠度應用。相同地,一 爲了忠誠度而被最佳化的A P I亦將不支援電子錢包應用 。以此方式,該〗ava卡具有與第1圖所示之傳統聰卡架構 相同的缺點。 不論是在第1圖中之傳統架構上或在第2圖的〗ava卡 架構上之允許應用與應用之間的可相互作用性的嘗試所得 到的結果爲損失支援爲特定聰敏卡的使用所寫之諸應用的 功能。目前可取得之聰敏卡系統的架構強迫設計者在相互 作用性與功能性之間作一取捨與平衡,而大多數的系統選 擇功能性而捨相互作用性。 藉由增加A P I所支援之功能來提高傳統A P I的相 互作用性的嘗試具有增加A P I的足跡,即將A P I貯存 在終端機上所需的記憶體,的缺點。這會產生提高終端機 的成本與複雜度的缺點。 傳統的應用及A P I架構亦具有的缺點爲,當一具有 新的功能之新的聰敏裝置或終端機被導入時,既有的應用 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) (請先閱讀背面之注意事項再填寫本頁) n n n 1 ΛΒΒ ίβ n 訂--------- 476909 A7 五、發明說明(5 ) 通常無法與用於新的聰敏裝置或終端機之A P I相互作用 在新的功能發展之前完成的A p I將無法支援新的功能 〇 (請先閱讀背面之注意事項再填寫本頁) 該等聰敏裝置的一重要的態樣爲它門的安全特徵,其 可防止對於貯存在該裝置上之小程式與記憶體之未經授權 的存取。 發明目的及槪沭 經濟部智慧財產局員工消費合作社印製 本發明提供一種用於聰敏裝置之連結引擎,其將該應 用之邏輯’應用邏輯單元連結至該應用,應用協定之一硬 體特定描述。一應用邏輯單元以傳統的電腦·語言被寫成並 表達該應用之邏輯而無需顧慮該終端機或聰敏裝置之特定 的硬體工具(hardware implementation )。在執行時間期間 ,該引擎查閱對應於該等硬體元件之適當字典。每一字典 具有一在執行時之靴式啓動(boot )程序,其在所使用的 硬體無該字典所描述的硬體時會輸出預設的回應。以此方 式,由一組字典中所取得的字典被加以測試以找出適合於 該應用邏輯單元會被執行於其上之終端機及聰敏裝置的字 典。 g[式簡單說明: 第1圖爲一方塊圖,其顯示一傳統的聰敏卡之應用系 統架構。 第2圖爲一方塊圖,其顯示一傳統的〗avaTM卡系統之應 用中國國家標準(CNS)A4規格(210 X 297公釐) -8- /by 〇9 A7 B7 五、發明說明(6 ) 用系統架構。 第3圖爲根據本發明之包括了〜應用邏輯單元及一應 用協定(p r 〇 t 〇 c ο 1 )之聰敏裝置的應用。 第4圖爲根據本發明之應用與連結引擎的架構。 第5圖爲一流程圖,其顯示該根據本發明之連結引擎 於執行該應用時被其所執行的的程序。 第6圖爲一流程圖,其顯示根據本發明之選擇適合於 •在該應用邏輯單元的執行時間被使用之硬體工具之用之適 當字典之選擇程序。 第7圖爲一流程圖,其顯示執行一根據本發明的應用 之程序。 < 第8圖爲一流程圖,其顯示根據本發明執行一字典安 全檢查的程序。 主要元件對照表 (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 3 4 5 6 7 8 9 聰敏裝置系統 聰敏裝置 終端機 應用 終端機硬體 應用程式界面 小程式 聰敏裝置硬體 作業系統 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公楚) -9- 476909 A7 B7 五、發明說明(7 ) 經濟部智慧財產局員工消費合作社印製 〇 J a v a卡系統 1 J a v a 卡 2 J a v a小程式 3 J a v a卡虛擬機器 4 作業系統 5 硬體 6 Java應用 7 J a v a虛擬機器 8 終端機 9 終_機硬體 〇 應用程式界面 〇 應用程式(應用) 1 應用邏輯單元 2 應用協疋 3 連結引擎 4 終端機硬體 5 字典組 6 字典 7 描述 8 靴式啓動檔 發明詳細說明: 本發明將以一特定的實施例來加以說明。這是爲了要 便於瞭解本發明的特徵及原理且本發明並不只侷限於此實 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) • U丨丨if------ΛΨ S (請先閱讀背面之注意事項再填寫本頁)
----訂i I # -10- 476909 A7 _______________B7___ 五、發明說明(8 ) 施例。詳言之,本發明是以聰敏裝置爲例來加以說明。可 用本發明之聰敏裝置的例子包括有聰敏卡,聰敏手錶, 取、敏彳示籤’聰敏袖口( w n s t b a n d ) ’及聰敏垂飾。聰敏裝 置可以是能夠執行小程式以處理資料的處理器種類或,或 用來貯存資料的記憶體種類。此外,本發明是用與一終端 機相關連來加以說明。一終端機可以是能夠經由本身或透 @其它裝置與一聰敏裝置溝通的的任何計算裝置。終端機 的例子包括個人電腦,伺服器電腦,手持電腦,銷售點終 端機’可攜式電話與溝裝裝置,及電腦網路。 &以下的圖式中,相同的物件被標以相同的標號以助 於瞭解本發明。 < 第3圖爲一方塊圖,其顯示根據本發明之一應用程式 (應用)(3 0 )的架構。該應用典型地執行於與一聰敏 裝置相溝通的一終端機上。應用可以是資料處理之任何工 具。應用的典型例子包括在一電子錢包卡中的負債功能, 在一經常飛行者企畫案卡中之額度於添加忠誠度點數功能 ,在一安全授權卡中的鑰匙產生功能,在一醫療歷史卡中 之記憶體取得功能,或許多種卡工具所共通的安全及記憶 功能。 本發明之應用(3 0 )被分成兩個軟體領域以形成該 應用。該應用(3 0 )是由一應用邏輯單元(3 1 )及一 應用協定(3 2 )所構成。應用邏輯單元爲該應用的邏輯 ,其與硬體工具無關。應用協定爲該應用之一硬體的特定 構件並提供在一特定的硬體工具上實施該應用協定的邏輯 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -------ϋ 裝 (請先閱讀背面之注意事項再填寫本頁) 訂---------丨 經濟部智慧財產局員工消費合作社印製 -11 - 476909 A7 五、發明說明(9 ) 所需的資料的規則。 (請先閱讀背面之注意事項再填寫本頁) 第4圖爲應用邏輯單元(31),連結引擎(33) 及中端機硬體(3 4 )的架構的方塊圖。該應用邏輯單元 與該連結引擎相互作用以將一應用協定連結至該應用邏輯 單兀。該連結引擎與包含至少一字典(3 6 )之一組字典 (3 5 )相互作用。一字典(3 6 )包括一與該終端機硬 體(3 4 )及該聰敏卡硬體(未示出)相關的說明(3 7 )。η羊曰之’ g亥子典包括一串詞(verb)(未示出)。該 等詞(verb )被描述於該字典的本體中,該描述爲該詞的 定義。該組字典(3 5 )被描述於一靴式啓動檔(3 8 ) 中。該連結引擎(3 3 )在測試該字典時使<用該靴式啓動 檔以決定對於在該應用的執行時間出現之聰敏裝置及終端 機而言該字典是否爲適當的字典。該適當的字典被用作爲 應用協定,其在連結至該應用邏輯單元時提供該應用之硬 體特疋構件。 經濟部智慧財產局員工消費合作社印製 第5圖爲該連結引擎於執行一應用時所使用的程序的 流程圖。在本發明之目前較佳的實施例中,該連結引擎在 步驟(4 0 )之前已被建立且該應用邏輯單元已啓始一靴 式啓動檢查要求,此將參照第7圖於下文中說明。在步自 樞(4 0 )時,連結引擎等待一聰敏裝置的與該終端機溝 通的指標(inchcation )。當接收到一正面指標時,即當有 一聰敏裝置與該終端機溝通時,該連結引擎前進至步驟( 4 1 )以以啓始該字典的一相容性測試以用作爲該應用協 定。選擇一字典以用作爲應用協定之程序將參考第6圖於 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -12- 476909 A7 B7 五、發明說明(10 ) (請先閱讀背面之注意事項再填寫本頁) 下文中說明。在步驟(4 2 )時,該連結引擎從該應用協 定選擇程序處接收到該相容的字典的識別子以用作爲該應 用協定。對應於該識別子的字典被用作爲應用協定。該連 結引擎然後前進至步驟(4 3 )以等待一由該應用邏輯單 元呼叫來的方法。 該連結引擎前進至步驟(4 4 )以在該應用協定中查 閱該方法以回應由該應用邏輯單元呼叫來的方法。在步驟 (4 5 )時,該連結引擎決定一對應於該方法的詞(verb )是否存在該應用協定中。如果該詞不存在的話,則該連 結引擎回到步驟(4 4 )以等待一從該應用邏輯單元呼叫 來的方法。如果該詞存在的話,則該連結引,.擎前進至步驟 (46),該連結引擎於該處從該應用協定取得定義並將 該定義連結至從該應用邏輯單元呼叫來的方法。該連結引 擎然後在執行從該應用邏輯單元呼叫來的方法時於步驟( 4 7 )使用該詞的定義。在步驟(4 7 )之執行根據該定 義的規則與資料執行呼叫來的方法所產生的回應然後在步 驟(4 8 )被回送至該應用邏輯單元。該連結引擎回到步 驟(4 3 )以等待一從該應用邏輯單元呼叫來的方法。 經濟部智慧財產局員工消費合作社印製 該連結引擎會回送一嚴重錯誤至該應用邏輯單元以作 爲會危及該應應邏輯單元的適當執行之任何狀況的回應。 會引起一嚴重的錯誤之狀況包括了一關鍵的定義不存在於 該應用行定中,關鍵的資料或規則不存在於該應用協定中 ,關鍵的資料不存在於被送至該方法呼叫的應用邏輯單元 中,使用於該方法呼叫中的資料有問題,或對於執行該方 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -13- 476909 經濟部智慧財產局員工消費合作社印製 A7 B7 五、發明說明(11 ) 法呼叫之一不適當的回應。在本發明之較佳的實施例中, 觸發一關鍵錯誤之狀況細包括在應用協定中。 第6圖爲一流程圖,其顯示該連結引擎在選擇一字典 以用作爲一已知的終端機及聰敏裝置之應用協定所使用的 程序。在步驟(5 0 )時,該連結引擎從一應用邏輯單元 接收到一靴式啓動檢查的請求,或字典選擇請求。該連結 引擎在步驟(51)接收一列可能相容的字典以作爲回應 。在本發明之目前較佳的實施例中,該列可能相容的字典 包括了那些被描述爲可能與該應用邏輯,該終端機及該聰 敏裝置相容的字典。詳言之,被包括在該列可能相容的字 典中之字典被預先選擇以包括可與該終端機·=及應甩邏輯單 元相容的字典。在此一例子中,該列字典包括了提供可與 該應用及終端機一起使用之任何聰敏裝置相容之描述所需 之所有的字典。。 此列字典位在與該應用邏輯單元分開來的檔案中。此 檔案被稱爲靴式啓動檔。因爲該靴式啓動檔與該應用邏輯 單元檔分揩來,所以當一新的聰敏裝置被導入時此檔案可 被更新以增加字典,而不需修改該應用邏輯單元。此外, 該靴式啓動檔包括一位址其指定到何處只到該字典。根據 該終端機及聰敏裝置的工具,該字典可位在該終端機可經 由網路或網際網路連接而取得的電腦處或被貯存在該聰敏 裝置的記憶體中。當該終端機可連接至一網路或一網際網 路時,將字典貯存在遠離該聰敏裝置處可降低該聰敏裝置 對於記憶體的需求。此外,該字典之遠端貯存可讓額外的 本紙張尺度適用中國國家標準(CNS〉A4規格(210 X 297公釐) «l·—U-------裝--------訂— (請先閱讀背面之注意事項再填寫本頁) -14 - 經濟部智慧財產局員工消費合作社印製 476909 A7 B7 五、發明說明(12 ) 字典被添加至該靴式啓動檔而無需將字典下載至該聰敏裝 置。該字典之遠端貯存可在字典需要修改時將該字典加以 修改。或者,將該字典貯存在該聰敏裝置上可確保該字典 不被修改,特別是在該字典被貯存在防寫的記憶體中時。 將該字典貯存在該聰敏裝置上可在該終端機無法連接至一 網路或網際網路時提供字典的取得。在本發明的一實施例 中,一組核心字典被貯存在該卡上且一組加強的字典則被 貯存在一遠端檔案中。該等核心字典支援一已知卡的的基 本功能。該等加強字典則提供對於可與該卡一起使用之額 外的功能的支援。以此方式,除了提供對於線上應用而言 爲共通之加強的功能之外,該卡提供對於離線應用而言爲 共通的基本支援。 在步驟(5 2 )時,該連結引擎選擇列在該靴式啓動 檔案中之一個字典以供相容性測試之用。在步驟(5 3 ) 時,該連結引擎取得在步驟(5 2 )所選取的字典。在步 驟(5 4 )時,該連結引擎執行該靴式啓動以掃描被取得 的字典以取得該字典之被選取的片段以輸入該連結引擎供 相容性測試之用。該靴式啓動檔案提供該將被掃描且在產 生該相容性測試的輸出値上被使用的字典之該等片段的描 述。該連結引擎產生根據所指定的字典資訊而產生一輸出 數値。在步驟(5 5 )時,該連結引擎從該相容性測試接 收到該輸出數値。該輸出數値在步驟(5 6 )處與一靴式 啓動檢查値相比較。在本發明的一較佳實施例中,該靴式 啓動檢查値對於所有的聰敏裝置而言爲一共通的標準値。 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) ------_ 丨 裝--------訂--------- # (請先閱讀背面之注意事項再填寫本頁) -15- 476909 經濟部智慧財產局員工消費合作社印製 A7 B7 五、發明說明(13 ) 該靴式啓動檢查値可被貯存在該應用邏輯單元,該靴式啓 動檔’或該字典中。該果該輸出値與該靴式啓動檢查値相 同的話,則該連結引擎在步驟(5 7 )處將對應於該輸出 値之字典加至該列相容的字典中。然後該連結引擎前進至 步驟(5 8 )。如果在步驟(5 6 )時該輸出値不同於該 靴式啓動檢查値的話,則該連結引擎前進至步驟(5 8 ) 而不將對應於該輸出値之字典加至該列相容的字典中。 不同的應用及聰敏裝置需要該字典及該卡之多功能的 測試。在此等例子中,會有多個靴式啓動檢查値對應於將 被相容性測試之多個功能。在本發明的較佳實施例中,對 應於每一功能測試之靴式啓動檢查値對於所/有的聰敏裝置 而言將會是共通的。選擇上地,該連結可根據靴式檔案產 生多個輸出値,該等輸出値與聰敏裝置相關。在步驟( 5 5 )時,該連結引擎接受來自於該相容性測試的輸出値 。該等輸出値在步驟(5 6 )處與對應的靴式啓動檢查値 相表較。如果輸出値與對應於相同的功能之靴式啓動檢查 値相同的話,則該則該連結引擎在步驟(5 7 )處將對應 於該輸出値之字典加至該列相容的字典中。然後該連結引 擎前進至步驟(5 8 )。如果在步驟(5 6 )時該輸出値 不同於該靴式啓動檢查値的話,則該連結引擎前進至步驟 (58)。 在步驟(5 9 )時’該連結引擎檢查是否所有列在該 靴式啓動檔中的字典都已接受相容性測試。如果並非所有 的字典都已接受測試的話,則該系統回到步驟(5 2 )。 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -16 - • L---^-------AW ^ · I------訂--- (請先閱讀背面之注意事項再填寫本頁) 考. A7
五、發明說明(14 ) (請先閱讀背面之注意事項再填寫本頁) 如果所有的字典都已接受測試的話,則該連結引擎前進至 步驟(5 9 )。在本發明目前較佳的時施例中,該連結引 擎測試所有的字典且將來自於每一字典之輸出値與靴式啓 動檢查値相比較。具有與該靴式啓動檢查値相同的數値之 每一字典都被加至該列相容的字典中。 選擇性地,該連結引擎可比較在該列相容的字典上的 子典以選擇那一個字典來指定作爲該應用協定。該選擇可 根據該字典之最小的檔案大小,該字典之最多特徵,或其 它的條件來實施。或者’當所有的字典都適合用作爲該應 用協定時’該連結引擎可隨機地從該列字典中選取任一字 典。此選擇程序是在步驟(5 9 )實施的。, 在步驟(6 0 )時’該連結引擎將被選取作爲應用協 定之字典的識別子回送至該應用邏輯單元。 經濟部智慧財產局員工消費合作社印製 第7圖爲一流程圖’其顯示根據本發明執行一應用的 程序。在步驟(7 0 )時,該應用邏輯單元藉由產生該字 典的一輪廓(profile)來開始產生一虛擬聰敏裝置的程序 。在步驟(7 1 ) ’該應用邏輯單元建力該連結引擎以在 任何與該蒸端機硬體互動的軟體層上執行。在本發明的較 佳實施例中,該連結引擎被貯存在該終端機中。步驟( 7 1 )對該連結引擎作出一初始呼叫。在步驟(7 2 ), 該虛擬聰敏裝置在該連結引擎執行於該軟體的該終端機硬 體層之上且參照該字典的輪廓時被產生。產生一虛擬聰敏 裝置可讓該應用邏輯單元取得該連結引擎用以將該應用邏 輯單元連結至一應用協定。 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -17- 經濟部智慧財產局員工消費合作社印製 476909 A7 __ B7 五、發明說明(15 ) 在步驟(7 3 ),該應用邏輯單元啓動一靴式啓動檢 查以找出將被用作爲該應用協定之字典。該靴式啓動檢查 程序係參照第6圖被詳細描述。在靴式啓動檢查程序中被 選取之字典在步驟(7 4 )處被回送並被用作禺該應用協 定。 在步驟(7 5 ),該應用邏輯單元發起一方法呼叫。 一方法呼叫可以是任何邏輯程序以存取或操作在該聰敏裝 置或在該終端機上的茲料。檢查在該卡上的電子錢包的餘 額及爲方法呼叫的一個例子。如參照第5圖所描述的,該 連結引擎接收在步驟(4 3 )被招喚的方法呼叫,並在執 行該應用時使用該方法之字典定義。根據包含於該字典中 之定義,該連結引擎在步驟(4 7 )執行一連串的聰敏裝 置指令。這些指令根據來自於該卡及該字典之資料輸出回 應。該連結引擎在第5圖中之步驟(4 8 )處將與該聰敏 裝置指令相關連之回應回送至該應用邏輯單元。該應用邏 輯單元在步驟(7 6 )接受指令輸出回應。然後,該應用 邏輯單元會藉由引發其它的方法呼叫,如此該程序會再次 從步驟(7 5 )開始,或藉由終止來繼續。 第8圖爲該連結引擎的安全管理員所實施的之該字典 之未經授權的改變的檢查的程序的一示意圖。在本發明的 較佳實施例中,該應用邏輯單元會對該連結引擎發出一呼 叫以進行字典的安全檢查。在步驟(8 0 ),該連結引擎 從該應用邏輯單元處接收一字典安全檢查的要求。在步驟 (8 1 )該連結引擎掃描該字典找尋安全淸單。在本發明 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -----U,-------裝-----I--訂--------- (請先閱讀背面之注意事項再填寫本頁) -18- 476909 A7 B7 五、發明說明(16 ) (請先閱讀背面之注意事項再填寫本頁) 的較佳實施例中,該安全淸單爲該字典的一部分。在掃描 安全淸單時’該連結引擎接收到該相關的字典的安全輪廓 。該安全輪廓爲一組將於檢查該字典沒有未經授權的改變 時使用的法則。該安全輪廓包括指定該連結引擎於處理該 字典之未經授權的改變時會使用的演算法之識別子。當該 演算法被施用於一測試字涮時,該演算法會回送一無法藉 由施加該演算法至不同於該測試字串之其它任何字串所能 產生的獨一無二的値。在本發明的較佳實施例中,該安全 淸單亦包括施用該被指定的演算法至該字典之對應的片段 所得到之該獨一無二的數値,其在本文中被稱爲查驗摘要 (verification digest ) 〇 . 經濟部智慧財產局員工消費合作社印製 在步驟(8 2 ),該連結引擎接收包含在該安全淸單 中的安全輪廓。在步驟(8 3 ),該連結引擎設定將被使 用在處理該字典中之演算法。在步驟(8 4 ),該連結引 擎掃描該字典以取得該字典在該輪廓中被指定的片段。在 步驟(8 5 ),該字典之被該輪廓所指定的片段根據在步 馬聚(8 3 )所設定的演算法來基以處理以產生一輸出摘要 。在步驟(8 6 ),施加該演算法至該字典所得到輸出摘 要被拿來與一對應於該被指定的字典片段的查驗摘要比較 。該查驗摘要爲 實例 一根據本發明之應用邏輯單元及用作爲應用協定之原 始碼的實例列於下文中。用來檢測一字典與該應用邏輯單 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -19 - 476909 經濟部智慧財產局員工消費合作社印製 A7 B7 五、發明說明(17 ) 元間的相容性之靴式啓動檔案亦被提供。該舉例性的應用 邏輯單元是以〗avaTM語言寫成的及相關連的應用協定及靴式 啓動檔案是以X M L寫成的。在本發明之目前較佳的實施 例中,X M L是因爲其適合提供硬體工具的說明而被選取 的。 在以下的實例中,行編號(A 1 ,A 2,A 3…; B1 ,B2,B3 ,...; Cl ,C2,C3 ’···)只是爲了 說明的目的而被使用並非原始碼的一部分。這些行編號只 是指在本文中被列印的行,並非原始的的”行”。 應用邏輯單元 - 以下一應用邏輯單元的了ava實例如第A 1行所示的是 用於忠誠度應用中。此應用邏輯單元的實例檢查貯存在該 聰敏卡中之忠誠度點數,決定額外的忠誠度點數是否要加 計至該總忠誠度點數上,及決定忠誠度點數是否被贖回且 從總忠誠度點數扣除。在第A 3行上,字典之字串詞被產 生。該程式的主體部分在第A 1 9 0行開始。A 2 0 7 -A215行,A226及A232-233行,一虛擬聰 敏卡被產生以取得該連結引擎。在第2 0 7行,該靴式啓 動檔案被輸入到該應用中作爲一引數(argument)。該靴 式啓動引數然後於第A 2 1 1行之產生該聰敏卡的輪廓時 被使用。在第A 2 3. 7 - 2 3 8行,檢查該靴式啓動檔案 以找出適當的字典的程序被初始化。在第A 2 6 4及 2 6 5行,被決定爲該適當的字典之字典被用作爲應用協 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) ----P-------裝--------訂--------- (請先閱讀背面之注意事項再填寫本頁) -20- 476909 A7 ------B7 _____ 五、發明說明(18 ) 疋’如參照第6圖所說明的。當用作爲應用協定的該字典 被指定之後’該應用邏輯單元即可使用該硬體特定資訊及 於該字典中被限定的規則來實施該應用的邏輯。因此,在 第A 2 8 8行,該應用開始一忠誠度應用的邏輯的實施。 該實施該忠誠度應用的邏輯持續至第A 7 7 2行。該應用 的邏輯包括安全檢查方法,餘額檢查方法,贖回及給予忠 誠度點數的方法,以及回報與由持卡人及贊助此忠誠度企 晝案的廠商處收集資訊的方法。 例如,從第A 2 8 8行至A 3 6 0行,該應用邏輯單 元提供一安全檢查子程式。 一額外的例子爲,該應用邏輯單元從第A 3 6 7行至 A 3 7 5行讀取該交易數値以增加持卡人的忠誠度點數。 該應用邏輯單元於第A 3 7 0行一 3 7 2行提示施入交易 金額。該交易金額於第A 3 7 4行被輸入。 該應用邏輯單元的實例包含四個詞(verb): GetCardInfo,venfy?TransactionAward,5: TransactionRedeem ο 經濟部智慧財產局員工消費合作社印製 詞GetCardlnfo的第一次方法呼叫在第A 4 1 0行。詞 v e n f y的第一次方法呼叫在第A 6 5 7行。詞 TransactionAward的第一次方法呼叫在第A 5 3 3行。詞 TransactionRedeem的第一次方法呼叫在第A 5 7 6行。在 該應用邏輯單元中所用之所有四個詞之第一次方法呼叫是 在該應用邏輯單元已經指定將被用作爲應用協定之字典之 後。以此方式,在該應用協定中之字的定義在方法呼叫之 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -21 - 476909 A7 _B7_ 五、發明說明(19 ) 前即被連結至應用邏輯單元中之方法。 A1: package applications . loyalty; A2 : A3: import applications . loyalty. crypto .*/ A4 : A5: import com.gemplus.scidl. framework. */ A6: import com.gemplus.scidl. util. *; : import com.gemplus.scidlx. framework. * ; A8 : A9: impart j ava.awt. event. * / A10.: --I------丨丨--訂—丨丨 (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -22- 476909 A7B7 經濟部智慧財產局員工消費合作社印製 五、 All A12 A13 A14 A15 A16 All i A18 'A19 A20 A21 A22 A23 A24 A25 }A26 :A27 -,A28 !A29 ;A30 A31 A3 2 A33 A3 4 A3 5 ;A36 |A37 :A38 ^A39 A40 ;A41 A42 A4 3 A4 4 A4 5 A4 6 A4 7 A48 A4 9 A50 A51 :A52 A53 A54 A55 A56 A57 A58 A59 A60 A61 A62 A63 A64 A65 A66 A67 A68 發明說明(2Q ) import j ava. util. Enumeration; import j ava. util. Calendar; import j ava. util.StringTokenizer; public class Loyaltylnterface { // class members private static final String welcome = f,\nWELCOME to the Loyalty application (c) Solves inc.,f + ’T\nThis application manages a Loyalty program on two’’ + ^XnGemplus smart cards:” + ”\n * GemClub (Gemplus Loyalty card)M + ”\n ★ GemXplore (Gemplus GSM card)" + ”\nEach card interface has been described using SCIDL.’’ + ”\nThrough this interface, the same application can communicate,’ + n\nwith multiple smart cards ”\n \nSource code and XML descriptions are available at··’’ + "\nhttp: WWgemplus . com. \\solves Wapplications11 + "\n \n** PLEASE INTRODUCE YOUR CARD TO START THE APPLICATION **,,;
String xrul一filename; // 〈MODIFICATION FOR THE INTERFACE〉 // PREVIOUS IMPLEMENTATION // RunProcess virtualCard // NEW IMPLEMENTATION RunProcess processEngine; // END 〇F MODIFICATION int iAmount = 0; PosTerminal theTerminal/ PosPinpad pinpad; Object [] responseProcess = null; Argument[] arguments = null/ long serialNumber = 0; String cardHolderlnfo = int lastTransactionDate = 0/ String lastTransactionlnfo =,’1 int lastTransactionAmount = 0; int cardBalance = 0/ int transactionType = 0; Calendar date;
int state = 0; // 〈MODIFICATION FOR THE INTERFACE〉 VirtualCardlmpl virtualCard; // END 〇F MODIFICATION / / this is the xml file to use (請先閱讀背面之注意事項再填寫本頁) 裝 ////// / / //// / / the virtual card instance the process engine instance the transaction amount the terminal instance the terminalf s pinpad the process1 responses the Argument container // the card serial number // the card user information // the last transaction date // the last transaction // the last transaction amount // the card balance // the transaction type // the date instance // the state machine index // the virtual card
// state machine index public static final int NONE_STATE = 0; public static final int AWARD_STATE = 1; public static final int REDEEM__STATE = 2; public static final int CHV VERIFICATION 4; public static final int AWARD__T RAMS ACTION = 1; public static final 'int REDEES TRANSACTION = 2; * Class contructor 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 訂i #· -23- 476909 A7B7 五、發明說明( 21 A69 ΑΊ0 ΑΊ1 M2 A7 3 A7 4 A7 5 A7 6 A7 7 A7 8 A7 9 A80 A81 A82 A83 A84 public Loyaltylnterface () { } // this is the class back implementation using the plugin interface Plugin plugin = new PluglnAdapter() { private Argument[] theArguments = null; private Object[] r = null; //// II ★★★★★★★★★★★★★★★★★★★★★★★★★★★★ public Object[] runCallback(Object[] 一o, // 一o[l] returns the arguments of the // o[0] returns the member holder of 女★★★★★★★★★女
Implement the call back methods
String —message) { process the process for th previous steps A85: A8 6 A87 A88 A8 9 A90 A91 // for debug only MemberHolder memberHolder = (MemberHolder) _〇[0]; System, out. println (,fthis is the list of member'1 + memberHolder); for(Enumeration localMembers = memberHolder.getMemberList()/ localMembers.hasMoreElements();) System.out.println(Mthis is the member found in the callback : i 經濟部智慧財產局員工消費合作社印集 f A92 A93 A94 A95 A96 A97 A98 A99 A100 A101 A102 A103 A104 A105 A106 A107 A108 A109 A110 Alll A112 A113 A114 A115 A116 M17 A118 All 9 A120 A121 A122 A123 A124 // end of debug ((Member) localMembers.nextElement()).getName()) // this is the call back to get the related XML file according // to the smart card inserted in the reader if (—message· substring(0, 5) .equals (’’file: ’’)){ runApplication(一 message); r = —o; } // this is the certificate process callback from the XML else if (一rues sage · substring (0, 6) · equals (’’crypto·’)){ theArguments = runTransactionCertificate(一o, 一 message); r = —o; } // this is the balance management callback from the XML else if (一message · substring (0, 12) . equals (’’awardBalance”)) { NotSecuredPurse localPurse = NotSecuredPurse.getlnstance(), MemberHolder outMembers = (MemberHolder) __〇[0]; Object [ ] arguments = (Object [ ] ) __〇 [ 1 ]; // here we can use reflexion localPurse.setBalance(outMembers, cardBalance);
MemberHolder responseArgs iAmount); localPurse. award(outMembers,
Object[] pluglnArgs = new Object[2]/ pluglnArgs[〇]=responseArgs; pluglnArgs[1] = arguments; r = pluglnArgs; } 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) .裝--------訂----
n n ϋ n I # -24- 476909 A7 B7 五、發明說明(22 ) A125 A126 A127 A128 A129 A130 A131 A132 A133 A134 Α135ι A136 A137 A138 A139 A140 A141 A142 A143 A144 A145 A146 A147 A148 A149 A150 A151 A152 A153 A154 A155 A156 A157 else if(—message·substring(0, 13) ·equals ("redeemBalance”)) { NotSecuredPurse localPurse = NotSecuredPurse·getInstance ();
MemberHolder outMembers = (MemberHolder) Object [] arguments = (Object[]) 一o[l]; 〇[0]; // here we can use reflexion instead localPurse. setBalance(outMembers, cardBalance); MemberHolder responseArgs = localPurse. redeem(outMembers, Amount); Object[] pluglnArgs = new Object[2]; pluglnArgs[0] = responseArgs; pluglnArgs[1] = arguments; r = pluglnArgs; } return r; } II ★女★★★★★★★★★去女+★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ // ★**★*★**★*★ Implement the plug in controls **************** II ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ public ResponseApdu runPlugln(〇bject[] 一。, String —message) { // —〇[1] returns the arguments of the process //—〇[0] returns the member holder of the previous steps // for debug only System.out. printIn (nthis is the list of member”); MemberHolder memberHolder = (MemberHolder) _〇[0]; for(Enumeration localMembers = memberHolder.getMemberList(); localMembers.hasMoreElements();) System, out. println (flthis is the member found in the plugin: ((Member) localMembers.nextElement()).getName()); 經濟部智慧財產局員工消費合作社印製 A158 A159 A160 A161 A162 A163 A164 A165 A166 A167 A168 A169 // end of debug // get the content message StringTokenizer st = new StringTokenizer(一message, String messageld = st.nextToken() .trim(); String message = st.nextToken(). trim (); st = new StringTokenizer (message, String itemName = st.nextToken() . trim (); String itemValue = st.nextToken() . trim (); if (messageld. equals ( "pluginMessage”)&& itemName · equals (’’secret Code’’)〉 A170: theTerminal. displayMessage (,fACCESS PROTECTED” + A171: + A172: A173 A174 A175: pinpad A176: A177 A178 "\n \nThe user password is required to start the application. ”\nCould you enter your password using the keypad” + ”\n and press Valid key for verification.’’),· state |= CHVJ/ERIFICATION ; " pinpad.readMessage(); // start reading message from the while ((state & 0x04) !=〇){ try { Thread.sleep (1000) ; } 本紙張尺度適用中國國家標準(CNS)A4規格(210 x 297公釐) ---ϋ----:---^----------------------------------- (請先閱讀背面之注意事項再填寫本頁) -25- 476909 A7 B7 五、發明說明(23 ) catch(Exception e) passwork is completed return null; } A179 A180 A181 A182 A183 A184 A185 A186 A187 A188 parameters A189: V A190: A191: A192: A193: A194 : A195: A196: A197: A198: A199: A200: A201: A202: A203: A204 : A205: A206: A207: A208 : A209: main class {}}}// this wait till the present @param —args An array of strings to get the application public static void main(String[] args) { Loyaltylnterface application=newLoyaltyInterface(); application.start(args)/ /*,
The method to run the application
V private void start(String[] args) { date = Calendar·getlnstance(); pinpad = new PosPinpad(this . listener ()); theTerminal = new PosTerminal(pinpad); theTerminal.displayMessage(welcome); // create the virtual smart card to access the engine xml—filename = ’’file··////’’ + args [0]; System, out. print In ( nThis is the XML file open: T, + xml 一 filename) // create the profile instance that contains all the smart card A210: profiles A211: Profilelmpl theProfiles = new Profilelmpl(xml一filename); A212: // get the content of the xml file A213: // note the next version of the engine should remove that invocation A214: theProfiles.setProfiles (); Enumeration profileList = theProfiles. getProfiles (); r —^-------AWI ^ —.-----^--------- (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 A215: A216: A217: A218 : A219: A220: A221: A222: A223: A224 : A225: A226: A227: A228: A229: // create the process helper for the call back CallBackList callbackList = new CallBackList(); callbackList·addCallback(plugin); // create the process helper for the plugin PluginList pluginList = new PluginList(); pluginList·addPlugin(plugin); // create the process helper ---〇CF 1.1 Terminal OcfLayer = new OcfTerminalll(); // 〈MODIFICATION FOR THE INTERFACE〉 // PREVIOUS IMPLEMENTATION // virtualCard = new RunProcessImpl(OcfLayer, pluginList, A230:callbackList); A231: // NEW IMPLEMENTATION A232: processEngine = new RunProcessImpl(OcfLayer, pluginList, callbackList); A233: virtualCard = new VirtualCardlmpl(processEngine, theProfiles); 本紙張尺度適用中國國家標準(CNS)A4規格(210 x 297公釐) -26- 476909 五、發明說明( 24 A234 A235 A236 A237 A238 A239 A240 A241 A242 A243 A244 A245 A246 A24 7 A248 A249 A250 A251 A252 A253 A254 A255 file A25 6: A257: // END 〇F MODIFICATION // get the full file name of the application SCIDL· file try { response Process = virtualCard. runProcess ( M get File,r, arguments, theProfiles) ; } catch(ProfileException pe) { theTerminal. displayMessage (,fThe system has detected a problem.’’ + lf\nError message: M + pe ·getMessage () + ”\n \nPlease, contact your service provider·”); } catch(RunProcessException rpe) { theTerminal. displayMessage (fTThe runtime environment has detected a problem.M + "\nError message: ’’ + rpe. getMessage () h ”\n \nPlease, contact your service provider.”); } * The application implementation 女 ' * @param 一file A string that represents the full path of the XML * to use as the application protocol * @return An array of argument that may be null becaus the engine A258:doesnf t A259: A260: A261: A262: A2 63: A264 : A265: A2 6 6 : A267: A2 68: A269: A270: Ά271: A272: A273: :A274: Α2Ί5: A276: A277: !A278: A279: A280: A281: A282: :A283: A284 : I from A285: A286 A287 A288 A289 女 expect any responseV private void runApplication(String 一file) // set te new framework Profilelmpl theProfiles = theProfiles.setProfiles() new Profilelmpl(一file)/ // there is only one description in the XML file CardProfile profile = (CardProfile) theProfiles . getProfiles ().nextElement (); // 〈MODIFICATION FOR THE INTERFACE〉 // PREVIOUS IMPLEMENTATION // virtualCard.setProfile(profile); // NEW IMPLEMENTATION processEngine .setProfile(profile)/ // END 〇F MODIFICATION runDisplay()/ * The method runs the generation certification for the given * smart card inserted in the reader * * @param 一 message A String that represents the message received * the XML file during.the call back event. 0return An array of arguments that represents the data processV public Argument[] runTransactionCertificate(Object[] —o, String —message) {
(請先閱讀背面之注意事項再填寫本頁) 了裝---- n §§ i n 訂--------:雜. 476909
A290: A291: A2 92: A293: A294 : A295: A296: A297: A298 :
Argument[] arguments = null; // get the algorithm by checking the message (一message) // the message content has the form of: ,fcrypto?award=DESfr StringTokenizer st = new StringTokenizer(—message, ”=”); String algo = st.nextToken() . trim ()/ algo = st.nextToken() . trim () if (algo . equals (,TDESM) ) { arguments = (Argument[]) 〇[l]; // get the arguments received A299:from the callback A300 : A301: A302: f A303: A304 A305 A306 A307 A308 A309 A310 A311 A312 A313 A314 A315 A316 A317 A318 A319 0x08 int iTransaction = 0; byte[] baTransaction = { *P', *i,, 'z,, ,z,, byte[] baCertificate = new byte[8]; Argument transactionAtt = null; // get the transaction argument for (int i = 0; i < arguments. length; i++) { if (arguments [i] .getName () . equals (''transaction") ) { transactionAtt = arguments[i]; iTransaction = i; } } DES desAlgorithm = new DES(); // both key are iitialized with zero value, this is for the initial // implementation because the system doesn’t support crypto // The next version of the implemention will carry real keys byte[] baAwardKey = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, A320: }; A321: byte[] baRedeemKey= { 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18 A322}; DesKey awardKey = DesKey redeemKey 經濟部智慧財產局員工消費合作社印製 II A323 A324 A325 A326 A327 A328 A329 A330 卜331 ;A332 .A333 h A334 ί A335 *A336 \A331 A338 声339 :A340 A3 41 A3 42 A3 4 3 A3 4 4 A345 A346 A3 4 7 new DesKey(baAwardKey); =new DesKey(baRedeemKey); // create the certification data in baCertificate[0] baCertificate[1] baCertificate[2] baCertificate[3] baCertificate[4] baCertificate[5] baCertificate[6] baCertificate[7] (byte) (byte) (byte) (byte) (byte) (byte) (byte) 1900) 1); (date . get(Calendar . YEAR) 一 (date . get(Calendar . MONTH) date·get(Calendar·DAY—OF一MONTH) date·get(Calendar·HOUR—〇F_DAY); date·get(Calendar·MINUTE)7 Hex.integerToBytes(iAmount)[1]/ Hex.integerToBytes(iAmount)[2]; Hex.integerToBytes(iAmount)[3]; if(state -= AWARD_STATE) { try { desAlgorithm.setkey(awardKey.getKey()); desAlgorithm.encrypt(baCertificate); System.arraycopy(baCertificate, 0, baTransaction, catch(CryptoException e) { System, out. print In (,fthis is cryptoException: ’’ + e.getMessage()); } • Variable transaction = ((Variable) arguments[iTransaction].getMember()); transaction,setValue(baTransaction) ; } 8, 8); }
(請先閱讀背面之注意事項再填寫本頁) 疮滴闲巾因因玄標準(CNS)A4規格(210 x 297公釐) 476909 A7 B7 五、發明說明(26 ) A348: if(state == REDEEM一STATE) { A34 9: try { A350: desAlgorithm.setkey (redeemKey. getKey ()); A351: desAlgorithm.encrypt(baCertificate); A352 : System.arraycopy(baCertificate, 0, baTransaction, 8, 8); } A353: catch(CryptoException e) { A354: System.out.printIn ("this is cryptoException: M + A355:e.getMessage()); } A356: Variable transaction = ((Variable) A35 6: arguments[iTransaction] .getMember()); A357: transaction. setValue(baTransaction)/ } } A358: A35 9: return arguments/ A360: } A361: A362: A363: /** A364 : * The method runs the award transaction A365: ★
A366: V A367: public void runAwardf) { A368: A369: if (state == NONE__STATE) { A370 : theTerminal · displayMessage (’’AWARD TRANSACTI〇Nn + A371: M\n \nEnter the transaction amount using the keypad”+ ,f\nand press Valid key for confirmation. M); state = AWARD_STATE; pinpad.readMessage() ; } // start reading message from the pinpad
The method runs the redeem transaction A372 A373 A374 A375 A376 A377 A378 A379 A380 A381: public void runRedeemO { A382: if(state == NONE^STATE) { A383: theTerminal. displayMessage (T, REDEEM TRANSACT ION’’ + A384: "\n \nEnter the transaction amount using the keypad”十 A385 : ’’\nand press Valid key for confirmation."); A386: state = REDEEM—STATE; A387: pinpad.readMessage(); } // start reading message from the pinpad A388: } A389: 經濟部智慧財產局員工消費合作社印製 A390: A391: /** A392: * The method runs the redeem transaction A393: * A394: V ' A395: public void runCancelO { A396: state = NONE一STATE; A397 : theTerminal .displayMessage (f,ABORTED TRANSACTI〇M,,+ A3-98: n\n \nThe transaction process has been aborted by the user·”); A399: }- A400: A401: A402: /** 本紙張尺度適用中國國家標準(CNS)A4規格(210 x 297公爱) 476909 A7 B7 五、發明說明(27 A403: A404 : A405: A405: A407 : A408 : A409: A410: A411: A412: A413: * The method runs the redeem transaction ★ V public void runDisplay() { Argument[] nullArgument = null; // get the card information try { responseProcess = virtualCard·GetCardlnfo(nullArgument); } // 〈MODIFICATION FOR THE INTERFACE〉 // PREVIOUS IMPLEMENTATION // responseProcess = virtualCard. runProcess (’’GetCardlnfo”, A414nullArgument); A415: // Note for the developer: The previous implementation remains valid A416: because the A417: // converter creates the relevant method to wrap this invocation. It is A418:worth noticing A419: // this manner of invoking the smart card process becomes depreciated A420:when using the A4 21: // interface implementation provided by the Converter. A422: // A423: // The rest of the implementation remains depreciated and doesn’t use A424: the method A425: // invocation on purpose. The target of this implementation is to A426:measure the A427: // correction to bring in the A428: implementation to loyalty.java file to move from one A429: A430: A431: A432: A433: A434 : A435: A436: // the stub implementation. 經濟部智慧財產局員工消費合作社印製 catch (ProfileException pe) { theTerminal. displayMessage (?fThe system has detected a problem·’’ + "\nError message: ff + pe·getMessage () + ’’\n \nPlease, contact your service provider·’’); } catch(RunProcessException rpe) { theTerminal. displayMessage (’’The runtime environment has detected a A437 :problem.’’ + A438 : f,\nError message: ’’ + rpe.getMessage () + A439: ”\n \nPlease, contact your service provider·1’); } A440: A4 4 i : A442: A4 4 3 : A4 44 : A4 4 5 : A44 6: A447 : A4 48 : A44 9: A4 50: A451: A452: lastTransactionAmount = ((Variable) findMember (,fLastTransactionAmount A453 serialNumber = ((Variable) findMember (’’CardSerialNumber", responseProcess)).tolnteger(); cardHolderlnfo = ((Variable) findMember(”CardHolderName”, responseProcess)).toStringO; 一 —一 —.----^--------^--------- (請先閱讀背面之注意事項再填寫本頁) cardHolderInfo.trim(); lastTransactionlnfo = ((Variable) findMember (’’LastTransactionlnfo", responseProcess)).toStringO; A454 : A455: A456: A457 : A458 : A4 59: lastTransactionDate = ((Variable) responseProcess)).toInteger(); findMember("LastTransactionDaten, responseProcess)).toInteger(); cardBalance = ((Variable) findMember (’’cardBalance", responseProcess)).t〇Integer(); 本紙張尺度適用中國國家標準(CNS)A4規格(210 χ 297公釐) 476909 A7 B7 五、發明說明(28 ) 經濟部智慧財產局員工消費合作社印製 A460 A461 A4 62 A463 A464 A4 65 A4 66 A467 A468 A469 + A470 A471 A472 A473 A4 7 4 A475 A4 7 6 A477 A478 A479 A480 A481 A482 A483 + A48 4 : A48 5 : A4 8 6 A487 A4 8 8 A4 8 9 A490 A491 A492 A493 A494 A495 A496 A4 97 A4 98 A499 A500 A501 A502 A503 A504 A505 A506 A507 A508 A509 A510 :A511 A512 A513 A514 A515 transactionType ((Variable) findMember (’’transactionType", responseProcess)>.tolnteger(); if(transactionType == 1) { theTerminal. displayMessage (,rWelcome to Solves E-commerce server.,f + 11 \n \nSmart card ID: 11 + serialNumber + ,f\nUsername: + cardHolderlnfo + ”\n \nThis is your account information·,·,’ + ,f\nLast award transaction: 11 + lastTransactionlnfo ’’\nDate: ,f + (byte) (lastTransactionDate) + f,-,f + (byte) (lastTransactionDate » 8) + ,f-M + (byte) (lastTransactionDate » 16) + f?\nAmount: ’’ + last Transact ionAmount + ir\n \nYour current balance is: ’’ + cardBalance + ” point (s) ’’); } else if(transactionType == 2) { theTerminal.displayMessage("Welcome to Solves E-commerce server ." + n\n \nSmart card ID: ’’ + serialNumber + ”\nUsername: ,f + cardHolderlnfo + "\n \nThis is your account information. . .f, + M\nLast redeem transaction: ,f + lastTransactionlnfo M\nDate: " + (byte) (lastTransactionDate) + + (byte) (lastTransactionDate >> 8) + + (byte) (lastTransactionDate » 16) + ,f \nAmount: ’’ + lastTransactionAmount + ,f\n\nYour current balance is: ’’ + cardBalance + ” point(s)”); } else { System, out .println (’’This is the card holder name: ’’ + cardHolderlnfo); theTerminal.displayMessage("Welcome to Solves E-commerce server." + "\n \nSmart card ID: ’’ + serialNumber + "\nUsername: M + cardHolderlnfo + "\n \nYour current balance is: n + cardBalance + M point(s)u); } * The method runs the redeem transaction public void runBonus() { System.out. printIn (nTerminalPinPad this is the key press: bonus”) // set the transaction date byte[] baDate = { (byte) (date . get(Calendar. YEAR) - 1900), • (byte) (date. get(Calendar.MONTH) + 1), (byte) date.get(Calendar.DAY一OF一MONTH) if(state AWARD_STATE) { 木紙張尺度適用中國國家標準(CNS)A4規格(210 χ 297公爱) 訂---- 476909 A7B7 五、發明說明( 29 A516 A517 A518 A519 A520 A521 A522 A523 A524 A525 A526 A527 A528 A529 A530 A531 A532 A533 A534 A535 A536 A537 A538 A539 A540 // start the transaction processing // 1 -update the amount to increase byte[] baAmount = new byte[3]; iAmount = Integer·parselnt(theTerminal.getMessage())/ baAmount[0] = Hex .integerToBytes(iAmount) [1]; baAmount[1] = Hex.integerToBytes(iAmount) [2]; baAmount[2] = Hex.integerToBytes(iAmount) [3]; //2- prepare the transaction Argument amount At t = new Argument (’· amount ”,baAmount); Argument dateAtt = new Argument ( "datef,, baDate); byte[] tid = new byte[16]; Argument terminalld = new Argument (’’transaction’、tid); Argument[] awardArguments = { amountAtt, dateAtt, terminalld }; //3- run the transaction try { responseProcess = virtualCard.runProcess(MTransactionAwardM, awardArguments); } catch(ProfileException pe) { theTerminal. displayMessage (rrThe system has detected a problem.,r ff\nError message: ’’ + pe.getMessage () + ?,\n \nPlease, contact your service povider.); } catch(RunProcessException rpe) { theTerminal. displayMessage (T,The runtime environment has detected a A541 :problem. ff A542: A543 A544 A545 Α54β A54 7 A548 A549 A550 A551 A552 A553 A554 A555 A556 A557 A558 A559 ^ A560 :A561 A562 A563 I A564 ..A565 :A566 'A567 A568 A569 A570 A571 A572 ?f\nError message: ’’ + rpe. getMessage () + ' ’’\n \nPlease, contact your service provider·"); int newBalance = ( (Variable) findMember (’’newBalance”, responseProcess)).toInteger(); System, out. print In (11 This is the new balance . . . : ’’ + newBalance) / theTerminal .displayMessage (’’PROCESSING AWARD TRANSACTION. . . n + n\n \nThe number of point(s) to award was: state = NONE STATE; } if(state theTerminal.getMessage() + "\n \nAward transaction successful·’’ + ,f\nThe new balance of the card is: ’’ 十 newBalance); // stop the state machine REDEEM STATE) { // start the transaction processing //1- update the amount to redeem byte[] baAmount = new byte[3]; iAmount = Integer.parselnt(theTerminal.getMessage()); baAmount [0] = Hex.integerToBytes(iAmount) [1]; baAmount[1] = Hex.integerToBytes(iAmount) [2]; baAmount[2] = Hex.integerToBytes(iAmount) [3]; System. out. printIn ( "this is the redeem bonus press M); // 2 - prepare the transaction Argument amountAtt = new Argument (ffamountr,, baAmount); Argument dateAtt = new Argument ( "date, baDate); byte[] tid = new byte[16]; 本紙張尺度適用中國國家標準(CNS)A4規格(21G X 297公爱)
^ J n ϋ 1 言 (請先閱讀背面之注意事項再填寫本頁) 裝 n n n 1 1 # -32- 476909 A7 B7 五、發明說明( 30
Argument terminalld = new Argument ("transacti〇n”, tid); Argument[] awardArguments = { amountAtt, dateAtt, terminalld }; try { response Process = virtualCard. runProcess (’’TransactionRedeem”, A578:awardArguments); } catch (ProfileException pe) { theTerminal. displayMessage (T?The system has detected a problem·” + ?T\nError message: ’’ + pe . getMessage () + ”\n \nPlease, contact your service provider·”); } catch(RunProcessException rpe) { theTerminal.displayMessage(nThe runtime environment has detected "\nError message: ff + rpe· getMessage () + f,\n \nPlease, contact your service provider.n); } int newBalance = ( (Variable) findMember (,rnewBalancerr, responseProcess〉).toInteger(〉; System.out .println (’’This is the new balance: ’’ + newBalance); theTerminal .displayMessage ("PROCESSING REDEEM TRANSACTION …,,+ 11 \n \nThe number of point (s) to redeem was: ’’ + theTerminal.getMessage() + "\n \nRedeem transaction successful·" + ,f\nThe new balance of the card is: ’▼ + newBalance); state = NONE_STATE; } // stop the state machine 經濟部智慧財產局員工消費合作社印製 A573 A574 A575 A576 Α5Ή A579 A580 A581 A582 A583 A584 a A585:problem.1 A58 6: A587 A588 A589 A590 A591 A592 A593 A594 A595 A596 A597 A599 A600 A601 A602 A603 A604 A605 A606 A607 A608 A609 A610 A611 pinpad A612: A613: A614 : + A615 A616 A617 A618 pinpad A619 A620 A621 A622 A623 A624 A625 pinpad A626: A627: .裝--------訂----
The method runs the redeem transaction public void runValidt) { if(state == AWARD_STATE) pinpad.readMessage(); // stop reading the message from theTerminal .displayMessage ("PROCESSING AWARD TRANSACTION...,, + ”\n \nThe transaction amount is: ’’ + theTerminal. getMessage () + " point (s) f, ”\n \nPlease press Bonus key to confirm or Cancel to abort.M); } if(state == REDEEM_STATE) pinpad·readMessage(); // stop reading the message from theTerminal .displayMessage ("PROCESSING REDEEM TRANSACTION. . .,f + f,\n \nThe transaction amount is: ’’ + theTerminal. getMessage () + n point (s) rT + ’’\n \nPlease press Bonus key to confirm or Cancel to abort·’’); if ((state & 0x04) == CHV一VERIFICATION) { pinpad.readMessage(); // stop reading the message from theTerminal.displayMessage(,,PASSW〇RD VERIFICATION· · . . ” + ”\n \nPassword entered by user :M + theTerminal.getMessage())/ 本紙張尺度適用中國國家標準(CNS)A4規格(210 χ 297公釐)
-n H 1 n I #. 476909 經濟部智慧財產局員工消費合作社印製 A7B7 五、發明說明( A628 A629 A630 A631 A632 A634 A635 A636 A637 A638 A639 A640 A641 A642 A643 A644 A645 A646 A647 A648 31 // real present the related password byte[] baValuex = new byte[8]; String pincodeLiteral = theTerminal.getMessage(); char[] messageReceived = pincodeLiteral.toCharArray()/ byte[] baMessageReceived = new byte[messageReceived.length]; for(int i = 0/ i < messageReceived.length; i++) from char to byte baMessageReceived[i] = (byte) messageReceived[i]/ for(int i = 0;: default value baValuex[i] < baValuex.length; i+十) =(byte) Oxff;
System.arraycopy(baMessageReceived, 0, password buffer baValuex, 0, messageReceived.length); byte[] baValue presentation A649 A650 Ά651 A652 A653 A654 { '1,, ,2,, Oxff }/ // conversion // set the // update the // feak *3’, 141, (byte) Oxff, (byte) Oxff, (byte) Oxff, (byte) new Argument (,fvaluen, baValue) ; // change baValue new Argument ("index", (byte) 1); // to use the
Argument value by baValuex here Argument index real A655:presentation A656: Argument[] chvArguments = { value, index }; A657 : try { response Process = virtualCard. runProcess (’’verify”, A658:chvArguments); } A659 ΑββΟ A661 A662 A663 A664 A665 catch (ProfileException pe) { theTerminal. displayMessage (’’The system has detected a problem.,f 4 M\nError message: ’’ + pe.getMessage () + ”\n \nPlease, contact your service, provider ·’’); } catch(RunProcessException rpe) { theTerminal.displayMessage("The runtime environment has detected a A666:problem." A667: A668 A669 A670 A671 A672 A673 A674 A675 A676 A677 A678 A67 9 A680 A681 A682 A683 A684 -· ^--------^----
n t ί I #· ,f\nError message: " + rpe. getMessage () + "\n \nPlease, contact your service provider.11) ; } state & OxFB; // reset the present password state state machine System, out. print In (r,this is the state machine in valid: "**★★★*★★*★★ Create the generic control listeners * II 女女★★★★★★女女女女女女 final ActionListener listener () { ActionListener theListener = new ActionListener() { .public void actionPerformed(ActionEvent _e) { PosButton button = (PosButton) 一e.getSource(); if(button.getText().equals("award”)) runAward(); if (button.getText() .equals ("valid,,))runValidO ; 本紙張尺度適用中國國家標準(CNS)A4規格(210 χ 297公t ) + state); 476909A7B7 經濟部智慧財產局員工消費合作社印製 五、發明說明( 32 if(button. getText () . equals ("display")) runDisplay() if(button . getText () . equals ("bonus M)) runBonus(); if(button . getText () . equals ("cancel")) runCancel(); if(button .getText() . equals (MredeemM)) runRedeem(); return theListener; A685 A686 A687 A687: ' if (button · getText () . equals ( "redeem,’)) runRedeem () ; } }; A688 A689 A690 A691 A692 A693 : * The method looks up in the response members and returns the related A694:member A695: 女 A696: * @param 一member A string that represents the member in the responses * Qreturn A member instance that represents the member found in the response list, 女 otherwise the method reutrns null private Member findMember(String —member, Object[] —responseProcess) A697 A698 A699 A700 A701 A702: A703: A704 : A705: A706: ΑΊ Q1 ·· A707: A708: A709: A710: A711: A712: A713: A714: } A715:} A716 : Kill: class A718 : A719: A720: A721: A722: A723: A724 : A725: A726: A7 27 : A728: A729: A7 30: A731: A7 32: .A733: A734 : A735: A736: A737 : A738:
Object[] localResponses = —responseProcess; Member foundMember = null; for(int i = 0; i < localResponses. length; i++) { ResponseApdu ra = (ResponseApdu) localResponses[i]; MemberHolder responseMembers = ra.getResponseMembers() Enumeration members = responseMembers.getMemberList(); while(members .hasMoreElements()) { Member member = (Member) members .nextElement(); if(member .getName() ·equals(一member)) foundMember = member; } } return foundMember;
NotSecuredPurse { public void NotSecuredPurse() { } private static NotSecuredPurse localPurse private int iBalance; private boolean zBalance = falser- public MemberHolder award(MemberHolder MemberHolder localMember = o; (請先閱讀背面之注意事項再填寫本頁) null ; o, int iAmount) {
Member newBalance = localMember. getMember ( nnewBalance,f) iBalance += _iAmount; byte[] baAmount = new byte[3]; baAmount[0] = Hex.integerToBytes(iBalance) [1]; baAmount[1] = Hex.integerToBytes(iBalance)[2]; baAmount[2] = Hex.integerToBytes(iBalance)[3]; ((Variable) newBalance).setValue(baAmount); return localMember; ·} public MemberHolder redeem(MemberHolder MemberHolder localMember = o; of int iAmount) 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -35- 476909 A7 B7 五、發明說明(33 ) A739: A7 40: Member newBalance = localMember . getMember (lfnewBalancef,); A741: iBalance 一= _iAmount; A742: byte[] baAmount = new byte[3]; A743: baAmount[0] = Hex .integerToBytes(iBalance) [1]; A7 44: baAmount[1] = Hex.integerToBytes(iBalance) [2]; A7 45: baAmount[2] = Hex.integerToBytes(iBalance) [3]; A746: ((Variable) newBalance).setValue(baAmount); pjAl: return localMember; } A748: A749: public void setBalance(MemberHolder int _iBalance) { A750: if (1zBalance) { A751: iBalance = 一iBalance; A752: 一 A753: MemberHolder localMemberHolder = _〇; A754 : — A7 55 : if (localMemberHolder·isInMemberList("newBalance”)) { A756: Member newBalance = localMemberHolder.getMember ('fnewBalancefl); A757: byte[] baAmount = new byte[3]; A758: baAmount[0] = Hex.integerToBytes(iBalance)[1]/ A759: baAmount[1] = Hex.integerToBytes(iBalance)[2]; A760 : baAmount[2] = Hex.integerToBytes(iBalance) [3]; A7 61 : ((Variable) newBalance).setValue(baAmount)/ } JK162: zBalance = true; } A763: } A7 63: A765: public int getBalance() { return iBalance; } A7 66 : A7 67 : public static NotSecuredPurse getlnstance() { A768: if (localPurse == null) A769: localPurse = new NotSecuredPurse(); A770: pj 11: return localPurse; A772: } A773:} (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -36- 476909 Α7 Β7 五、發明說明(34 ) 應用協定 (請先閱讀背面之注意事項再填寫本頁) 被列於底下的第B 1至B 8 0 3行中之一應用協定的 實例提供實施列於G e m p 1 u sTM G e m X p丨〇 r e 9 8TM聰敏卡上的應用 邏輯單元的邏輯之資料與規則。該字典可相容之該卡於第 B 6行中被指定。此實例字典包括四個詞:G e t C a r d I n f 〇, verify,TransactionAward,及 TransactionRedeem 的定義。 詞GetCardlnfo在第B 1 〇行被界定。在此應用邏輯單 元中之詞〇6^3以11^〇的兩個方法呼叫是在第八410及 A 4 1 3行。詞GetCardlnfo的定義於第B 1 1至B 2 9 3 行中被提供。第B 1 5行至B 5 7行列出用於實施詞 GetCardlnfo的資料。第B 5 9至B 2 9 3行列出用來在 GemplusTMGemXplore98T1S 敏卡上實施詞 GetCairdlnfo 的規則 〇 經濟部智慧財產局員工消費合作社印製 詞wnfy在第B 2 9 5行被界定。對應於的詞venfy的 定義於第Bl1至B293行中被提供。第B296行至 B 3 0 2行列出用於實施詞venfy的資料。第B 3 0 3至 B 3 2 6行列出用來在GemplusTMGemXplore98TM聰敏卡上實 施詞venfy的規則。在上述的應用邏輯單元實例中之該詞 verify的唯--個方法呼叫是在第A 6 5 7行。 詞TransacUonAward在第B 3 2 8行被界定。對應於白勺 詞TransactionAward的定義於第B 3 2 8至B 5 5 4行中辛皮 提供。第B 3 3 2行至B 3 7 7行列出用於實施詞 TransactionAward的資料。第B 3 7 9至B 5 5 4行列出用 來在G e m p 1 u sTM G e m X p 1 〇 r e 9 8τΜ聰敏卡上實施詞 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -37- 476909 A7 B7 五、發明說明(35 )
TransactionAward的規則。在上述的應用邏輯單元實例中之 該詞TransactionAward的唯一一個方法呼叫是在第A 5 3 3 行。 (請先閱讀背面之注意事項再填寫本頁) 詞TransactionRedeem在第B 5 5 5行被界定。對應於 的詞TransactionRedeem的定義於第B 5 5 5至B 7 8 5行 中被提供。第B 5 5 9行至B 5 9 5行列出用於實施詞 TransactionRedeem的資料。第B 5 9 7至B 8〇3行列出 用來在GemplusTMGemXplore98TIH®敏卡上實施詞 TransacUonRedeem 的規則。第 B 5 9 7 至 B 7 8 5 行列出 用來在GemplusTMGemXplore98Tni敏卡上實施詞 T r a n s a c t i ο n R e d e e m的規則。在上述的應用邏輯單元實例中 之該詞TransactionRedeem的唯--個方法呼叫是在第 A 5 7 6 行。 包含於該應用協定中之四個詞的定義中,用來實施該 詞的定義之資料與規則是特定於該聰敏裝置,在此實例中 爲〇6!!^11^^〇6 11^?1〇1:6 9 8^聰敏卡。用來實施與該應用邏輯 單元例子相關連的另一聰敏裝置之相同的四個詞: 經濟部智慧財產局員工消費合作社印製
GetCardInf〇,verify,TransactionAward,及 TransactionRedeem 的定義典型地將不同於以上述舉例子之定義。該定義將在 資料,規則或這兩者上有所不同。 -38- 本紙張尺度適用中國國家標準(CNS)A4規格(210 x 297公釐) 476909 A7B7 五、發明說明(36 ) B1:<?xml version = ”1.0” ?> B2:<!D〇CTYPE CardDocument SYSTEM ,,· · \(11ζ1\ο:〇ιη\(3θΐηρ1υ5\χιτι1\3(:ΙΟΕ · dtd”> B3: B4 : B5:<CardDocument> B6 : <Prof ile Type = ,fGemXplore98 ,? Version = f,0.1ff > B7: 〈Signature Type = ffCardM>0x80 0x69 OxAF 0x03 0x07 0x03 0x52 0x00 0x00 B8:OxOA OxOE 0x83 0x3E 0x9F 0xl6</Signature> B9: 〈Process Name = ’’GetCardInfo”> <Doc>The process represents the manner to retreive the card information</Doc> <Doc>The members returned are not listed</Doc> 〈Variable Name = "cardSerialNumberFile” Type = ’’byteArray” Default = n0x2F 0xE2"/> 〈Variable Name = f’RFU_l” Type = "byteArray” Default = ”0x00 0x00n/> _ 〈Variable Name = ’’memoryLeft’’ Type = ,fbyteArrayM Default = B10 Bll B12 B13 B14 B15 B16 B17 B18 B19 ,?0x00 B20:0x00"/> 〈Variable Name = nfileld’f Type = ”byteArray1’ Default = ,f0x00 0x00,r/> 〈Variable Name = nfileType’f Type = "byte” Default = n0x00f?/> 〈Variable Name = ’’fileFeaturesn Type = ,fbyteArray?, Default = ,f0x00 0x00 0x00 0x00 0x00M/> 〈Variable Name = "restOfResponseType = ’’byte” Default = M0x00,T/> 〈Variable Name = ’’index” Type = ”byte’f Default = ”0’’/> 〈Variable Name = ’’value” Type = ”byteArray” Length = ”8” B21 B22 B23 B24 B25 B26 B27 B28 B29 B3〇 Default B31:= n,T/> 〈Variable Name = noffset_l’’ Type = ”byten Default = ”0x00”/> 〈Variable Name = ’’offset—2” Type = ’’byte” Default = ,,0x00,,/> 〈Variable Name = "length” Type = ’’byte’’ Default = ,l0x08,,/> 〈Variable Name = nCardSerialNumber,f Type = ’’byteArray” Length ”8” Default =,"7> (請先閱讀背面之注意事項再填寫本頁) 裝--------訂— 經濟部智慧財產局員工消費合作社印製 B32 B33 B34 B35 B36 B37 B38 : 〈Variable Name = ’▼cardlnformationFile” Type = "byteArrayM Default B39:=,,0x2F 0x30"/> B40: 〈Variable Name = ’’LastTransactionlnfo” Type = "byteArray” Length B41 := M16n Default = ’",/> B4 2 : 〈Variable Name = " Last Trans act ionDate,f Type = "byteArray” Default B43:= ”0x00 〇x〇〇 0x00”/> B44: 〈Variable Name = nLastTransactionAmount’’ Type = "byteArray” B45: Default = ,r0x00 0x00 0x00ff/> B4 6 : 〈Variable Name = ntransactionTypeM Type = ’’byte” Default = B47 : f,0x00,f/> B48 : B4 9 : 〈Variable Name = ”cardBalanceFile” Type = ”byteArray” Default B50:"0x2F 0x31"/> 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -39- 476909 A7B7 五、發明說明(37 ) B51: 〈Variable Name "0x00 B52:0x00 0x00,f/> B53: 〈Variable Name ,f0x2F 0x32n/> 〈Variable Name "20” Default =,▼,,/> B54 B55 B56 B57 B58 B59 B60 B61 ?lcardBalanceM Type = nbyteArrayM Default ’’cardHolderFile” Type ’’CardHolderName’’ Type byteArray" Default byteArray" Length = <Apdu Id = ’’Select’’〉 <Command> 〈Header Class = "OxACT Ins = n0xA4" PI = ”0” P2 = Lc B62:= n2f, Le = ,f0x20M/> B63: <In>cardSerialNumberFile</In> B64: </Command> B65 : <Response Status = ,f Normal EndingM Notify = MDoNotNotif yM> Βββ : <〇ut>RFU—l</〇ut> B67: <〇ut>memoryLeft</〇ut> B68: <〇ut>fileld</〇ut> B69: <〇ut>fileType</〇ut> B70: <Out>fileFeatures</Out> B71: <Out>restOf Response</Outx/Response> B72 : 〈Response Status = ,,MemoryProblem,f><〇ut>?,lOn ErrorM</Out> B73:〈/Response〉 B74 : 〈Response Status = ?,OutOfRangeF,x〇ut> f,20nError,f </Out> B75:</Response> B7 6: 〈Response Status = ,fFileOrPatternNotFound?,x〇ut> ,f@OnErrorfl B77:</Out> </Response> B7 8 : 〈Response Status = nInc〇rrectLength”><〇ut> ff30nErrorr, </Out> B79:</Response> B8〇: 〈Response Status B81:</Response> B82: 〈Response Status = nIncorrectClassf,X〇ut> M50nError,f </〇ut> B83:</Response> nInc〇irrectPlP2”><〇ut> "40nErrorM </〇ut> (請先閱讀背面之注意事項再填寫本頁) B84 : B85: B86: B87: B88 : </Apdu> 經濟部智慧財產局員工消費合作社印製 <Apdu Id = ’’ReadBinary’’> <Command> 〈Header Class = f,0xA0M 工ns Le = ”length’’/> <In>”V〇id”</In> </Command> 〈Response Status = ’▼NormalEnding’’ Notify = ’’DoNotNotify’’〉 <Out>CardSerialNumber</Outx/Response> 〈Response Status = ,TMemoryProblem,,X〇ut>,Memory B95 : problem’’</Out> 〈/Response〉 B96: 〈Response Status B97:selectedM</Out> </Resp〇nse> B98: 〈Response Status = ”WrongTypeOfFilen><〇ut>”Wrong type of B99 : fileff</Out〉〈/Response〉 B100 : 〈Response Status = ,rWrongAccessConditionfTx〇ut>,fAccess B101:conditionM</Out> </Response> B102 : 〈Response Status = 11 Fi 1 eInvalidsted,f><〇ut> ,f lOnErrorf, </Out> B103:</Response> B104 : 〈Response Status = ”工ncorrectPlP2,f><〇ut> M20nError,f </〇ut> B105:</Response> B106 : 〈Response Status = αIncorrectClass 1130nError?l </〇ut> B107:</Response> B108: </Apdu> ffOxBOf, PI = '’offset—1” P2 B89:"offset_2 B90: ~ B91: B92: B93: B94 : MNoneFileSelected,f><〇ut>,fFile not 本紙張尺度適用中國國家標準(CNS)A4規格(210 x 297公釐) -40 - 476909 A7 B7 五、發明說明(38 ) B109: B110: <Apdu Id = "Select”〉 Bill: <Command> B112: 〈Header Class = ”0xA0” Ins = ff0xA4n PI = ”〇” P2 =,,0n Lc B113:= »2f, Le = ,τ0χ10π/> B114 <In> cardInformati〇nFile</In> B115 </Command〉 ;B116 〈Response Status = ,fNormalEndingf, Notify = "DoNotNotifyM> B117 <Out>RFQ_l</Out> B118 <Out>memoryLeft</Out> B119 <〇ut>fileld</〇ut> B120 <〇ut>fileType</〇ut> B121 <Out>fileFeatures</Out> ί B122 <Out>restOf Response</Outx/Response> ! B123 〈Response Status = ,,MemoryProblemMX〇ut>T,On Errorr,</Out> 丨 B124 </Response> B125 〈Response Status = r,0ut0fRange?f><0ut> n〇nErrorn </〇ut> j B126 </Response> ! B127 〈Response Status = nFileOrPatternNotFoundMx〇ut> I "@OnErrorM B128:</Out> </Response> ! B129: : 〈Response Status = ,TIncorrectLength"><〇ut> MOnErrorn 〈/Out> B130:〈/Response〉 B131 〈Response Status = nIncorrectPlP2,f><〇ut> ?,OnErrorT' </Out> B132 </Response> .B133 〈Response Status = nIncorrectClass"><〇ut> lfOnErrorf, </Out> i B133 </Response> \ B134 </Apdu> j B135 B136 <Apdu Id = nReadBinary’’> | B137 <Command> | B138 <Header Class = r,0xA0T, Ins = M0xB0M PI = ,f〇ffset_l?l P2 = S B139 "offset 一 2n Le = ,f50M/> j B140 一 〈InWoiWln〉 · i B141 </Command〉 ;B142 〈Response Status = MNormalEnding?, Notify = 'fDoNotNotify,f> I B143 <Out>LastTransactionDate</Out> ;B144 <Out>LastTransactionAmount</Out> ί B145 - <Out>transactionType</Out> :B146 <Out>LastTransactionInfo</Out> ;B147 </Response> B148 〈Response Status = "MemoryProbleir^’XOutV’On Error丨,〈/Out〉 ! B149 </Response> :B150 〈Response Status = nNoneFileSelectedTT><〇ut> "OnError1' (請先閱讀背面之注意事項再填寫本頁) •-裝 訂---- φ 經濟部智慧財產局員工消費合作社印製 </Out> B151:</Resp〇nse> B152 : 〈Response Status = ,TWrongTypeOf File,,X〇ut> ’’OnError” </Out> B153:</Response> B154 : 〈Response Status = ,fWrongAccessCondition" Notify = nPlugInM> B155 : <Out>npluginMessage?secretCode=01 fl</Out></Response> B156: <Response Status = MFileInvalidated,,><:〇ut> fOnError,f </〇ut> B157:</Response> B158: 〈Response Status = ”IncorrectPlP2n><〇ut〉丨’OnError" </Out> B159:</Response> B160: 〈Response Status = "IncorrectClassf’XOut〉"〇nError" </Out> B161:</Response> B162: </Apdu> B163: B164 : <Apdu Id = ’rReadBinary’’> t氏張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -41 - 476909 A7 B7 五、發明說明(39 3165: <Cominand> B166 : <Header Class B167:,roffset__2ff Le = ?f50,f/> B168: <In>’’V〇id’’</In> B169: </Command> B170: 〈Response Status = ,TNormalEnding,f Notify B171 : <Out>LastTransactionDate</Out> B172: <Out>LastTransactionAmount</Out> B173 : <Out>transactionType</Out> B174 : <〇ut>LastTransactionInf〇</Out> B175: </Response> B176 : 〈Response Status = ,,MemoryProblem,,X〇ut>,,On ErrorM</Out> B177:</Response> B178 : 〈Response Status = ,,NoneFileSelected,f><〇ut> nOnErrorT, </〇ut> B179:</Response> B18〇: 〈Response Status = frWrongTypeOfFileM><〇ut> "OnError” </Out> B181:〈/Response〉
,f0xA0,r 工ns =,,0xB0" PI ^offset 1M P2 "DoNotNotif y,r> B182 B183 B184 〈Response Status = ,,WrongAccessCondition,f><0ut>,l0nErrorH</0utx/Resp〇nse> 〈Response Status = ”FileInvaliciated’’><〇ut> "OnError” </Out> B185:</Response> B186 B187 B188 B189 B190 B191 B192 B193 B194 Lc B195: B196 〈Response Status </Response> 〈Response Status </Response> </Apdu> T, Incorrect PI P2,fX〇ut> MOnErrorn </Out> nInc〇rrectClassn><〇ut> MOnError,f </〇ut> 經濟部智慧財產局員工消費合作社印製 <Apdu Id = ’’Select’’〉 <Command> 〈Header Class = ,f0xA0?, Ins ’,2f,Le = ”〇xl0,7> <In>cardBalanceFile</In> </Command〉 〈Response Status = "NormalEnding' <〇ut>RFU_l</〇ut> <Out>memoryLeft</Out> <〇ut>fileld</〇ut> <〇ut>fileType</〇ut> <Out>fileFeatures</Out> <Out>restOfResponse</Outx/Response> 〈Response Status = ?,MemoryProblemMx〇ut>fr〇n Error,f</0ut> </Response> 〈Response Status = ”OutOfRange”><Out> "OnError” </〇ut> </Response> <Response Status = ,fFileOrPatternNotFoundf,x〇ut> ”@〇nError” B210:</Out> </Response> B211: 〈Response Status = "IncorrectLength丨f><〇ut> ’’OnError’, </〇ut> B212:〈/Response〉 B213: 〈Response Status = nIncorrectPlP2”><〇ut〉,f〇nError” </〇ut> B214:</Response> B215: . 〈Response Status = ”工ncorrectClass丨丨’OnError丨1 </〇ut> B216:</Response> »〇xA4,t PI =,,〇” P2 ,,〇,, B197 B198 B199 B200 B201 B202 B203 B204 B205 B206 B207 B208 B209 B217: B218 : B219: B220: B221: </Apdu> <Apdu Id = ’’ReadBinary’’> <Command> 〈Header Class = ?T0xA0T?工ns B222: "offset 2,, Le =,’3,,/> 本紙張尺度適用中國國家標準(CNS)A4規格(210 x 297公釐)
Notify = "DoNotNotifyn> ,,0xB0,,PI = ’’offset—1” P2 -----------^--------^---------^___w (請先閱讀背面之注意事項再填寫本頁) -42- 476909 經濟部智慧財產局員工消費合作社印製 A7 B7 五、發明說明(4Q ) B223 B224 B225 Β22β Β227 Β228 Β229 <In>"V〇id’’</In> </Command〉 〈Response Status = nNormalEndingM Notify <Out>cardBalance </Out></Response〉 〈Response Status = HMemoryProblem,f><〇ut>,fOn ErrorM</Out> 〈/Response〉 〈Response Status </〇ut> B230:</Response> B231: 〈Response Status </〇ut> B232:</Response> B233: 〈Response Status = ,?WrongAccessConditionM Notify = ,fPlugIn,,> B234 : <〇ut>”pluginMessage?secretC〇de=01”</Out></Response〉 B235 : 〈Response Status = nFileInvalidated”><〇ut> 'OnErrorn </〇ut> B236:</Response> ,?NoneFileSelected,r><〇ut> MOnErrorM ffWrongTypeOfFile,f><〇ut> ,TOnError,f B237 B238 B239 B240 B241 B242 B243 B244 B245 Lc B246: B247 </Response> 〈Response Status </Response> </Apdu> 〈Response Status ”Inc〇rrectPlP2n><〇ut> ,fOnErrorM </Out> nIncorrectClassTf><〇ut> ,?0nError,? </0ut> <Apdu Id = "Selectrf> <C〇mmand> 〈Header Class ,2,T Le = f,0xl0M/> <In>cardH〇lderFile</In> B248 : </Command〉 B24 9 : 〈Response Status = ,fNormalEnding?, Notify B250: <Out>RFU_l</Out> B251: <Out>memoryLeft</Out> B252: <Out>fileld</0ut> B253: <Out>fileType</Out> B254: <Out>fileFeatures</Out> B255 : <Out>restOfResponse</Out></Response> B256 : 〈Response Status = nMemoryProblemn><C)ut>nOn Error丨’</Out> B257:</Response> B258: 〈Response Status = nOutOfRangen><Out> "OnError”〈/Out〉 B259:</Response> B260 : 〈Response Status = MFileOrPatternNotFoundf,x〇ut> ?T0OnError" B261: </Out> </Response> B262 : 〈Response Status = "Incorrectliength^xOut〉 f,OnErrorn </Out> B263:</Response>
r0xA0M Ins = ,r0xA4,r PI ,0” P2 r〇' B264 B265 B266 B267 B268 B269 B270 B271 B272 B273 B274 B275 B27 6 B277 B278 B279 〈Response Status 〈/Response〉 〈Response Status 〈/Response〉 </Apdu> nIncorrectPlP2,f><〇ut> MOnError,f </Out> "IncorrectClass,fX〇ut> f,OnErrorFf </Out> <Apdu Id = "ReadBinary’’> <Conunand> 〈Header Class = "0xA0n Ins = n0xB0n PI = "offset—1" p2 = ▼▼offset 一 21, Le = "20n/> — <In>,fV〇id,,</In> </Command〉 <Response Status = MNormalEnciing,, Notify = "DoNotNotify,f> <Out>CardHolderName</Outx/Response> 〈Response Status = "MemoryProblem’XOut’On Error"</〇ut> </Response> 本紙張尺度適用中國國家標準(CNS)A4規格(210 x 297公爱) ,f DoNotNotif yn> ,fDoNotNotif yfl>
(請先閱讀背面之注意事項再填寫本頁) 訂----- #· -43- 476909 A7 ___Β7___五、發明說明(41 ) Β280 : <Response Status = ,fNoneFileSelectedn><〇ut> nOnError,r </Out> B281:</Response> B282 : <Response Status = ,fWrongTypeOfFileM><〇ut> ,fOnErrorM </〇ut> B283:</Response> B284: <Response Status = MWrongAccessConditi〇nM Notify = MPlugInM> B285 : <Out>,fpluginMessage?seeretCode=01'f</Out></Response> B28 6 : 〈Response Status = nFileInvalidated"><〇ut> "OnError11 </〇ut> B287:</Response> B288 : 〈Response Status = nIncoi:2:ectPlP2”><〇ut> MOnError,f </〇ut> B289: <c/Response〉 B290 : 〈Response Status = "IncorrectClass”><〇ut> ??OnError,T </〇ut> B291:〈/Response〉 B292: </Apdu> B293: </Process> B294 : B295:〈Process Name = ’’verify’’〉 B296: 〈Variable Name = ’’index” Type = ’’byte” Default = ’’〇”/> B297 : 〈Variable Name = ’’value” Type = ’’byteArray’’ Length = ”8” Default B298 :=,fn/> B299 B300 B301 <Apdu Id = ’’VerifyCHVT’> <Command> 〈Header Class = ’’OxAO” Ins ,,0x20,,PI = M0x00rf P2 ------------裝----(請先閱讀背面之注意事項再填寫本頁) 經 濟 部 智 慧 財 產 局 員 工 消 費 合 作 社 印 製 indexM B3〇2:Lc = T,0x08M/> B303: <In>value</In> B304: </Command> B305 : 〈Response Status = "NormalEndingf丨 Notify =丨1DoNotNotify”〉 B306 : <〇ut>’’V〇id"</〇ut></Response〉 B3〇7 : 〈Response Status = ,,MemoryProblem,,X〇ut>f,On Error,f</Out> B308:</Response> B309: 〈Response Status = ffNoneFileSelected,f><〇ut> ,fOnError,T </〇ut> B310:</Response> B311: 〈Response Status = f,OutOfRangeM><0ut> ,fOnError,f </Out> B312:</Response> B313 : 〈Response Status = nWrongTypeOf FileT?X〇ut> T?OnError?T </Out> B314:</Response> B315 : 〈Response Status = MWrongAccessConditionMx〇ut> "OnError B316:</Out> </Response〉 B317: 〈Response Status = nCHVBl〇cked”><〇ut> "OnErrorM </Out> B318:</Response> B319 : 〈Response Status = ”工ncorrectLengthn><〇ut> ,TOnErrorM </Out> B320:</Response> B321: 〈Response Status = nIncorrectPlP2n><〇ut> "OnErrorf, </〇ut> B322:〈/Response〉 B323: 〈Response Status = ’’OnError” </Out> B324:〈/Response〉 B325: </Apdu> B326: </Process> B327: B328 : 〈Process Name = ffTransactionAwardf,> B329: <Doc>The process represents the ward transaction</Doc> B330 : <Doc>The members returned are not listed</Doc> B.331: B332: 〈Variable Name = ncardBalanceFile” Type = f,byteArray,T Default = B333: n〇x2F 0x31,,/> B334 : 〈Variable Name = ”RFU lf, Type = MbyteArrayM Default = ”0x00B335:〇x〇〇,,/> " 訂—i 籲· 本紙張尺度適用中國國家標準(CNS)A4規格(210 x 297公爱) -44- 476909
"memoryLeft” Type = ”byteArray” Default = nfileldn Type = ,TbyteArray?, Default = ”0x00 ”fileType” Type = ’’byte” Default = n0x00,r/> ’’fileFeatures” Type = ’’byteArray” Default = ”byte,,Default = B336: 〈Variable Name "0x00 B337:0x00fr/> B338: 〈Variable Name B339:0x00,f/> B340: 〈Variable Name B341: 〈Variable Name B342: ,T0x00 0x00 0x00 0x00 0x00,r/> B343: 〈Variable Name = ”rest〇fResp〇nse” Type B344 : ,,0x00,,/> B345: B346: 〈Variable Name = ’’offset」’’ Type = ’’byte” Default = ,?0x00,r/> B34 7: 〈Variable Name = ”offset__2” Type = "byte" Default = n0x00’’/> B348: 〈Variable Name = "cardBalance” Type = f,byteArrayM Default = B349:n0x00 0x00 0x00n/> B350: 〈Variable Name = ”newBalance” Type = MbyteArray" Default = ,f0x00 B360:0x00 0x00f,/> B361: B362: 〈Variable Name = "cardlnformationFile’1 Type = ’’byteArray” Default B363:= ,f0x2F 0x30,r/> B364: B365: 〈Variable Name = "date” Type = "byteArray” Default = ”0x00 0x00 B366:0x00n/> B367: 〈Variable Name B368:0x00V> B369: 〈Variable Name B370: ,f0x01"/> B371: 〈Variable Name ”16,f B372:Default = ''、'/> B373: B374: 〈Variable Name B375:f,0x2F 0x31”/> B376: 〈Variable Name B377:,,〇x00 0x00 0x00,,/> B378: B379: <Apdu Id = "Select,,〉 B380: <Conunand> B381: 〈Header Class Lc B382:= 1f2n Le B383
MamountM Type = ’’byteArray” Default = ’’0x00 0x00 ="transactionType” Type = ’’byte” Default = =’’transaction” Type = ”byteArray” Length = ="cardBalanceFile11 Type = nbyteArray" Default == ’’cardBalance” Type = T,byteArrayn Default = ,f0xA4,r PI = ,r〇,r P2 ,,〇,, 經濟部智慧財產局員工消費合作社印製 ’’OxAO” Ins =,,〇xl0n/> <In>cardBalanceFile</In> B384: </Command> B385: 〈Response Status = ’TNormalEndingM Notify = ”DoNotNotify’’> B386: <Out>RFU_l</Out> B387: <Out>memoryLeft</Out> B388: <〇ut>fileld</〇ut> B389: <〇ut>fileType</〇ut> B390: <Out>fileFeatures</Out> B391: <Out>restOf Response</Outx/Response> ' B392 : <Response Status = ffMemoryProblem,fX〇ut>,fOn Errorf,</Out> B393:</Response> B394 : 〈Response Status = MOutOfRangeM><Out> ,fOnError,f </Out> B395:</Response> B396 : 〈Response Status = ?rFileOrPatternNotFound,f><〇ut> ;,f@OnError,τ B397 : </Out> </Response> B398 : 〈Response Status = ”工ncorrectLengthn><〇ut> f,OnErrorff :</〇ut> B3.99: </Response〉 B400: 〈Response Status = ,fIncorrectPlP2”><〇ut> "OnError” </〇ut> B401:〈/Response〉 木紙張尺度適用中國國家標準(CNS)A4規格⑽x 297公爱)
^--------- ------ <請先閱讀背面之注意事項再填寫本頁) Φ 476909 A7 B7 五、發明說明(43) 〈Response Status B402 B403 B404 B405 B406 B407 B408 B409 B410 B411 B412 B413 B414 B415 B416 π工ncorrectClass"XOut〉 n〇nError,τ </Out> </Response> </Apdu> <Apdu Id = ,,ReadBinary,,> <Command> <Header Class = ’’OxAO’’ Ins "offset 一 2,’ Le = ”3,’/> 〈InWoicTc/In〉 </Command〉 〈Response Status = "NormalEnding” Notify = nDoNotNotify,f> <Out>cardBalance</Outx/Response> 〈Response Status = ,fMemoryProblemfT><〇ut>MOn Error,T</Out> </Response> 〈Response Status = r,NoneFileSelectedf,X〇ut> n0nError,f </Out> B417:</Response> B418 : 〈Response Status = MWrongTypeOfFiler,X〇ut> MOnError,f </〇ut> B419:</Response> B420: 〈Response Status = B4 21 ·· "WrongAccessCondition”><〇ut>’’OnError”</〇ut></Response〉 B422 : 〈Response Status = "Filelnvalidated^XOut〉 ,?OnErrorTT </〇ut> B423:</Response> f,0xB0,r Pi = ’’offset—1” P2 B424 B425 B426 B427 B428 B429 B430 B431 B432 〈Response Status </Response> <Response Status </Response> </Apdu> ,TIncorrectPlP2,fX〇ut> ?TOnError'T </〇ut> nIncorrectClassTTX〇ut> ^OnError1' </〇ut> <Apdu Id = "Callback”〉 <Comraand> <Header Class = ”0x00” Ins
,,0x00” PI ,f0x00f? P2
請 先 閱 讀 背 面 之 注 意 事項▲ 再·% T;裝 頁 I I I 訂 B434 B435 B436 B437 B438 B439 B440 B441 B442 B443:Lc B444
,f〇x〇〇,T PI = Tl0x00fl P2 = M0x00M 經 濟 部 智 慧 財 產 局 員 工 消 費 合 作 社 印 製 B445 B446 B44 7 B448 B449 B450 B451 B452 Lc B453: B454 B455 B456 B457 B458 B459 ,f0x00n B432: Lc = ,r0x00Tf Le = n0x00?r/> <In>”awardBalance?balance=cardBalance’’</Iri> </Command〉 〈Response Status = "NormalEnding1' Notify = HDoNotNotify,f> <Out>newBalance</Outx/Response> </Apdu> <Apdu Id = "Callback”〉 <Command> 〈Header Class = n0x〇0’’ 工ns ”0x0〇M Le = n0x0〇”/> <In>f’crypt〇?award=DESf,</In> </Command〉 、 <Response Status = ,?NormalEnding,r Notify DoNotNotif y,,><0ut>,rVoidn</0utx/Response> </Apdu> <Apdu Id = ’’Select’’> <Command> 〈Header Class = "0xA〇,,工ns = ff0xA4,f PI = ”0” P2 = ”0" ?T2M Le = f,0xl0,,/> <In>cai:dInf〇rinati〇nF1ile</In> </Command〉 〈Response Status = "MormalEnding” Notify = ’’DoNotNotify’’> <Out>RFU_l</Out> <Out>memoryLeft</Out> <〇ut>fileld</〇ut> 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公爱) 476909 五、發明說明(44 B460 B461 B462 B463 B464 B465 B466 B467 </Response> </Response> A7 B7 <〇ut>fileType</〇ut> <Out>fileFeatures</Out> <Out>restOf Response</Outx/Response> 〈Response Status = "MemoryProblem丨,><〇ut>nOn Errorn</〇ut> 〈Response Status 〈Response Status : n@〇nError丨f B468:</〇ut>〈/Response〉 B469: 〈Response Status </〇ut> B470:〈/Response〉 B471 B472 B473 B474 B475 B476 B477 B478 B479 B480 B481 B482 B483 B484 B485 B486 B487 B488 B489 B4 90 : 〈Response Status </Out> B491:</Response> B492 : 〈Response Status </Out> B4 93:</Response> B494: 〈Response Status B495:</Out> </Response> B496: 〈Response Status </Out> B4 97:</Response> …一 〈Response Status </Response> 〈Response Status </Response> </Apdu> </Response> 〈Response Status </Response> </Apdu> 〈Response Status ,FOutOfRange,r><Out> "ΟπΕγγογ^ </Out> r, FileOr Pa tternNot Found T'X〇ut> ,f IncorrectLength?,><〇ut> ,?OnError,f ”Inc〇rrectPlP2,,><〇ut> ,fOnError,f </〇ut> nInc〇rrectClass,,><〇ut> fOnError!, </〇ut> <Apdu Id = ”UpdateBinary’’> <Command> 〈Header Class = f,0xA0,r Ins = n〇xD6” Pi = ’’offset一 1Π P2 = "offset—2,, Lc = ,,0xl7n/> <In>date</In> <In>am〇unt</In> <In>transactionType</In> <In>transaction</In> 〈/Command〉 〈Response Status =,,NormalEnding” Notify = ”DoNotMotify’’> <〇ut>,fVoidn</〇ut></Response〉 〈Response Status = !fMemoryProblemM><〇ut>,,On Error,f</Out> 〔/Response〉 B498 B499 B500 B501 B502 B503 B504 B505 B506 Lc B507: B508 B509 B510 B511 B512 B513 B514 B515 B516 T,NoneFileSelectedff><〇ut> ^OnError'1 ,,WrongTypeOfFile,,X〇ut> ,fOnError,f MWrongAccessConditionif><0ut> ,fOnErrorlf fTFileInvalidatedff><〇ut> MOnErrorri nIncorrectPlP2n><〇ut> ,TOnError,f </Out> ,,工ncorrectClass”〉<〇ut> ,fOnErrorf, </〇ut> <Apdu Id = "Select,r> <Command> 〈Header Class = ”0xA0’’ Ins IT2” Le = r,0xl0M/> <In>cardBalanceFile</In> </Command〉 〈Response Status = ’’NormalEnding” Notify <〇ut>RFU—l</〇ut> <Out>memoryLeft</Out> <〇ut>fileld</〇ut> <〇ut>fileType</〇ut> <〇ut>fileFeatures</〇ut> <Out>restOf Response</Outx/Response> 0xA4,f PI = ,f〇,T P2 l紙張尺度適&中國國家標準(CNS)A4規格(21G x 297公餐) "〇n ’’DoNot Notify’’〉
(請先閱讀背面之注意事項再填寫本頁) 裳--------訂-----
n n n I ·! 47- 476909 A7 B7 五、發明說明(45 B517 : 〈Response Status = ,,MemoryProblem,f><〇u^>r,〇n Error ,f</Out> B518:</Response> B519 : 〈Response Status = "OutOfRangenx〇ut> n〇nError11 </Out> B520:</Response> B521: 〈Response Status = MFileOrPatternNotFoundMX〇ut> "@〇nErr〇r" B522:</Out> </Response> B523 : 〈Response Status = ” "OnErrorM </0ut> B524:</Response> B525 B526 B527 B528 B529 B530 B531 B532 B533 B534 B535 B536 B537 B538 B539 B540 B541 〈Response Status </Response> 〈Response Status </Resp〇nse> </Apdu> ,rIncorrectPlP2n><〇ut> Μ0ηΕΓΓ〇ΓΜ </0ut> ,fIncorrectClass,fX〇ut> ,r0nError,f </0ut> <Apdu Id = ’’UpdateBinary’’> <Command> 〈Header Class = f,0xA0,f 工ns ”offset_2n Lc = T’3,’/> <In>newBalance</In> </Command〉 〈Response Status = "NormalEnding'1 Notify = ”D〇NotM〇tify”> <〇ut>nVoid”</〇ut></Response〉 〈Response Status = ?fMemoryProblem,f><〇ut>,rOn Errorr?</Out> </Response> 〈Response Status = MNoneFileSelected,f><〇ut> HOnErrorn </0ut> B542:</Response> . B543: 〈Response Status = "WrongTypeOfFilen><〇ut> ff0nErrorff </0ut> B544:</Response> B545: 〈Response Status = ,fWrongAccessCondition,T><Out> ,f0nErrorff B546:</0ut> </Resp〇nse> B547 : 〈Response Status = ,rFileInvalidatedM><〇ut> ,f0nErrorff </0ut> B548:</Response> ,f0xD6f, PI = ,,offset_ln P2 經濟部智慧財產局員工消費合作社印製 B549 B550 B551 ! B552 B553 B554 B555 B556 B557 B558 B559 B560 B561 B562 B563
Incorrect PI P2frx〇ut> fOnErrorff </0ut> ,,工ncoi::rectClass”><〇ut> '^nError11 </0ut> 〈Response Status </Response> 〈Response Status </Response> </Apdu> </Process> 〈Process Name = ,rTransactionRedeem,,> <Doc>The process represents the redeem transaction </Doc> <Doc>The members returned are not listed</Doc> 〈Variable Name = ’’cardBalanceFile” Type = ’’byteArray" Default ,f0x2F 0x31M/> 〈Variable Name = MRFU_lf, Type = r,byteArray,T Default = M0x00 〇x00rT/> — 〈Variable Name = ’’memoryLeft’’ Type = ’’byteArray” Default = M0x00 B564 :0x00f,/> B565 B566 B567 ^ B568 B569 B570 B571 B572 B573 B574 〈Variable Name = ’’fileld” Type = ”byteArray” Default = ”0x00 0x00"/> 〈Variable Name = ’’fileType” Type = ”byten Default = ,T0x00n/> 〈Variable Name =,’fileFeatures" Type = "byteArray” Default = ,T0x00 0x00 0x00 0x00 0x00,r/> 〈Variable Name = ,frestOfResponseM Type = Mbyte,f Default = ”〇x00V> 〈Variable Name 〈Variable Name
Tfoffset__l” Type ’’offset_2’’ Type nbyteff Default "byte11 Default n0x00,f/> M0x00,r/>
本紙張尺度適用中國國家標準(CNS)A4規格(210 x 297公釐) 476909 A7 B7 五、發明說明(46 ) ’cardBalance” Type ’newBalance” Type = B575: 〈Variable Name B576:f,0x00 0x00 0x00,T/> B577: 〈Variable Name n0x00 B578:0x00 0x00T,/> B579: B58〇: 〈Variable Name = ncardInf〇rmationFilen Type Default B581:= ,f0x2F 0x30,f/> B582: B583: 〈Variable Name = ’’date” Type = nbyteArray,f Default 〇x〇〇 B584 : 0x00f,/>
’’byteArray’’ Default byteArray” Default : MbyteArrayM fr0x00 amount" Type = "byteArray” Default = TT0x00 0x00 =r,transactionType" Type = "byte” Default = =”transaction’1 Type = ’’byteArray’’ Length = B585: 〈Variable Name = B586:0x00M/> B587: 〈Variable Name B588 : n0x02,,/> B589: 〈Variable Name ,τ1βτ? B590 : Default = I > B591 〈Variable Name ,f0x2F 0x31fT/> 〈Variable Name = ’’cardBalance” Type = ,fbyteArrayM Default ”0x00 0x00 0x00ff/> B592 B593 B594 B595 B596 B597 B598 B599: Lc B600:: B601: ’’cardBalanceFile” Type = ’’byteArray” Default <Apdu Id = "Select,f> . <Command> <Header Class = n0xA0,f Ins = if0xA4,T PI = P2 T,2Tr Le = f,0xl0'7> <In>cardBalanceFile</In> B602: </Command> B603: 〈Response Status = ’’NormalEnding” Notify B604 : <Out>RFU_1</Out> B605: <Out>memoryLeft</Out> B606: <〇ut>fileld</〇ut> B607: <〇ut>fileType</〇ut> B608: <Out>fileFeatures</Out> I ; B609 : <Out>restOfResponse</Outx/Response> B610: 〈Response Status = ,tMemoryProblem,fX0ut>,,0n Errorn</Out> B611:</Response> B612: 〈Response Status =,,〇ut〇fRange”><〇ut> ,rOnError,T </〇ut> B613:</Response> I ΐ B614 : 〈Response Status = ,rFileOrPatternNotFound*'><Out> i M@OnError,τ B615 : </Out> </Response> I B616: 〈Response Status ="工ncorrectLengthHXOut〉 ,TOnError,f </〇ut> B617:</Response> ,〇, B618 B619 B620 B621 B622 B623 B624 B625 B626 B627 B628 B629 B630 B631 〈Response Status =,,工nc〇rrectPlP2”〉<〇ut> nOnErrorM </〇ut> </Response> 〈Response Status = MIncorrectClassnX〇ut> ,fOnErrorn </〇ut> </Response> </Apdu> <Apdu Id = ”ReadBinary’’> <Command> 〈Header Class = ”〇xA〇” Ins "offset—2n Le = n3,f/> — <In>,TVoidlf</In> - </Command〉 〈Response Status = ”NormalEnding <〇ut>cardBalance</〇ut></Response〉
Notify 本紙張尺度適用中國國家標準(CNS)A4規格(21Q x 297公爱) TTDoNotNotify,f> fT0xB0,f PI = ,f〇ffset__l,r P2 fDoNotNotif y,f>
(請先閱讀背面之注意事項再填寫本頁) 裝
> I I I -49- 476909 五、發明說明(47 ,tMemoryProblem,,X〇ut>,,On Errorn</Out> ,,NoneFileSelectedM><〇ut> nOnErrorl? B632: 〈Response Status B633:</Response> B634: 〈Response Status </〇ut> B635:</Response> B636 : 〈Response Status = MWrongTypeOf Filef,X〇ut> ,f〇nError,r </〇ut> B637:</Response> B638: 〈Response Status = B639 : ”Wr〇ngAccessCondition”><〇ut>”〇nError f,</Out></Response〉 B640: 〈Response Status = ,,FileInvalidated,,X〇^t> f,OnError,f </〇ut> B641:</Response> 〈Response Status 〈/Response〉 〈Response Status </Response> </Apdu> "IncorrectPlPZHXOut〉 "OnError,f </Out> "IncorrectClassn><〇ut> "OnError" </Out> B642 B643 B644 B645 B646 B647 B648 : <Apdu Id = ’’Callback’’〉 B64 9: <Command> B650 <Header Class = "0x00,f Ins = ”〇x00” Pi = ?'〇x〇〇fI P2 = ”0x00” B651: Lc =,,0x0CT Le = ,f0x00f7> CEnV’redeemBalanceTbalancescardBalance’k/In〉 </Command〉 <Response Status = lfNormalEndingff Notify = nDoNotNotify,f> <Out>newBalance </Out></Response〉 </Apdu> B652 B653 B654 B655 B656 B657 B658 B659 B660 B661:Lc B662; B663 B664 B665 Ββββ B667 ΒββΒ B669 B670 <Apdu Id = "Callback”〉 <Command> 〈Header Class = ”0x00” Ins ,T0x00f, Le = n0x00n/> <In>’’crypto?award=DES”</In> </Command〉 〈Response Status = ”NomalEnciing” Notify DoNotNotif y"><Out>f,VoidIT</Outx/Response> </Apdu> rf0x00?, PI = ,f〇x〇〇,f P2 = ?T0x00rr
Lc B671: =,’2n Le B672 B673 B674 B675 B676 B677 B678 B679 B680 B691 :B692 :B693 丨 B694 :B695 <Apdu Id = ”Selectn> <Command> 〈Header Class = ,T0xA0n 工ns 〈/Response〉 </Response> .---^-------AWI ^--------^---------(請先閱讀背面之注意事項再填寫本頁) ,l0xl0M/>
n0xA4" PI ,〇” p2 Π〇Μ <ln>caz:dlnf 〇i:niati〇nFile</In> </Command〉 〈Response Status = ??NormalEndingM Notify <Out>RFU__l</Out> <Out>memoryLeft</Out> <〇ut>fileld</〇ut> <Out>fileType</Out> <Out>fileFeatures</Out> <Out>restOfResponse</Outx/Response> 〈Response Status = ,,MemoryProblem,f><0ut>,,0n Error"</Out> 〈Response Status ’ DoN〇tNotify’*> ,,0ut0fRange,f><0ut> MOnError11 </〇ut> 11 Fi leOr Pat ternNot Found ,Tx〇ut> 〈Response Status ,,0OnError,f B696:</Out> </Response> B697 : 〈Response Status = ’’IncorrectLength”><Out> ,fOnError,f </〇ut> B698:</Response> 本紙張尺度適用中國國家標準(CNS)A4規格(210 x 297公爱) -50- 476909 經濟部智慧財產局員工消費合作社印製 A7 B7 五、發明說明( B699 B7〇〇 B701 B702 B7〇3 B704 B705 B706 B707 B708 B709 B710 B711 B712 B713 B714 B715 B716 B717 B718 48 〈Response Status </Resp〇nse> 〈Response Status </Response> </Apdu> n Incorrect PI P2”><〇ut> MOnError,f </Out> ”Inc〇rrectClassn><〇ut> M0nErrorM </Out> <Apdu Id = nUpdateBinary’’> <Command> <Header Class = i?0xA0rT Ins = ,T0xD6,f PI = ”〇ffset_2n Lc = ,,0xl7,,/> <In>date</In> <In>am〇unt</In> <In>transactionType</In> <In>transaction</In> </Command> 〈Response Status = nNormalEndingu Notify <〇ut> n Void’*</Out ></Response〉 〈Response Status = ??MemoryProblem,f><〇ut>MOn Errorff</Out> </Response> 〈Response Status = ,,NoneFileSelectedM><〇ut> ffOnError,f c/Out> 3719:</Response> 37 20: 〈Response Status = ,fWrongTypeOfFile,?><〇ut> ”OnError” </0ut> B721:〈/Response〉 B722: 〈Response Status = ,,WrongAccessCondition?,x〇ut> T,OnErrorIT 3723:</Out> </Response> B724: 〈Response Status = "Filelnvalidated”><〇ut> "OnError” </Out> B725:</Resp〇nse> B726: 〈Response Status = ”工nc〇i:2:ectPlP2n><〇ut> "OnError11 </〇ut> B7 27 ··〈/Response> B728: 〈Response Status = "IncorrectClass,T><〇ut> ,fOnError11 </Out> B729:</Response> "offset Γ P2 TTDoNotNotif yn> B730: B731: B732: B733: B734 : Lc 5735: B736 </Apdu> 裝--------訂---- <Apdu Id = "SelectM> <Command> 〈Header Class = TT0xA0l?工ns 2n Le = ?,0xl0,?/> <In>cardBalanceFile</In> B737: </Command> B7 39: 〈Response Status = "NormalEnding” Notify B740: <Out>RFU_l</Out> B741: <Out>memoryLeft</Out> B742: <〇ut>fileld</〇ut> B743: <〇ut>fileType</〇ut> B744: <Out>fileFeatures</Out> B7 4 5 : <Out>restOf Response</Outx/Response> B74 6: 〈Response Status = ,,MemoryProblemf,X〇ut>,,On Errorff</Out> B747:</Response> B748 : 〈Response Status = nOutOfRange"><Out> ffOnErrorM </〇ut> B7 4 9:</Response> B750 : 〈Response Status = MFileOrPatternNotFoundTfx〇ut> ,T0OnError,f B7 51: </Out> 〈/Response〉 B752 : 〈Response Status = ”Inc〇rrectLengthn><〇ut〉 'OnError11 </Out> B753:</Response> B754 : · 〈Response Status =,,工ncorrectP1P2,’><〇ut> TlOnError11 </〇ut> B755:</Response> B756: 〈Response Status = "IncorrectClass"><〇ut> "OnError" </Out> B757:</Resp〇nse> ,,0xA4” PI = ?2 ,〇,, "DoNotNotif y,T> 本紙張尺度適用中國國家標準(CNS)A4規格(210 χ 297公爱) 476909 A7 B7 五、發明說明(49 ) 經濟部智慧財產局員工消費合作社印製 </Apdu> <Apdu Id = "UpdateBinaryM> <Command> 〈Header Class = "OxAOM 工ns = r,0xD6ff PI = "offset一 1Π P2 = Lc = ,f3,T/> <In>newBalance</In> </Command〉 〈Response Status = ,fNormalEnding,T Notify = ,rDoNotNotify,?> <Out >fT Void" </Out ></Response> 〈Response Status = ,fMemoryProblem,,><〇ut>f,On Errorn</Out> B758 B759 B760 B761 B762 B763 B764 B765 B766 B769 B770 B771 </〇ut> B772:</Response> B773: 〈Response Status </Out> B774:</Response> B775 B776 B777 ’offset 2 </Response> 〈Response Status 〈Response Status </Out> </Response> 〈Response Status </〇ut> B778:</Response> B779: 〈Response Status B78〇:</Resp〇nse> B781: 〈Response Status B782:</Response> B783: </Apdu> B784: </Process> B785:</Profile> B786: B787:<StatusWord> B788: <SW Verbose B789: <SW Verbose B790: <SW Verbose B791: <SW Verbose B792: <SW Verbose B793: <SW Verbose B794: <SW Verbose B795: <SW Verbose 3796: <SW Verbose B797: <SW Verbose B798: <SW Verbose B799: <SW Verbose B800: <SW Verbose B8〇l: <SW Verbose ,fNoneFileSelected'T><〇ut> f,OnError,r MWrongTypeOfFilen><〇ut> HOnErrorf, MWrongAccessCondition,f><Out> f,OnError'f ,,FileInvalidated”><〇ut> "〇nErrorM ”工ncorrectPlP2n><〇ut> "OnError11 </Out> ,TIncorrectClasslf><〇ut> "OnError*' </Out> ▼fNormalEndingn Status = f’0x9〇00’’/> "Memory Problem11 Status = ”〇x924〇n/> MNoneFileSelected,T Status = n〇x9400’’/> ,T〇ut〇fRange” Status = Tf0x9402rl/> MFileOrPatternNotFound" Status = ,T0x9404 M/> ,fWrongTypeOfFile" Status = ”〇x9408’’/> ,fCHVDoesNotExistStatus = M0x9802M/> nWrongAccessCondition,T Status = "0x9804H/> "InContradictionWithTheCHVStatus” Status = 丨,CHVBlocked丨,Status = ”0x9840,,/> ’’Filelnvalidated” Status = n〇x981〇"/> "IncorrectLength" Status = n0x6700"/> ffInc〇rrectPlP2" Status = ,,0x6B00,7> "IncorrectClassfT Status = lf0x6E00,f/> B802:</StatusWord> B803:</CardDocument> 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) l·---.-------Φ·裝 (請先閱讀背面之注意事項再填寫本頁) 訂--------- "0x9808”/> -52- 476909 A7 _________________ B7 五、發明說明(50 ) 應用靴式啓動 被列於底下的第C 1至C 1 7 7行中之一應用靴式啓 動的實例提供用來測試一字典與上述之應用邏輯單元實例 的相容性之資料與規則。被描述於該靴式啓動檔案中之用 於相容性測試之規則允許兩種聰敏卡被認可爲與該應用邏 輯單元實例相容。詳言之,該靴式啓動檔可允許 〇6111?11^1^〇6 111又?1〇1^9 8〜及〇611^11^心〇6111〇11113心兩種聰敏卡 被掃描並被認可與該應用邏輯單元相容。根據該靴式啓動 檔的規則被實施的程序讓這三個相容的聰敏卡的每一者得 到一獨特的,預定的數値。此獨特的預定値被回送至該連 結引擎作爲該靴式啓動程序的輸出値且被用來測試該卡的 相容性,如參照第6圖所說明的。此外,該靴式啓動檔包 括可取得用來作相容性測驗之字典的位址。 (請先閱讀背面之注音?事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -53- 476909 A7 B7 五、發明說明(51
Cl: <?xml version = ,r 1,0M ?> C2:<!DOCTYPE CardDocument SYSTEM n..\dtd\com\gemplus\sml.dtd"> C3: C4:<!—- * Copyright (c) 1997 — 1999 Gemplus group. All Rights Reserved. C5: C6: C7:<CardDocument> C3:<pr〇file Type = TTGemXplore98rf Version =,,0·1”> C9 : 〈Signature Type = ,?Application,f>Hsignatures?T</Signature> CIO: Cll: 〈Process Name = "signatures,T> C12: <Doc>This is the description of the getFile process to retreive the C13:path</Doc> C14 : <Doc> of the XML file related to the Gemplus * GeruXpresso smart C15:card</Doc> Cl6: <Doc> step 1 - Select CardSerialNumber file </Doc> C17: <D〇c> step 2 - Select GSM directory </Doc> C18: <Doc> step 3 一 Select IMSI file </Doc> Cl9: <Doc> step 4 一 Select Telecom directory </Doc> C20: C21: 〈Variable Name = ’’cardSerialNumberFile’1 Type = ’’byteArray” Default C22:= f,0x2F 0xE2n/> C23: 〈Variable Name = ’’gsiuDirectory” Type = nbyteArrayif Default = r,0x7F C24:0x20??/> C2 5 : 〈Variable Name = ”imsiFile’’ Type =,’byteArray,,Default = f,〇x6F C26:0x09,r/> C27 : 〈Variable Name = ntelecomDirectory?, Type = "byteArray,’ Default = C28 : ?,0x7F OxlO?,/> C29: 〈Variable Name = "root” Type = ,rbyteArray,f Default = ,f〇x3F 0x〇0T,/> C30: 〈Variable Name = ’’RFU—l’’ Type = "byteArray,,Default = ”0x00 0x00,,/> C31: 〈Variable Name = "fileld" Type = ”byteArray,,Default = ”0x00 〇x〇0”/> C32 : 〈Variable Name = "memoryLeftff Type = f'byteArrayr, Default = ”0x00 C33:0x00,f/> C34 : 〈Variable Name = "fileType” Type = ,rbyte,f Default = ,!0x00M/> C35 : 〈Variable Name = MfileFeatures,f Type = f,byteArray,f Default = »'〇x〇〇 C36:0x00 0x00 0x00 0x00,f/> 裝 I n n 今e 經濟部智慧財產局員工消費合作社印製 ^^尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -54- 476909 經 濟 部 智 慧 財 產 局 員 二 消 費 合 作 社 印 製 A7 B7 五、發明說明(52 ) m 〈Variable Name M0x00f,/> "restOfResponse" Type = ,?byte'f Default C38 C39 C4〇 C41 C42 C43 C44 C45 C46 C4 7 C48 C49 C50 C51 C52 C53 C54 C55 C56 C57 C58 C59 C60 C61 C62 C63 C64 C65 C66 C67 C68 C69 C70 C71 Cl 2 C73 C74 C75 C7 6 ! C7 7 C78 C79 C80 C81 C82 C83 C84 C85 C86 C87 C88 C89 C90 C91 C92 C93 <Apdu Id = "SelectM> <Command>〈Header Class = ,f0xA0,r 工ns = ?T0xA4lf PI ,,2” Le = ”〇x20,,/> , <In>cardSerialNumberFile</In> </Command> <Response Status = ,,NormalEndingr, Notify <Out>RFU_l</Out> <Out>memoryLeft</Out> <〇ut>fileld</〇ut> <〇ut>fileType</〇ut> <Out>fileFeatures</Out> <〇ut>rest〇f P、e sp〇nse</Out ></Response〉 </Apdu> P2
Lc ,f DoNotNotif y,?> <Apdu Id = "Select,r> <Command> 〈Header Class = ”0xA0” 工ns = ,f0xA4n PI ==,,0,, P2 =,,0,, ”2” Le = T,0x20’,/> <In>gsmDirectory</In> </Command> 〈Response Status = "NormalEndingTf Notify = ,fDoNotNotifyn> <〇ut>RFU_l</〇ut> <Out>memoryLeft</Out> <〇ut>fileld</〇ut> <〇ut>fileType</〇ut> <Out>fileFeatures</Out> <〇ut>rest〇fResponse</〇ut></Response〉 </Apdu> <Apdu Id = ,,Select,f> <Command> <Header Class = ?l0xA011 Ins = ”〇xA4" PI ”2M Le =,,0x20V> <In>imsiFile</In> </Command> 〈Response Status = ,TNormalEndingf, Notify <Out>RFU_l</Out> <Out>raemoryLef t</Out> <〇ut>fileld</〇ut> <Out>fileType</Out> <Out>fileFeatures</Out> <Out>restOf Response</Outx/Response> </Apdu> <Apdu Id = "Selectu> <Command> 〈Header Class = n0xA0M 工ns = n〇xA4’T PI ”2” Le =,,0x2〇,,/> <In>telec〇mDi:rect〇:i:y</In> </Command> 〈Response Status = MNormalEnding,T Notify . <〇ut>RFU_l</〇ut> <Out>memoryLeft</Out> <Out>fileld</0ut> <〇ut〉fileType</〇ut> 本紙張尺度顧中酬家標準(CNS)A4規格(210 X 297公釐) P2
Lc M0n Lc "DoNotNotify"> ,,〇,, p2
Lc ,rDoNotNotifyM>
請 先 閱 讀 背 面 之 注 意 事 項▲ 再W 填T5裝 本 頁I I I I I 訂 -55- 476909 A7 B7 五、發明說明(53 ) <Out>fileFeatures</Out> <〇ut>rest〇fResponse</〇ut></Response〉 </Apdu> </Process> C94 C95 C96 C97 C98 C99: 〈Process Name = ”getFileT’> Cl〇〇: <Doc>This is the description of the getFile process to retreive the C101:path</Doc> C102: <Doc> of the XML file related to the Gemplus1 GemXpresso smart CIO3:card</Doc> C104 : <Apdu Id = ”returnFilename’’> C105: <Command> C106: <Header Class = ”〇x〇0" Ins = M0x00M PI = ”0,τ P2 = ff0,r Le = C107 : ,f0x00,?/> C108: <In>,,file:////d:\\my CIO9: developments\\xml\\sml\Samples\GsmLoyaltyA.sml”</In> C110: </Command> Clll: <Response Status = MNormalEndingTf Notify = HDoNotNotifyrf> C112: <Out>nVoidM</Outx/Response> ' C113: </Apdu> C114: </Pr〇Gess> C115:</Profile> C116: C117 :<P.rofile Type = nGemClub?, Version = C118 : <Signature Type = ?,ApplicationM>,TsignatureM</Signature> I C119: 1 C12〇: <Process Name = "signature”〉 C121: <Doc>This is the description of the getFile process to retreive the C122:path</Doc> C123: <Doc> of the XML file related to the Gemplus1 GemClub smart C124:card</Doc> C125: <Doc> step 1 一 get the card information</Doc> C126: C127 : 〈Variable Name = ”CardSerialNumber ” Type = ’’byteArray” Length = C128:T Default = ,r 11/> C129: 〈Variable Name = ’’Unknownl” Type = ’’byteArray" Length = ”8’, C130:Default = ,T ,T/> C131: 〈Variable Name = T,Unknown211 Type = nbyteArray?T Length = ,f8n C132: Default = '、、'/> C133 : 〈Variable Name = "IssuerReference” Type = T,byteArray,f Length = T,4,f C134 : Default =,,”/> 裝---- n n n n 訂---- #. 經 濟 部 智 慧 財 產 局 員 工 消 f 合 作 社 印 製 C135 C136 C137 C138 C139 C140 C141 C142 C143 C144 C145 C146 C147 C148 C149 • C150 <Apdu Id = ”GetCardInf〇’’> <Command> 〈Header Class - ,f0x80u 工ns = ,r0xBEu PI '0xlCn/> <In>,,Void”</In> </Command> <Response Status = MNormalEndingf, Notify <0ut>Unknownl</0ut> <Out>Unknown2</Out> <Out>CardSerialNumber</Out> <〇ut>IssuerReferencec/Out></Response〉 </Apdu> </Process> . ffDoNotNotifyf,> 〈Process Name = ?,getFile,r> <Doc>This is the description of the getFile process to retreive C151:the path</Doc> 本紙張尺度適用中國國家標準(CNS)A4規格(210 x 297公釐) 476909 經濟部智慧財產局員工消費合作社印製 A7B7 五、發明說明( 54 ^152 : <Doc> of the XML file related to the Gemplus C153:card</Doc> C154: <Apdu Id = f,returnFilenameM> C155: <Cominand> C156: <Header Class = ,f0x00,f Ins = ?T0x00'r PI = C157 :Le = ”〇”/> C158: <In>Mfile:////c:\\my C159:developments\\xml\\sml\Samples\GemClubL〇yalty.sml”</In>
GemClub smart ,,0,, P2 ,〇,,Lc C160 C161 C162 C163 C164 C165:〈/Profile〉 C166: C167:<StatusWord> C168: <SW Verbose ! Cl69:</StatusWord> C170: C171:〈Manifest〉 C172: <Principal/> C173: <Digestx/Digest> C174: <DicSignature></DicSignatur8> C17 5 : <Certif icatex/Certif icate> C17 6:</Manifest〉 C177:</CardD〇cument> </Command〉 〈Response Status = ,?NormalEnding,f Notify <〇ut>”Void”</〇ut></Response〉 </Apdu> </Process>
NormalEndingn Status = f,0x9000n/> 釐公 297 |l A4 lNS) (c準標家 國 國 中 用適度尺張紙本 nDoNotNotif y,f> -----------^--------—-----^_MW.(請先閱讀背面之注意事項再填寫本頁) 57 A7 A7
五、發明說明(55 ) 安全淸單 (請先閱讀背面之注意事項再填寫本頁) 在下面第D 1至第D 3 2行中所列的爲安全淸單的實 例’其提供處理一相關的字典所需的資料與規則用以決定 δ亥子典是否有任何的改變。該演算法於第d 1行中被指定 。在此實例中,一安全混亂(hash )演算法(S Η A )被 用來產生該訊息摘要,及一數位簽名演算法(D S A )被 用來產生該簽名。processName原則被界定在第D 2行中以 包括在該查驗測式中。Member原則被界定在第D 3行中以 包括在該查驗測試中。Eventsettings原則被界定在第D 4 f了中以包括在該查驗測式中。S i g n a t u r e原則被界定在第 D 5行中以包括在該查驗測式中。p r 0 f i 1 e原則被界定在第. D 6行中以包括在該查驗測式中。該摘要被界定在第D 7 行中以包括在該查驗測式中。在第D 8至D 1 0行中界定 該簽名。在第D 1 1至D 2 7行中界定一 X5 0 9的證明 〇 經濟部智慧財產局員工消費合作社印製 如該安全淸單實例所示的,本發明允許一字典的開發 者在查驗該字典的真實性及完整性的程序中指定安全層級 。本發明允許字典的開發者指定該字典的那一部分無法被 修改。因此,藉由不指定該字典的片段作安全性檢查’這 些片段即開放給後續的修改。因此,本發明具有可讓一相 關檔案在真實性與完整性上有量身定做性的彈性。 雖然安全淸單實例單獨被呈現’但在本發明的較佳實 施例中,該安全淸單爲其相關的字典檔案的一部分。 -58- 本紙張尺度顧+關家標準(CNS)A4規格U10 X 297公釐) 476909 Α7 Β7 五、發明說明(56 )
Dl : 〈Manifest Algorithm = ,fDSAr, Digest = MSHA,f> D2 : 〈Principal Name = n Process Name,f /> D3: 〈Principal Name = "Member"/> D4 : 〈Principal Name = ’’Eventsetting”/> (請先閱讀背面之注意事項再填寫本頁) D5: 〈Principal Name = ’’Signature”/〉 D6: 〈Principal Name = ’’Profile”/〉 D7 〈DigestsYhSlFwdj kH4V4KNyvNfI〇GPglX0=</Digest> D8: <DicSignature> D9: MC〇CFQCNfViVxfuCGZC6W5zpEJYvTSecRwIUZm〇b+s4EVLbH9VSgDR7Ez/7T25E= DIO: </DicSignature>
Dll: 〈Certificate = 〃X509"> D12: MIICOzCCApICAgPpMAkGBSsOAwINBQAwUzELMAkGAlUEBhMCVVMxEjAQBgNVBAoTCXNt D13: YXJ0WE9yZzEaMBgGAlUECxMRc21hcnRYQ2VydGlmaWNhdGUxFDASBgNVBAMTC3NtYXJ0 D14 : WCBOZXNOMBdXDTkSMDEwMTAdMDAwMFoXDTkSMTIzMTAAMDAwMFowUzElLMAkGAlUEBHmc D15: VVMxEjAQBgNVBAoTCXNtYXJ0WE9yZzEaMBgGAlUECxMRc21hcnRYQ2VydGlmaWNhdGUx
D16: FDASBgMVBAMTC3lSitYXJ0WCB0ZXN0M 工工 BtTCCASoGBSsOAwIMM 工工 BHwKBgQD9fl〇BHXUS D17: KVLfSpwu7〇Tn9hG3UjzvRADDHj+AtlEruaUVdQCJR+llc9jVj6v8XlujD2y5tVbNeB〇4Ad
D18: NG/yZmC3a51QpaSfn+gEexAiwk+7qdf+t8Yb+DtX58aophUPBPuD9tPFHsMCNVQTWhaR
D19: MvZ1864rYdcq7/IiAxmd0UgBxwIVAJdgUI8VIwvMspK5gqLrhAvwWBzlAoGBAPfhoIXW D20: mz3ey7yrXDa4V7151K+7+jrqgvlXTAs9B4JnUVlXjrrUWU/mcQcQgYC0SRZxI+Hmkbyt D21: t88JM〇zIpuE8FnqLVHyNK〇Cjrh4rs6ZlkW6jfwv6.ITVi8ftiegEk〇8ylc8b6oUZCJqIPf
D22: 4VrlnwaSi2ZegHtVJWQBTDv+z〇kqA4GEAAKBgFvbl2B0MW9KtmpSenBIx+cG9450pJxU D23: MJnyYkuEaqW3ecCHBU5uqONm4ncCKlNlvWeCYwpvrv+VR-fsVVEiCtUZJ4HXWcMUnund2 D24: yVwVRpMKHtvNsdDvIrMgCF2smIca92sZLXwsrqYs4jbbMRj Tjhy7v2WR8Qqxp6h0sXUc D25: HD5〇MAkGBSs〇AwINBQADMAAwLQIVAJH5sRWxulzlSi+PM〇lgsP8qqlSiUA6RAhRsT4〇VPK4h D26: LhN6w8MUEJcF4ymn0g== D27: 〈/Certificate〉 D28: 〈/Manifest〉 經濟部智慧財產局員工消費合作社印製 雖然上述的應用協定,靴式啓動檔及安全淸單實例是 以X M L寫成的,但本發明之替代實施例可使用不同版本 的XML ’或不同語言或工具來提供描述。此外,該應用 協定及靴式啓動檔不需以相同的語言來寫,就如上述的例 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -59- 經濟部智慧財產局員工消費合作社印製 476909 A7 B7 五、發明說明(57 ) 子一樣。 雖然在上述實例中該應用邏輯單元是以kva寫成’但 本發明之替代實施例可使用其它的程式§吾g來貫施該應用 的邏輯。 本發明允許一應用軟體的開發者在無需考慮特定獨取 器之硬體工具,電腦或聰敏卡之下來寫一應用邏輯單元。 經由該連結引擎,本發明取得該應用邏輯單元之該邏輯程 序的硬體特定描述,該連結引擎將指定所使用的硬體,讀 取器,聰敏卡及任何點電腦之識別子與被該應用邏輯單元 所呼叫的程序相搭配。因此,本發明具有可讓一應用程式 開發者寫出可在終端機或聰敏裝置的任何組合上甩該終端 機與聰敏裝置的既有字典來實施的應用程式。本發明藉由 允許該應用程式之硬體特定部分被下載以供一特定的聰敏 裝置之用而降低該終端機在記憶體上的負擔,藉以消除將 與該聰敏裝置相關的應用程式的應體特定功能元件貯存的 需求。 本發明允許與該應用邏輯單元相容之其它的聰敏卡, 或其它種類的聰敏裝置藉由加至既有的靴式啓動檔,或使 用具有該新的聰敏卡的資訊之新的靴式啓動檔而被添加。 以此方式,如本文中所舉的例子所示的,本發明經由添加 靴式啓動檔及字典,不需對既有的應用邏輯單元加以修改 而可在不同的聰敏裝置種類之間提供強化的彈性及相互作 用性。 雖然本發明之較佳實施例將應用協定連結至應用邏輯 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公爱) I.---:-------裝--------訂--------- (請先閱讀背面之注意事項再填寫本頁) -60- 476909 A7 ___JB7__五、發明說明(58 )單元,但本發明之替代實施例可在執行時間之前實施該連 結操作。 (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -61 -

Claims (1)

  1. 經濟部智慧財產局員工消費合作社印製 476909 A8 B8 C8 D8 六、申請專利範圍 1 · 一種執行一應用程式之終端機,該應用程式係用 來處理與一聰敏裝置相關的資料,該終端機包含: 一應用邏輯單元,其提供該應用程式之硬體獨立描述 一識別子’其指定一應用協定的位置,該應用協定提 供該應用程式的硬體描述J及一安全輪廓其指定至少一應 用協的片段作完整性ifg ; ' 將該應用邏輯單元連結至該應用協定的機構,用以實 施與該聰敏中裝置相關的應用邏輯單元的邏輯程序;及 遐麗該安全輪廓查驗.麗應„甩協定之該至少一片段造羞 整性之機構。 2 · —種與一終端機一起使用的聰敏裝置,該終端機 是用來執行處理資料的一應用程式,該聰敏裝置包含: 一記憶體單元; 一位在該記憶體單元中之識別子,其指定一應用協定 的位置及一.,該應用協定提供該應用程式的硬體 描述,皇安立農單包里.. /一查驗摘要;及 丨一安全輪廓,其指定至少一應用協的片段以該查驗摘 要來對其作完整性測試,其中一演算法被施用至該被指定 之至少一片段,其原始未被修改的形式產生查驗摘要。 3 ·如申請專利範圍第2項所述之匆敏裝置,其中該 女全淸單進一步包括一演算法識別于其指定用來產生該查 驗摘要的演算法及在該被指定之至少一片段的完整性測試 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) I,—^-------·裝--------訂---------線 (請先閱讀背面之注咅?事項再填寫本頁) -62- 476909 A8 B8 C8 D8 t、申請專利範圍 中使用的演算法。 (請先閱讀背面之注意事項再填寫本頁) 4 . 一種實施一檔案完整性檢查的方法,該方法包括 的步驟爲: 接收一安全輪廓,其指定該檔案的至少一片段被查驗 根據一演算法來處理該等被指定的片段以產生一輸出 摘要; 將該輸出摘要與一查驗摘要比對,該查驗摘要是藉由 施用該演算法至該等被指定的片段所產生的;及 _當該輸出摘要等於該查驗摘要時宣告該檔案安全。 5 .如申請專利範圍第4項所述之方法,其進一步包 含當該輸出摘要不等於該查驗摘要時宣告一嚴重的錯誤的 步驟。 6 .如申請專利範圍第4項所述之方法,其中該安全 輪廓,演算法及查驗摘要係包括在該用來測試完整性的檔 案中。 經濟部智慧財產局員工消費合作社印製 7 .如申請專利範圍第6項所述之方法,其中該檔案 進一步包含在查驗該當案的真實性中所使用的一簽名及證 明。 8 .如申請專利範圍第6項所述之方法,其中當案進 一步包含一識別子其指定在查驗該簽名的真實性中所使用 的簽名演算法。 9 . 一種將一字典連結至一應用邏輯單元的方法用以 實施該應用邏輯單元,該方法包含: 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -63- 經濟部智慧財產局員工消費合作社印製 476909 A8 B8 C8 D8 t、申請專利範圍 從一應用邏輯單元接受一請求以找出該應用邏輯單元 作出該請求時一與該硬體工具相容的字典; 取得包括一可能相容的字典之至少一識別子在內之一 表單; 從該可能相容的字典表單中選擇一字典作相容性測試 取得該被選取的字典; 執行一靴式啓動(boot )來掃描該字典以找尋使用於 該相容性測試中之字典的片段; .產生對應於該被選取的字典的輸出値; 將該輸出値與一靴式啓動檢查値相比較; 如果該輸出値等於該靴式啓動檢查値的話,則將該被 選取的字典加至一相容字典的表單上; 從該相容字典的表單上選取一字典以作爲該應用協定 f 實施一宏丄:l確i至免從該相..容.字典.的表專〜上 一----〆 選取的字典的一部分未被改變;及 --------------------- ------ 'm-.·... 將從該相容字典的表單上被選取的字典連結至該應用 邏輯單元以在實施該應用邏輯單元中使用。 1〇.如申請專利範圍第9項所述之方法,其中從該 相容字典的表單上被選取的字典會從該相容字典的表單上 被排除以作爲未通過安全檢查的回應。 1 1 .如申請專利範圍第9項所述之方法,其中至少 一額外的字典被選取作相容性測試。 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -------------------訂---------線 (請先閱讀背面之注意事項再填寫本頁) -64- 經濟部智慧財產局員工消費合作社印製 ^/6909 A8 B8 C8 —_ D8 A、申請專利範圍 1 2 ·如申請專利範圍第9項所述之將一字典連結至 〜應用邏輯單元的方法,其中該等額外的字典在被測試之 字典的對應輸出値等於該靴式啓動檢查値時,即被加至該 相容字典表單中。 1 3 ·如申請專利範圍第9項所述之將一字典連結至 一應用邏輯單元的方法,其中在該可能相容的字典表單中 的所有字典都被作相容性測試。 1 4 .如申請專利範圍第9項所述之將一字典連結至 〜應用邏輯單元的方法,其中所有被加至該相容字典表單 中.的字典都是其字典輸出値等於該靴式啓動檢查値。 1 5 ·如申請專利範圍第1 3項所述之將一字典連結 至一應用邏輯單元的方法,其中所有被加至該相容字典表 單中的字典都是其字典輸出値等於該靴式.啓動檢查値。 1 6 · —種執行一應用程式的方法,該方法包含的步 驟爲: 產生該應用協定的輪廓(profile); 建立一連結引擎; 啓始至少一字典之與該硬體工具及一應用邏輯單元的 相容性測試; 根據該相容性測試的結果選擇一字典作爲該應用協定 實施安全檢查以確認被選擇作爲該應用協定之字典的 片段的完整性; 召喚至少一聰敏裝置方法;及 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -------------------訂---------線 (請先閱讀背面之注意事項再填寫本頁) -65- 經濟部智慧財產局員工消費合作社印製 476909 A8 B8 C8 D8 六、申請專利範圍 接受根據該被召喚的聰敏裝置方法的定義之一輸出回 應,該被召喚的聰敏裝置方法的定義係包含在該應用協定 中。 1 7 .如申請專利範圍第1 6項所述之執行一應用程 式的方法,其中該安全檢查包括的步驟爲: 接收一安全輪廓,其指定該檔案的至少一片段被查驗 根據一演算法來處理該等被指定的片段以產生一輸出 摘要; .將該輸出摘要與一查驗摘要比對,該查驗摘要是藉由 施用該演算法至該等被指定的片段所產生的;及 當該輸出摘要等於該查驗摘要時宣告該檔案安全。 1 8 .如申請專利範圍第1 7項所述之方法,其進一 步包含當該輸出摘要不等於該查驗摘要時宣告一嚴重的錯 誤的步驟。 1 9 .如申請專利範圍第1 7項所述之方法,其中該 安全輪廓,演算法及查驗摘要係包括在該用來測試完整性 的檔案中。 2〇.如申請專利範圍第1 9項所述之方法,其中該 檔案進一步包含在查驗該當案的真實性中所使用的一簽名 及證明。 2 1 .如申請專利範圍第1 9項所述之方法,其中當 案進一步包含一識別子其指定在查驗該簽名的真實性中所 使用的簽名演算法。 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -------------------訂---------線 (請先閱讀背面之注意事項再填寫本頁) -66- 476909 8888 ABCD 經濟部智慧財產局員工消費合作社印制衣 六、申請專利範圍 2 2 · —種應用程式,用來處理與在一聰敏裝置上被 處理之資料相關的資料,該應用程式包含: 一應用邏輯單元,其規範在處理該資料時所實施的邏 輯’該應用邏輯單元包括至少一聰敏裝置方法;及 一應用協定,其包括 該聰敏裝置方法的一定義,該定義提供該聰敏裝置方 法之硬體特定構件; 、一安全淸單,其提供指定規則來指定應用協的片段以 該查驗摘要對其作完整性測試。 2 3 ·如申請專利範圍第2 2項所述之應用程式,其 中該安全淸單進一步包括一識別子其指定用來產生該查驗 摘要的演算法及在該被指定之至少一片段的完整性測試中 使用的演算法。 2 4 ·如申請專利範圍第2 2項所述之應用程式,其 中該安全淸單進一步包括該查驗摘要。 2 5 ·如申請專利範圍第2 2項所述之應用程式,其 中該安全淸單進一步包括在查驗該當案的真實性中所使用 的一簽名及證明。 2 6 .如申請專利範圍第2 5項所述之應用程式,其 中該安全淸單進一步包括一識別子其指定在查驗該簽名的 真實性中所使用的簽名演算法。 2 7 ·如申請專利範圍第2 2項所述之應用程式,其 進一步包含一需式啓動檔,該靴式啓動檔規範一字典在作 與該應用邏輯單元的應用協定的相容性測試時會被測試的 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) --------------------訂---------線 (請先閱讀背面之注意事項再填寫本頁) -67- 476909 A8 B8 C8 D8 申請專利範圍 其 其r , , 之 式。式元 程元程單 su Hu 口耳 月 月 _ 應輯應邏 之邏之用 述用述應 所應所該 項該項至 2 至 2 結 2 結 2 連 第連第定 圍擎圍協 範 on 範用 利結利應 。 專連專該試 請一請將測 申被申在性 如定如擎容 •協 ·引相 8 用 9 結 一 。2 應 2 連施 段該 該實 片中 中先 (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -68-
TW89111362A 1999-06-20 2000-06-08 Method and system of performing a security check of a smart device description file TW476909B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US33697699A 1999-06-20 1999-06-20

Publications (1)

Publication Number Publication Date
TW476909B true TW476909B (en) 2002-02-21

Family

ID=23318551

Family Applications (1)

Application Number Title Priority Date Filing Date
TW89111362A TW476909B (en) 1999-06-20 2000-06-08 Method and system of performing a security check of a smart device description file

Country Status (3)

Country Link
AU (1) AU5470600A (zh)
TW (1) TW476909B (zh)
WO (1) WO2000079382A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8572386B2 (en) 2003-08-06 2013-10-29 Panasonic Corporation Secure device, information processing terminal, integrated circuit, terminal application generation apparatus, application authentication method

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0717337B1 (en) * 1994-12-13 2001-08-01 International Business Machines Corporation Method and system for the secured distribution of programs
AU687312B2 (en) * 1995-05-09 1998-02-19 Smartmove (Nz) Limited Card interface
US6067575A (en) * 1995-12-08 2000-05-23 Sun Microsystems, Inc. System and method for generating trusted, architecture specific, compiled versions of architecture neutral programs
AU5595398A (en) * 1996-12-03 1998-06-29 Strategic Analysis, Inc. Method and apparatus for formatting smart cards and card readers

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8572386B2 (en) 2003-08-06 2013-10-29 Panasonic Corporation Secure device, information processing terminal, integrated circuit, terminal application generation apparatus, application authentication method

Also Published As

Publication number Publication date
WO2000079382A3 (en) 2001-08-16
WO2000079382A2 (en) 2000-12-28
AU5470600A (en) 2001-01-09

Similar Documents

Publication Publication Date Title
WO2000075775A2 (en) Method and system of linking a smart device description file with the logic of an application program
Anderson et al. extensible access control markup language (xacml) version 1.0
US9111119B2 (en) Methods, devices and data structures for trusted data
Robertson et al. Static Enforcement of Web Application Integrity Through Strong Typing.
JP5938677B2 (ja) 遊技機
US8347380B1 (en) Protecting users from accidentally disclosing personal information in an insecure environment
McCune et al. Minimal TCB code execution
CN108154032A (zh) 一种基于可信执行环境的具有内存完整性保障功能的计算机系统信任根构建方法
Li et al. Practical information flow control in web-based information systems
CN107480524A (zh) 一种安全沙箱及其构建方法
TW476909B (en) Method and system of performing a security check of a smart device description file
CN102796058B (zh) 具有血小板生成素受体激动作用的化合物
Tuegel ‘Evaluation of prognostic and probabilistic individual aircraft tracking (P2IAT): Volume 2-experimental loading sequences
Paul et al. Comparing java and. net security: Lessons learned and missed
Buchner et al. Survey on trusted execution environments
Rote The Largest Inscribed Triangle and the Smallest Circumscribed Triangle of a Convex Polygon
Wellington Dictionary of bibliographic abbreviations found in the scholarship of classical studies and related disciplines
LEWIS Symmetry Methods for Understanding Structures of Inorganic Functional Materials
Phiromswad A New Panel Dataset of Potential Determinants of Economic Growth
Bjerregaard et al. Algorithm to compute the rank and a Cartan subalgebra of a matrix Lie algebra with Mathematica
Gaines et al. Dataset associated with “Investigating the origins and evolution of a glyphosate-resistant weed invasion in South America”
Co ncoo, m
Alhadithy et al. Online Database Intrusion Detection System Based on Query Signatures
CN116680698A (zh) 一种多域隔离操作系统文件访问可信环境的设计方法
Jou et al. Supplementary Information: Minimization-Aware Recursive K (MARK): A Novel, Provable Algorithm that Accelerates Ensemble-based Protein Design and Provably Approximates the Energy Landscape