国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種終端和智能卡協(xié)商選擇應(yīng)用的方法和裝置制造方法

      文檔序號:6632092閱讀:231來源:國知局
      一種終端和智能卡協(xié)商選擇應(yīng)用的方法和裝置制造方法
      【專利摘要】本發(fā)明公開一種終端和智能卡協(xié)商選擇應(yīng)用的方法及裝置,該方法包括:終端獲取短文件標(biāo)識,初始化當(dāng)前記錄號;根據(jù)短文件標(biāo)識和當(dāng)前記錄號發(fā)送讀記錄指令,接收第二應(yīng)答數(shù)據(jù),若第二應(yīng)答數(shù)據(jù)中的應(yīng)用目錄文件與預(yù)設(shè)的應(yīng)用序列號匹配,則更新應(yīng)用候選列表;終端獲取應(yīng)用序列號列表中的第一個應(yīng)用序列號作為當(dāng)前應(yīng)用序列號;根據(jù)當(dāng)前應(yīng)用序列號發(fā)送第二選擇指令,接收第三應(yīng)答數(shù)據(jù),若第三應(yīng)答數(shù)據(jù)中的專用文件名與當(dāng)前應(yīng)用序列號匹配,則更新應(yīng)用候選列表,終端在應(yīng)用候選列表中獲取一個應(yīng)用的信息,發(fā)送第四選擇指令,接收第五應(yīng)答數(shù)據(jù),若第五應(yīng)答數(shù)據(jù)符合第一預(yù)設(shè)要求,則選擇應(yīng)用成功,保存所述第五應(yīng)答數(shù)據(jù)中的處理選項(xiàng)數(shù)據(jù)對象列表,結(jié)束。
      【專利說明】一種終端和智能卡協(xié)商選擇應(yīng)用的方法和裝置

      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及信息安全領(lǐng)域,尤其涉及一種終端和智能卡協(xié)商選擇應(yīng)用的方法和裝置。

      【背景技術(shù)】
      [0002]應(yīng)用是終端與智能卡進(jìn)行交互的前提,應(yīng)用定義了終端與智能卡交互過程中所需要的數(shù)據(jù)、步驟、安全策略以及結(jié)果成功與失敗的準(zhǔn)則,因此在終端與智能卡進(jìn)行交互之前需要選擇應(yīng)用。隨著智能卡技術(shù)的發(fā)展,智能卡的類型也越來越多,但終端不能預(yù)知智能卡的類型,導(dǎo)致終端和智能卡難以協(xié)商選擇應(yīng)用。


      【發(fā)明內(nèi)容】

      [0003]本發(fā)明的目的是為了克服現(xiàn)有技術(shù)的不足,提供一種終端和智能卡協(xié)商選擇應(yīng)用的方法和裝置,既支持終端和智能卡根據(jù)目錄選擇功能協(xié)商選擇應(yīng)用,也支持終端和智能卡根據(jù)應(yīng)用序列號列表選擇功能協(xié)商選擇應(yīng)用,兼容性好,易于維護(hù)。
      [0004]本發(fā)明提供一種終端和智能卡協(xié)商選擇應(yīng)用的方法,包括:
      [0005]步驟S1:所述終端獲取所述智能卡中的短文件標(biāo)識,初始化應(yīng)用候選列表和當(dāng)前記錄號;
      [0006]步驟S2:所述終端根據(jù)所述短文件標(biāo)識和當(dāng)前記錄號向所述智能卡發(fā)送讀記錄指令,接收所述智能卡根據(jù)所述讀記錄指令返回的第二應(yīng)答數(shù)據(jù),根據(jù)所述第二應(yīng)答數(shù)據(jù)判斷是否已讀取完所述智能卡中的記錄,是則執(zhí)行步驟S3,否則執(zhí)行步驟S4 ;
      [0007]步驟S3:所述終端判斷所述應(yīng)用候選列表是否為空,是則執(zhí)行步驟S5,否則執(zhí)行步驟S8 ;
      [0008]步驟S4:所述終端判斷所述第二應(yīng)答數(shù)據(jù)中的應(yīng)用目錄文件與預(yù)設(shè)的應(yīng)用序列號列表中的應(yīng)用序列號是否匹配,是則根據(jù)所述第二應(yīng)答數(shù)據(jù)中的應(yīng)用信息更新所述應(yīng)用候選列表,更新當(dāng)前記錄號,返回步驟S2,否則更新當(dāng)前記錄號,返回步驟S2 ;
      [0009]步驟S5:所述終端獲取預(yù)設(shè)的應(yīng)用序列號列表中的第一個應(yīng)用序列號作為當(dāng)前應(yīng)用序列號;
      [0010]步驟S6:所述終端根據(jù)當(dāng)前應(yīng)用序列號向智能卡發(fā)送第二選擇指令,接收所述智能卡根據(jù)所述第二選擇指令返回的第三應(yīng)答數(shù)據(jù),判斷所述第三應(yīng)答數(shù)據(jù)中的專用文件名是否與當(dāng)前應(yīng)用序列號匹配,是則根據(jù)所述第三應(yīng)答數(shù)據(jù)更新所述應(yīng)用候選列表,執(zhí)行步驟S7,否則執(zhí)行步驟S7;
      [0011]步驟S7:所述終端判斷所述應(yīng)用序列號列表中的當(dāng)前應(yīng)用序列號之后是否存在應(yīng)用序列號,是則更新當(dāng)前應(yīng)用序列號,返回步驟S6,否則執(zhí)行步驟S8 ;
      [0012]步驟S8:所述終端根據(jù)所述應(yīng)用候選列表判斷是否與所述智能卡有共同支持的應(yīng)用,是則執(zhí)行步驟S9,否則結(jié)束;
      [0013]步驟S9:所述終端按照預(yù)設(shè)規(guī)則選擇一個應(yīng)用,再根據(jù)確定的應(yīng)用在所述應(yīng)用候選列表中獲取所述應(yīng)用的信息,根據(jù)獲取到的信息中的應(yīng)用序列號,向所述智能卡發(fā)送第四選擇指令,接收所述智能卡根據(jù)所述第四選擇指令返回的第五應(yīng)答數(shù)據(jù),判斷所述第五應(yīng)答數(shù)據(jù)是否符合第一預(yù)設(shè)要求,是則選擇應(yīng)用成功,保存所述第五應(yīng)答數(shù)據(jù)中的處理選項(xiàng)數(shù)據(jù)對象列表,結(jié)束流程,否則在所述應(yīng)用候選列表中刪除獲取到的所述應(yīng)用的信息,返回步驟S8。
      [0014]本發(fā)明又提供一種終端和智能卡協(xié)商選擇應(yīng)用的方法,包括:
      [0015]步驟S1:所述終端初始化應(yīng)用候選列表,獲取預(yù)設(shè)的應(yīng)用序列號列表中的第一個應(yīng)用序列號作為當(dāng)前應(yīng)用序列號;
      [0016]步驟S2:所述終端根據(jù)當(dāng)前應(yīng)用序列號向智能卡發(fā)送第二選擇指令,接收所述智能卡根據(jù)所述第二選擇指令返回的第三應(yīng)答數(shù)據(jù),判斷所述第三應(yīng)答數(shù)據(jù)中的專用文件名是否與當(dāng)前應(yīng)用序列號匹配,是則根據(jù)所述第三應(yīng)答數(shù)據(jù)更新所述應(yīng)用候選列表,執(zhí)行步驟S3,否則執(zhí)行步驟S3;
      [0017]步驟S3:所述終端判斷所述應(yīng)用序列號列表中的當(dāng)前應(yīng)用序列號之后是否存在應(yīng)用序列號,是則更新當(dāng)前應(yīng)用序列號,返回步驟S2,否則執(zhí)行步驟S4 ;
      [0018]步驟S4:所述終端判斷所述應(yīng)用候選列表是否為空,是則執(zhí)行步驟S5,否則執(zhí)行步驟S9 ;
      [0019]步驟S5:所述終端獲取所述智能卡中的短文件標(biāo)識,初始化當(dāng)前記錄號;
      [0020]步驟S6:所述終端根據(jù)所述短文件標(biāo)識和當(dāng)前記錄號向所述智能卡發(fā)送讀記錄指令,接收智能卡根據(jù)所述讀記錄指令返回的第二應(yīng)答數(shù)據(jù),根據(jù)所述第二應(yīng)答數(shù)據(jù)判斷是否已讀取完所述智能卡中的記錄,是則執(zhí)行步驟S8,否則執(zhí)行步驟S7 ;
      [0021]步驟S7:所述終端判斷所述第二應(yīng)答數(shù)據(jù)中的應(yīng)用目錄文件與預(yù)設(shè)的應(yīng)用序列號列表中的應(yīng)用序列號是否匹配,是則根據(jù)所述第二應(yīng)答數(shù)據(jù)中的應(yīng)用信息更新所述應(yīng)用候選列表,更新當(dāng)前記錄號,返回步驟S6,否則更新當(dāng)前記錄號,返回步驟S6 ;
      [0022]步驟S8:所述終端根據(jù)所述應(yīng)用候選列表判斷是否與所述智能卡有共同支持的應(yīng)用,是則執(zhí)行步驟S9,否則結(jié)束;
      [0023]步驟S9:所述終端按照預(yù)設(shè)規(guī)則選擇一個應(yīng)用,再根據(jù)確定的應(yīng)用在所述應(yīng)用候選列表中獲取所述應(yīng)用的信息,根據(jù)獲取到的信息中的應(yīng)用序列號,向所述智能卡發(fā)送第四選擇指令,接收所述智能卡根據(jù)所述第四選擇指令返回的第五應(yīng)答數(shù)據(jù),判斷所述第五應(yīng)答數(shù)據(jù)是否符合第一預(yù)設(shè)要求,是則選擇應(yīng)用成功,保存所述第五應(yīng)答數(shù)據(jù)中的處理選項(xiàng)數(shù)據(jù)對象列表,結(jié)束流程,否則在應(yīng)用候選列表中刪除獲取到的所述應(yīng)用的信息,返回步驟S8。
      [0024]本發(fā)明又提供一種終端和智能卡協(xié)商選擇應(yīng)用的裝置,包括:第一初始模塊、發(fā)送模塊、接收模塊、第一判斷模塊、第二判斷模塊、第三判斷模塊、第一更新模塊、第二初始模塊、第四判斷模塊、第五判斷模塊、第十判斷模塊、第一獲取模塊、第六判斷模塊、存儲模塊和刪除模塊;
      [0025]所述第一初始模塊,用于獲取所述智能卡中的短文件標(biāo)識,初始化應(yīng)用候選列表和當(dāng)前記錄號;
      [0026]所述發(fā)送模塊,用于根據(jù)所述第一初始模塊獲取的所述短文件標(biāo)識和當(dāng)前記錄號向所述智能卡發(fā)送讀記錄指令;還用于根據(jù)當(dāng)前應(yīng)用序列號向所述智能卡發(fā)送第二選擇指令;還用于根據(jù)獲取到的應(yīng)用序列號,向所述智能卡發(fā)送第四選擇指令;
      [0027]所述接收模塊,用于接收所述智能卡根據(jù)所述發(fā)送模塊發(fā)送的所述讀記錄指令返回的第二應(yīng)答數(shù)據(jù);還用于接收所述智能卡根據(jù)所述發(fā)送模塊發(fā)送的所述第二選擇指令返回的第三應(yīng)答數(shù)據(jù);還用于接收所述智能卡根據(jù)所述發(fā)送模塊發(fā)送的所述第四選擇指令返回的第五應(yīng)答數(shù)據(jù);
      [0028]所述第一判斷模塊,用于根據(jù)所述接收模塊接收到的所述第二應(yīng)答數(shù)據(jù)判斷是否已讀取完所述智能卡中的記錄;
      [0029]所述第二判斷模塊,用于在所述第一判斷模塊判斷為是時,判斷所述應(yīng)用候選列表是否為空;
      [0030]所述第三判斷模塊,用于在所述第一判斷模塊判斷為否時,判斷所述接收模塊接收到的所述第二應(yīng)答數(shù)據(jù)中的應(yīng)用目錄文件與預(yù)設(shè)的應(yīng)用序列號列表中的應(yīng)用序列號是否匹配;
      [0031]所述第一更新模塊,用于在所述第三判斷模塊判斷為是時,根據(jù)所述接收模塊接收到的所述第二應(yīng)答數(shù)據(jù)中的應(yīng)用信息更新所述應(yīng)用候選列表,更新當(dāng)前記錄號;還用于在所述第三判斷模塊判斷為否時,更新當(dāng)前記錄號;
      [0032]所述第二初始模塊,用于在所述第二判斷模塊判斷為是時,獲取預(yù)設(shè)的應(yīng)用序列號列表中的第一個應(yīng)用序列號作為當(dāng)前應(yīng)用序列號;
      [0033]所述第四判斷模塊,用于判斷所述接收模塊接收到的所述第三應(yīng)答數(shù)據(jù)中的專用文件名是否與當(dāng)前應(yīng)用序列號匹配;
      [0034]所述第一更新模塊,還用于在所述第四判斷模塊判斷為是時,根據(jù)所述接收模塊接收到的所述第三應(yīng)答數(shù)據(jù)更新所述應(yīng)用候選列表;
      [0035]所述第五判斷模塊,用于在所述第四判斷模塊判斷為否,或者所述第一更新模塊根據(jù)所述第三應(yīng)答數(shù)據(jù)更新所述應(yīng)用候選列表后,判斷所述應(yīng)用序列號列表中的當(dāng)前應(yīng)用序列號之后是否存在應(yīng)用序列號,是則更新當(dāng)前應(yīng)用序列號;
      [0036]所述第十判斷模塊,用于根據(jù)所述應(yīng)用候選列表判斷是否與所述智能卡有共同支持的應(yīng)用;
      [0037]所述第一獲取模塊,用于在所述第八判斷模塊判斷為是時,按照預(yù)設(shè)規(guī)則選擇一個應(yīng)用,再根據(jù)確定的應(yīng)用在所述應(yīng)用候選列表中獲取所述應(yīng)用的信息;
      [0038]所述第六判斷模塊,用于判斷所述接收模塊接收到的所述第五應(yīng)答數(shù)據(jù)是否符合第一預(yù)設(shè)要求;
      [0039]所述存儲模塊,用于在所述第六判斷模塊判斷為是時,保存所述接收模塊接收到的所述第五應(yīng)答數(shù)據(jù)中的處理選項(xiàng)數(shù)據(jù)對象列表;
      [0040]所述刪除模塊,用于在所述第六判斷模塊判斷為否時,在所述應(yīng)用候選列表中刪除獲取到的所述應(yīng)用的信息。
      [0041]本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn):
      [0042]本發(fā)明提供的一種終端和智能卡協(xié)商選擇應(yīng)用的方法和裝置,既支持終端和智能卡根據(jù)目錄選擇功能協(xié)商選擇應(yīng)用,也支持終端和智能卡根據(jù)應(yīng)用序列號列表選擇功能協(xié)商選擇應(yīng)用,兼容性好;對于多應(yīng)用的智能卡,若智能卡中增加一個應(yīng)用,相應(yīng)地,終端中只需在應(yīng)用序列號列表中增加該應(yīng)用的序列號即可,升級快,不需要修改終端內(nèi)核,易于維護(hù)。

      【專利附圖】

      【附圖說明】
      [0043]圖1是本發(fā)明實(shí)施例1提供的一種終端和智能卡協(xié)商選擇應(yīng)用的方法的流程圖;
      [0044]圖2至圖4是本發(fā)明實(shí)施例2提供的一種終端和智能卡協(xié)商選擇應(yīng)用的方法的流程圖;
      [0045]圖5是本發(fā)明實(shí)施例3提供的一種終端和智能卡協(xié)商選擇應(yīng)用的方法的流程圖;
      [0046]圖6至圖8是本發(fā)明實(shí)施例4提供的一種終端和智能卡協(xié)商選擇應(yīng)用的方法的流程圖;
      [0047]圖9是本發(fā)明實(shí)施例5提供的一種終端和智能卡協(xié)商選擇應(yīng)用的裝置的模塊圖。

      【具體實(shí)施方式】
      [0048]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
      [0049]本方法應(yīng)用于包括認(rèn)證設(shè)備、客戶端與認(rèn)證中心的系統(tǒng)中。
      [0050]實(shí)施例1
      [0051]本發(fā)明的實(shí)施例1提供了一種終端和智能卡協(xié)商選擇應(yīng)用的方法,如圖1所示,包括:
      [0052]步驟S1:終端獲取智能卡中的短文件標(biāo)識,初始化應(yīng)用候選列表和當(dāng)前記錄號;
      [0053]步驟S2:終端根據(jù)短文件標(biāo)識和當(dāng)前記錄號向智能卡發(fā)送讀記錄指令,接收智能卡根據(jù)讀記錄指令返回的第二應(yīng)答數(shù)據(jù),根據(jù)第二應(yīng)答數(shù)據(jù)判斷是否已讀取完智能卡中的記錄,是則執(zhí)行步驟S3,否則執(zhí)行步驟S4 ;
      [0054]步驟S3:終端判斷應(yīng)用候選列表是否為空,是則執(zhí)行步驟S5,否則執(zhí)行步驟S9 ;
      [0055]步驟S4:終端判斷第二應(yīng)答數(shù)據(jù)中的應(yīng)用目錄文件與預(yù)設(shè)的應(yīng)用序列號列表中的應(yīng)用序列號是否匹配,是則根據(jù)第二應(yīng)答數(shù)據(jù)中的應(yīng)用信息更新應(yīng)用候選列表,更新當(dāng)前記錄號,返回步驟S2,否則更新當(dāng)前記錄號,返回步驟S2 ;
      [0056]步驟S5:終端獲取預(yù)設(shè)的應(yīng)用序列號列表中的第一個應(yīng)用序列號作為當(dāng)前應(yīng)用序列號;
      [0057]步驟S6:終端根據(jù)當(dāng)前應(yīng)用序列號向智能卡發(fā)送第二選擇指令,接收智能卡根據(jù)第二選擇指令返回的第三應(yīng)答數(shù)據(jù),判斷第三應(yīng)答數(shù)據(jù)中的專用文件名是否與當(dāng)前應(yīng)用序列號匹配,是則根據(jù)第三應(yīng)答數(shù)據(jù)更新應(yīng)用候選列表,執(zhí)行步驟S7,否則執(zhí)行步驟S7 ;
      [0058]步驟S7:終端判斷應(yīng)用序列號列表中的當(dāng)前應(yīng)用序列號之后是否存在應(yīng)用序列號,是則更新當(dāng)前應(yīng)用序列號,返回步驟S6,否則執(zhí)行步驟S8 ;
      [0059]步驟S8:終端根據(jù)應(yīng)用候選列表判斷是否與智能卡有共同支持的應(yīng)用,是則執(zhí)行步驟S9,否則結(jié)束;
      [0060]步驟S9:終端按照預(yù)設(shè)規(guī)則選擇一個應(yīng)用,再根據(jù)確定的應(yīng)用在應(yīng)用候選列表中獲取應(yīng)用的信息,根據(jù)獲取到的信息中的應(yīng)用序列號,向智能卡發(fā)送第四選擇指令,接收智能卡根據(jù)第四選擇指令返回的第五應(yīng)答數(shù)據(jù),判斷第五應(yīng)答數(shù)據(jù)是否符合第一預(yù)設(shè)要求,是則選擇應(yīng)用成功,保存第五應(yīng)答數(shù)據(jù)中的處理選項(xiàng)數(shù)據(jù)對象列表,結(jié)束流程,否則在應(yīng)用候選列表中刪除獲取到的應(yīng)用的信息,返回步驟S8。
      [0061]實(shí)施例2
      [0062]本發(fā)明的實(shí)施例2提供了一種終端和智能卡協(xié)商選擇應(yīng)用的方法,如圖2至圖4所示,包括:
      [0063]步驟101:終端根據(jù)預(yù)設(shè)的專用文件名向智能卡發(fā)送第一選擇指令;
      [0064]例如,第一選擇指令為:00A4 04 00 OE 31 50 41 59 2E 53 59 53 2E 44 4446 30 31 ;其中,31 50 41 59 2E 53 59 53 2E 44 44 46 30 31 為預(yù)設(shè)的 DF(DedicatedFile,專用文件)名;
      [0065]步驟102:終端接收智能卡根據(jù)第一選擇指令返回的第一應(yīng)答數(shù)據(jù),根據(jù)第一應(yīng)答數(shù)據(jù)判斷智能卡是否被鎖定或不支持該指令,是則選擇應(yīng)用失敗,結(jié)束,否則執(zhí)行步驟103 ;
      [0066]具體地,終端判斷第一應(yīng)答數(shù)據(jù)是否為0x6A81,是則確定智能卡被鎖定或不支持該指令,否則確定智能卡未被鎖定且支持該指令;
      [0067]步驟103:終端判斷第一應(yīng)答數(shù)據(jù)是否符合第二預(yù)設(shè)要求,是則執(zhí)行步驟104,否則執(zhí)行步驟116 ;
      [0068]具體地,終端判斷第一應(yīng)答數(shù)據(jù)中是否存在0x9000且數(shù)據(jù)格式正確,是則確定第一應(yīng)答數(shù)據(jù)符合第二預(yù)設(shè)要求,否則確定第一應(yīng)答數(shù)據(jù)不符合第二預(yù)設(shè)要求;
      [0069]本實(shí)施例中,第一應(yīng)答數(shù)據(jù)不符合第二預(yù)設(shè)要求包括:智能卡沒有目錄選擇功能,智能卡中的目錄選擇功能被鎖定,第一應(yīng)答數(shù)據(jù)中的文件控制信息格式錯誤,第一應(yīng)答數(shù)據(jù)中缺少必要的數(shù)據(jù);例如,必要的數(shù)據(jù)包括以0x6F、0x84、0xA5或0x88為標(biāo)簽的數(shù)據(jù);
      [0070]例如,本實(shí)施例中,第一應(yīng)答數(shù)據(jù)為:6F 2F 84 OE 31 50 41 59 2E 53 59 53 2E44 44 46 30 31 A5 ID 88 01 01 5F 2D 08 65 73 65 6E 66 72 64 65 9F 11 01 01 BFOC 08 85 06 12 34 56 78 9A BC 90 00 ;其中,最后2個字節(jié)為0x9000,確定第一應(yīng)答數(shù)據(jù)正確;第一應(yīng)答數(shù)據(jù)中,0x6F為文件控制信息模板的標(biāo)簽,0x2F為文件控制信息模板的長度,0x84為DF名的標(biāo)簽,其后的一個字節(jié)OxOE為DF名的長度,其后的31 50 41 59 2E53 59 53 2E 44 44 46 30 31 為 DF (Dedicated File,專用文件)名的內(nèi)容,0xA5 為文件控制信息的標(biāo)簽,其后的一個字節(jié)OxlD為文件控制信息的長度,其后的88 01 01 5F 2D08 65 73 65 6E 66 72 64 65 9F 11 01 01 BF OC 08 85 06 12 34 56 78 9A BC 為文件控制信息的內(nèi)容,其中0x88為SFI(Short File Identifier,短文件標(biāo)識)的標(biāo)簽,其后的一個字節(jié)0x01為SFI名的長度,其后的0x01為SFI的值,9F 11為發(fā)行方代碼表索引的標(biāo)簽,其后的一個字節(jié)0x01為發(fā)行方代碼表索引的長度,其后的0x01為發(fā)行方代碼表索引的值;
      [0071]步驟104:終端初始化應(yīng)用候選列表;
      [0072]具體地,終端初始化應(yīng)用候選列表為清空應(yīng)用候選列表;
      [0073]步驟105:終端判斷第一應(yīng)答數(shù)據(jù)中是否存在正確的短文件標(biāo)識,是則初始化當(dāng)前記錄號,執(zhí)行步驟106,否則執(zhí)行步驟116 ;
      [0074]具體地,終端判斷第一應(yīng)答數(shù)據(jù)中是否存在第一標(biāo)簽值,不存在則確定第一應(yīng)答數(shù)據(jù)中不存在SFI (Short File Identifier,短文件標(biāo)識),存在則確定第一應(yīng)答數(shù)據(jù)中存在SFI,獲取第一標(biāo)簽值之后的SFI的值,繼續(xù)判斷獲取到的SFI的值是否在第一范圍內(nèi),是則確定第一應(yīng)答數(shù)據(jù)中存在正確的SFI,否則確定第一應(yīng)答數(shù)據(jù)中不存在正確的SFI ;優(yōu)選地,當(dāng)前記錄號的初始值為I;
      [0075]例如,第一標(biāo)簽值為0x88,第一范圍為0x01至OxOA ;獲取0x88之后的SFI的值為0x01,則SFI在第一范圍內(nèi);
      [0076]步驟106:終端根據(jù)短文件標(biāo)識和當(dāng)前記錄號向智能卡發(fā)送讀記錄指令;
      [0077]例如,終端根據(jù)SFI和當(dāng)前記錄號向智能卡發(fā)送第一讀記錄指令00 B2 01 OC00,智能卡根據(jù)第一讀記錄指令返回的數(shù)據(jù)為6C 57,終端從該數(shù)據(jù)中得到記錄長度0x57,終端再根據(jù)SFI和記錄長度向智能卡發(fā)送第二讀記錄指令00 B2 01 OC 57;
      [0078]步驟107:終端接收智能卡根據(jù)讀記錄指令返回的第二應(yīng)答數(shù)據(jù),根據(jù)第二應(yīng)答數(shù)據(jù)判斷是否已讀取完智能卡中的記錄,是則執(zhí)行步驟108,否則執(zhí)行步驟109 ;
      [0079]具體地,終端判斷第二應(yīng)答數(shù)據(jù)是否為0x6A83,是則已讀取完智能卡中的記錄,否則未讀取完智能卡中的記錄;
      [0080]步驟108:終端判斷應(yīng)用候選列表是否為空,是則執(zhí)行步驟116,否則執(zhí)行步驟129 ;
      [0081]步驟109:終端判斷第二應(yīng)答數(shù)據(jù)是否符合第三預(yù)設(shè)要求,是則執(zhí)行步驟110,否則初始化應(yīng)用候選列表,執(zhí)行步驟116 ;
      [0082]具體地,終端判斷第二應(yīng)答數(shù)據(jù)中是否存在0x9000且數(shù)據(jù)格式正確,是則確定第二應(yīng)答數(shù)據(jù)符合第三預(yù)設(shè)要求,否則確定第二應(yīng)答數(shù)據(jù)不符合第三預(yù)設(shè)要求;
      [0083]本實(shí)施例中,第二應(yīng)答數(shù)據(jù)不符合第三預(yù)設(shè)要求包括:第二應(yīng)答數(shù)據(jù)格式錯誤,缺少應(yīng)用目錄名、應(yīng)用標(biāo)簽等;
      [0084]例如,本實(shí)施例中,第二應(yīng)答數(shù)據(jù)為:70 55 61 14 4F 07 AO 00 00 00 99 90 9050 06 4E 4F 4E 45 4D 56 87 01 81 61 28 4F 07 AO 00 00 00 03 10 10 50 OA 56 49
      5341 43 52 45 44 49 54 87 01 82 9F 12 OD 43 52 45 44 49 54 4F 44 45 56 49 5341 61 13 4F 08 AO 00 00 00 03 10 10 03 50 04 41 50 50 33 87 01 03 90 00,其中,最后2個字節(jié)為0x9000,確定第二應(yīng)答數(shù)據(jù)正確;
      [0085]步驟110:終端判斷第二應(yīng)答數(shù)據(jù)中是否存在入口標(biāo)識,是則執(zhí)行步驟111,否則更新當(dāng)前記錄號,返回步驟106 ;
      [0086]具體地,終端判斷第一應(yīng)答數(shù)據(jù)中是否存在第二標(biāo)簽值,是則確定第二應(yīng)答數(shù)據(jù)中存在入口標(biāo)識,否則確定第二應(yīng)答數(shù)據(jù)中不存在入口標(biāo)識;
      [0087]例如,入口標(biāo)識即第二標(biāo)簽值為0x61 ;
      [0088]步驟111:終端獲取第二應(yīng)答數(shù)據(jù)中的第一個入口標(biāo)識作為當(dāng)前入口標(biāo)識;
      [0089]例如,終端在第二應(yīng)答數(shù)據(jù)中從前向后查找第二標(biāo)簽值0x61,在第3個字節(jié)查找到0x61,則將第3個字節(jié)的0x61作為當(dāng)前入口標(biāo)識;該入口標(biāo)識與下一個入口標(biāo)識之間的數(shù)據(jù)為該入口標(biāo)識的應(yīng)用信息;
      [0090]例如,當(dāng)前入口標(biāo)識,即第3個字節(jié)的0x61之后的應(yīng)用信息為:14 4F 07 AO 00
      0000 99 90 90 50 06 4E 4F 4E 45 4D 56 87 01 81,其中,0x14 為該應(yīng)用信息的長度,0x4F為ADF(Applicat1n Directory File,應(yīng)用目錄文件)的標(biāo)簽,其后的一個字節(jié)0x07為ADF名的長度,其后的AO 00 00 00 99 90 90為ADF的內(nèi)容,0x50為應(yīng)用標(biāo)簽的標(biāo)簽,其后的一個字節(jié)0x06為應(yīng)用標(biāo)簽的長度,其后的4E 4F 4E 45 4D 56為應(yīng)用標(biāo)簽的內(nèi)容,0x87為應(yīng)用優(yōu)先級指示符的標(biāo)簽,其后的一個字節(jié)0x01為應(yīng)用優(yōu)先級指示符的長度,其后的0x87為應(yīng)用優(yōu)先級指示符的內(nèi)容,該應(yīng)用信息中無應(yīng)用優(yōu)先名;
      [0091]步驟112:終端判斷當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件與預(yù)設(shè)的應(yīng)用序列號列表中的應(yīng)用序列號是否完整匹配,是則根據(jù)當(dāng)前入口標(biāo)識之后的應(yīng)用信息更新應(yīng)用候選列表,執(zhí)行步驟115,否則執(zhí)行步驟113 ;
      [0092]具體地,終端判斷是否能夠在預(yù)設(shè)的應(yīng)用序列號列表中查找到與當(dāng)前入口標(biāo)識之后的ADF完全相同的應(yīng)用序列號,是則確定當(dāng)前入口標(biāo)識之后中的ADF與應(yīng)用序列號列表中的應(yīng)用序列號完整匹配,否則確定當(dāng)前入口標(biāo)識之后中的ADF不與應(yīng)用序列號列表中的應(yīng)用序列號完整匹配;更新應(yīng)用候選列表為:終端將當(dāng)前入口標(biāo)識之后的應(yīng)用信息中的應(yīng)用標(biāo)簽、應(yīng)用優(yōu)先級指示符、應(yīng)用優(yōu)先名和ADF即應(yīng)用序列號存儲到應(yīng)用候選列表中;
      [0093]例如,本實(shí)施例中,更新應(yīng)用候選列表為:終端將4F 07 A0 00 00 00 99 90 9050 06 4E 4F 4E 45 4D 56 87 01 81添加到應(yīng)用候選列表中;
      [0094]本實(shí)施例中,更新應(yīng)用候選列表之前還可以包括:初始化應(yīng)用候選列表;
      [0095]步驟113:終端根據(jù)預(yù)設(shè)的應(yīng)用序列號列表中與當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件對應(yīng)的應(yīng)用選擇指示器,判斷是否允許當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件與應(yīng)用序列號列表中的應(yīng)用序列號部分匹配,是則執(zhí)行步驟114,否則執(zhí)行步驟115 ;
      [0096]步驟114:終端判斷當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件與應(yīng)用序列號列表中的應(yīng)用序列號是否部分匹配,是則根據(jù)當(dāng)前入口標(biāo)識之后的應(yīng)用信息更新應(yīng)用候選列表,執(zhí)行步驟115,否則直接執(zhí)行步驟115 ;
      [0097]具體地,終端判斷是否能夠在應(yīng)用序列號列表中查找到與當(dāng)前入口標(biāo)識之后的ADF的預(yù)設(shè)部分相同的應(yīng)用序列號,是則確定當(dāng)前入口標(biāo)識之后的ADF與應(yīng)用序列號列表中的應(yīng)用序列號部分匹配,否則確定當(dāng)前入口標(biāo)識之后的ADF不與應(yīng)用序列號列表中的應(yīng)用序列號部分匹配;例如,ADF的預(yù)設(shè)部分為ADF的前7個字節(jié),若當(dāng)前入口標(biāo)識之后的ADF為A0 00 00 00 03 10 10 03,應(yīng)用序列號列表中的應(yīng)用序列號為A0 00 00 00 03 1010,則確定當(dāng)前入口標(biāo)識之后的ADF與應(yīng)用序列號列表中的應(yīng)用序列號部分匹配;更新應(yīng)用候選列表為:終端將當(dāng)前入口標(biāo)識之后的應(yīng)用信息中的應(yīng)用標(biāo)簽、應(yīng)用優(yōu)先級指示符、應(yīng)用優(yōu)先名和ADF即應(yīng)用序列號存儲到應(yīng)用候選列表中;
      [0098]本實(shí)施例中,更新應(yīng)用候選列表之前還可以包括:初始化應(yīng)用候選列表;
      [0099]步驟115:終端判斷當(dāng)前入口標(biāo)識之后是否還存在入口標(biāo)識,是則更新當(dāng)前入口標(biāo)識,返回步驟112,否則更新當(dāng)前記錄號,返回步驟106 ;
      [0100]具體地,終端在當(dāng)前入口標(biāo)識后查找第二標(biāo)簽值,判斷是否能夠查找到第二標(biāo)簽值,是則確定當(dāng)前入口標(biāo)識之后還存在入口標(biāo)識,否則確定當(dāng)前入口標(biāo)識之后不存在入口標(biāo)識;更新當(dāng)前入口標(biāo)識為將當(dāng)前入口標(biāo)識的后一個入口標(biāo)識作為當(dāng)前入口標(biāo)識;優(yōu)選地,更新當(dāng)前記錄號為將當(dāng)前記錄號自加1;
      [0101]例如,本實(shí)施例中,第二應(yīng)答數(shù)據(jù)中還包括2個入口標(biāo)識,分別為:
      [0102]第25個字節(jié)為0x61,該入口標(biāo)識之后的應(yīng)用信息為:28 4F 07 A0 00 00 00 0310 10 50 0A 56 49 53 41 43 52 45 44 49 54 87 01 82 9F 12 0D 43 52 45 44 49 544F 44 45 56 49 53 41 ;其中,0x28為該應(yīng)用信息的長度,0x4F為ADF的標(biāo)簽,其后的一個字節(jié)0x07為ADF名的長度,其后的AO 00 00 00 03 10 10為ADF的內(nèi)容,0x50為應(yīng)用標(biāo)簽的標(biāo)簽,其后的一個字節(jié)OxOA為應(yīng)用標(biāo)簽的長度,其后的56 49 53 41 43 52 45 44 4954為應(yīng)用標(biāo)簽的內(nèi)容,0x87為應(yīng)用優(yōu)先級指示符的標(biāo)簽,其后的一個字節(jié)0x01為應(yīng)用優(yōu)先級指示符的長度,其后的0x82為應(yīng)用優(yōu)先級指示符的內(nèi)容,9F 12為應(yīng)用優(yōu)先名的標(biāo)簽,其后的一個字節(jié)OxOD為應(yīng)用優(yōu)先名的長度,其后的43 52 45 44 49 54 4F 44 45 56 49 5341為應(yīng)用優(yōu)先名的內(nèi)容;
      [0103]第67個字節(jié)為0x61,該入口標(biāo)識之后的應(yīng)用信息為:13 4F 08 AO 00 00 00 0310 10 03 50 04 41 50 50 33 87 01 03,其中,0x13為該應(yīng)用信息的長度,0x4F為ADF的標(biāo)簽,其后的一個字節(jié)0x08為ADF名的長度,其后的AO 00 00 00 03 10 10 03為ADF的內(nèi)容,0x50為應(yīng)用標(biāo)簽的標(biāo)簽,其后的一個字節(jié)0x04為應(yīng)用標(biāo)簽的長度,其后的41 50 5033為應(yīng)用標(biāo)簽的內(nèi)容,0x87為應(yīng)用優(yōu)先級指示符的標(biāo)簽,其后的一個字節(jié)0x01為應(yīng)用優(yōu)先級指示符的長度,其后的03為應(yīng)用優(yōu)先級指示符的內(nèi)容,該應(yīng)用信息中無應(yīng)用優(yōu)先名;
      [0104]步驟116:終端初始化應(yīng)用候選列表,獲取預(yù)設(shè)的應(yīng)用序列號列表中的第一個應(yīng)用序列號作為當(dāng)前應(yīng)用序列號;
      [0105]例如,當(dāng)前應(yīng)用序列號為AO 00 00 00 03 10 10;
      [0106]步驟117:終端根據(jù)當(dāng)前應(yīng)用序列號向智能卡發(fā)送第二選擇指令;
      [0107]例如,第二選擇指令為00 A4 04 00 07 AO 00 00 00 03 10 10 ;
      [0108]步驟118:終端接收智能卡根據(jù)第二選擇指令返回的第三應(yīng)答數(shù)據(jù),判斷第三應(yīng)答數(shù)據(jù)是否符合第五預(yù)設(shè)要求,是則執(zhí)行步驟119,否則執(zhí)行步驟127 ;
      [0109]具體地,終端判斷第三應(yīng)答數(shù)據(jù)中是否存在0x9000且數(shù)據(jù)格式正確,是則確定第三應(yīng)答數(shù)據(jù)符合第五預(yù)設(shè)要求,否則確定第三應(yīng)答數(shù)據(jù)不符合第五預(yù)設(shè)要求;
      [0110]本實(shí)施例中,第三應(yīng)答數(shù)據(jù)不符合第五預(yù)設(shè)要求包括:狀態(tài)碼不為0x9000或0x6283,文件控制信息格式錯誤;第三應(yīng)答數(shù)據(jù)中缺少必要的數(shù)據(jù);例如,必要的數(shù)據(jù)包括以0x6F、0x84、0xA5為標(biāo)簽的數(shù)據(jù);
      [0111]例如,本實(shí)施例中,第三應(yīng)答數(shù)據(jù)為6F 32 84 07 AO 00 00 00 03 10 10 A5 2787 01 01 9F 38 12 9F IA 02 9F 33 03 9F 40 05 9F IB 04 9F 09 02 9F 35 01 5F 2D08 65 73 65 6E 66 72 64 65 9F 11 01 01 90 00 ;其中,最后 2 個字節(jié)為 0x9000,確定第三應(yīng)答數(shù)據(jù)正確;0x84為DF名的標(biāo)簽,其后的一個字節(jié)0x07為DF名的長度,其后的AO 00
      0000 03 10 10為DF名的內(nèi)容,其后的一個字節(jié)0xA5為文件控制信息的標(biāo)簽,0x27為文件控制信息的長度,其后的 87 01 01 9F 38 12 9F IA 02 9F 33 03 9F 40 05 9F IB 049F 09 02 9F 35 01 5F 2D 08 65 73 65 6E 66 72 64 65 9F 11 01 01 為文件控制信息的內(nèi)容;
      [0112]步驟119:終端判斷第三應(yīng)答數(shù)據(jù)中的專用文件名是否與當(dāng)前應(yīng)用序列號完全匹配,是則執(zhí)行步驟120,否則執(zhí)行步驟121 ;
      [0113]例如,本實(shí)施例中,DF名與當(dāng)前應(yīng)用序列號均為AO 00 00 00 03 10 10,則DF名與當(dāng)前應(yīng)用序列號完全匹配,執(zhí)行步驟121 ;
      [0114]若第三應(yīng)答數(shù)據(jù)為6F 33 84 08 AO 00 00 00 03 10 10 00 A5 27 87 01 01 9F38 12 9F IA 02 9F 33 03 9F 40 05 9F IB 04 9F 09 02 9F 35 01 5F 2D 08 65 73 656E 66 72 64 65 9F 11 Ol 01 90 00 ;其中,0x84為DF名的標(biāo)簽,其后的一個字節(jié)0x08為DF名的長度,其后的AO 00 00 00 03 10 10 00為DF名的內(nèi)容,其后的一個字節(jié)0xA5為文件控制信息的標(biāo)簽,0x27為文件控制信息的長度,其后的87 01 01 9F 38 12 9F IA
      029F 33 03 9F 40 05 9F IB 04 9F 09 02 9F 35 01 5F 2D 08 65 73 65 6E 66 72 6465 9F 11 01 01為文件控制信息的內(nèi)容,則DF名與當(dāng)前應(yīng)用序列號不完全匹配,執(zhí)行步驟122 ;
      [0115]步驟120:終端根據(jù)第三應(yīng)答數(shù)據(jù)判斷應(yīng)用是否被鎖定,是則執(zhí)行步驟127,否則根據(jù)第三應(yīng)答數(shù)據(jù)中的文件控制信息更新應(yīng)用候選列表,執(zhí)行步驟127 ;
      [0116]具體地,終端判斷第三應(yīng)答數(shù)據(jù)是否為0x6283,是則確定應(yīng)用被鎖定,否則確定應(yīng)用未被鎖定;更新應(yīng)用候選列表為:終端將文件控制信息中的應(yīng)用標(biāo)簽、應(yīng)用優(yōu)先級指示符和第三應(yīng)答數(shù)據(jù)中的DF名即應(yīng)用序列號存儲到應(yīng)用候選列表中;
      [0117]例如,第三應(yīng)答數(shù)據(jù)中的文件控制信息為87 01 01 9F 38 12 9F IA 02 9F 33
      039F 40 05 9F IB 04 9F 09 02 9F 35 01 5F 2D 08 65 73 65 6E 66 72 64 65 9F 11
      0101,其中,0x87為應(yīng)用優(yōu)先級指示符的標(biāo)簽,其后的一個字節(jié)0x01為應(yīng)用優(yōu)先級指示符的長度,其后的0x01為應(yīng)用優(yōu)先級指示符的內(nèi)容,9F 38為TOOL (Processing Opt1ns DataObject List,處理選項(xiàng)數(shù)據(jù)對象列表)的標(biāo)簽,其后的一個字節(jié)0x12為TOOL的長度,其后的 9F IA 02 9F 33 03 9F 40 05 9F IB 04 9F 09 02 9F 35 01 為 PDOL 的內(nèi)容,9F 11 為發(fā)行方代碼表索引的標(biāo)簽,其后的一個字節(jié)0x01為發(fā)行方代碼表索引的長度,其后的0x01為發(fā)行方代碼表索引的值;更新應(yīng)用候選列表為:終端將84 08 AO 00 00 00 03 10 10
      0087 01 01添加到應(yīng)用候選列表中;
      [0118]本實(shí)施例中,更新應(yīng)用候選列表之前還可以包括:初始化應(yīng)用候選列表;
      [0119]步驟121:終端根據(jù)預(yù)設(shè)的應(yīng)用序列號列表中與當(dāng)前應(yīng)用序列號對應(yīng)的應(yīng)用選擇指示器,判斷是否允許第三應(yīng)答數(shù)據(jù)中的專用文件名與當(dāng)前應(yīng)用序列號部分匹配,是則執(zhí)行步驟122,否則執(zhí)行步驟127 ;
      [0120]步驟122:終端判斷第三應(yīng)答數(shù)據(jù)中的專用文件名與當(dāng)前應(yīng)用序列號是否部分匹配,是則執(zhí)行步驟123,否則執(zhí)行步驟127 ;
      [0121]具體地,終端判斷第三應(yīng)答數(shù)據(jù)中的專用文件名的預(yù)設(shè)部分與當(dāng)前應(yīng)用序列號是否相同,是則確定專用文件名與當(dāng)前應(yīng)用序列號部分匹配,否則確定專用文件名不與當(dāng)前應(yīng)用序列號部分匹配;例如,專用文件名的預(yù)設(shè)部分為專用文件名的前7個字節(jié),若專用文件名為AO 00 00 00 03 10 10 00,當(dāng)前應(yīng)用序列號為AO 00 00 00 03 10 10,則確定專用文件名與當(dāng)前應(yīng)用序列號部分匹配;
      [0122]步驟123:終端根據(jù)第三應(yīng)答數(shù)據(jù)判斷應(yīng)用是否被鎖定,是則執(zhí)行步驟124,否則根據(jù)第三應(yīng)答數(shù)據(jù)中的文件控制信息更新應(yīng)用候選列表,執(zhí)行步驟124 ;
      [0123]具體地,終端判斷第三應(yīng)答數(shù)據(jù)是否為0x6283,是則確定應(yīng)用被鎖定,否則確定應(yīng)用未被鎖定;
      [0124]具體地,更新應(yīng)用候選列表為:終端將文件控制信息中的應(yīng)用標(biāo)簽、應(yīng)用優(yōu)先級指示符和第三應(yīng)答數(shù)據(jù)中的DF名存儲到應(yīng)用候選列表中;其中,DF名作為應(yīng)用序列號進(jìn)行存儲;
      [0125]例如,第三應(yīng)答數(shù)據(jù)中的文件控制信息為87 01 01 9F 38 12 9F IA 02 9F 33039F 40 05 9F IB 04 9F 09 02 9F 35 01 5F 2D 08 65 73 65 6E 66 72 64 65 9F 11
      0101,其中,0x87為應(yīng)用優(yōu)先級指示符的標(biāo)簽,其后的一個字節(jié)0x01為應(yīng)用優(yōu)先級指示符的長度,其后的0x01為應(yīng)用優(yōu)先級指示符的內(nèi)容,9F 38為TOOL (Processing Opt1ns DataObject List,處理選項(xiàng)數(shù)據(jù)對象列表)的標(biāo)簽,其后的一個字節(jié)0x12為TOOL的長度,其后的 9F IA 02 9F 33 03 9F 40 05 9F IB 04 9F 09 02 9F 35 01 為 PDOL 的內(nèi)容,9F 11 為發(fā)行方代碼表索引的標(biāo)簽,其后的一個字節(jié)0x01為發(fā)行方代碼表索引的長度,其后的0x01為發(fā)行方代碼表索引的值;更新應(yīng)用候選列表為:終端將84 08 AO 00 00 00 03 10 1000 87 01 01添加到應(yīng)用候選列表中;
      [0126]本實(shí)施例中,更新應(yīng)用候選列表之前還可以包括:初始化應(yīng)用候選列表;
      [0127]步驟124:終端根據(jù)當(dāng)前應(yīng)用序列號向智能卡發(fā)送第三選擇指令,接收智能卡根據(jù)第三選擇指令返回的第四應(yīng)答數(shù)據(jù);
      [0128]例如,第三選擇指令為00 A4 04 02 07 AO 00 00 00 03 10 10,
      [0129]步驟125:終端判斷第四應(yīng)答數(shù)據(jù)是否符合第四預(yù)設(shè)要求,是則執(zhí)行步驟126,否則執(zhí)行步驟127 ;
      [0130]步驟126:終端根據(jù)第四應(yīng)答數(shù)據(jù)判斷應(yīng)用是否被鎖定,是則返回步驟124,否則根據(jù)第四應(yīng)答數(shù)據(jù)中的文件控制信息更新應(yīng)用候選列表,返回步驟124 ;
      [0131]具體地,終端判斷第四應(yīng)答數(shù)據(jù)是否為0x6283,是則確定應(yīng)用被鎖定,否則確定應(yīng)用未被鎖定;更新應(yīng)用候選列表為:終端將文件控制信息中的應(yīng)用標(biāo)簽、應(yīng)用優(yōu)先級指示符和第四應(yīng)答數(shù)據(jù)中的DF名存儲到應(yīng)用候選列表中;其中,DF名作為應(yīng)用序列號進(jìn)行存儲;
      [0132]例如,第四應(yīng)答數(shù)據(jù)為6F 33 84 08 AO 00 00 00 03 10 10 01 A5 27 87 01 019F 38 12 9F IA 02 9F 33 03 9F 40 05 9F IB 04 9F 09 02 9F 35 01 5F 2D 08 65 73
      656E 66 72 64 65 9F 11 01 01 90 00,其中,0x84為DF名的標(biāo)簽,其后的一個字節(jié)0x08為DF名的長度,其后的AO 00 00 00 03 10 10 01為DF名的內(nèi)容,其后的一個字節(jié)0xA5為文件控制信息的標(biāo)簽,0x27為文件控制信息的長度,其后的87 01 01 9F 38 12 9F IA 029F 33 03 9F 40 05 9F IB 04 9F 09 02 9F 35 01 5F 2D 08 65 73 65 6E 66 72 64 659F 11 01 01為文件控制信息的內(nèi)容,其中,0x87為應(yīng)用優(yōu)先級指示符的標(biāo)簽,其后的一個字節(jié)0x01為應(yīng)用優(yōu)先級指示符的長度,其后的0x01為應(yīng)用優(yōu)先級指示符的內(nèi)容,9F 38為PDOL (Processing Opt1ns Data Object List,處理選項(xiàng)數(shù)據(jù)對象列表)的標(biāo)簽,其后的一個字節(jié)0x12 為 PDOL 的長度,其后的 9F IA 02 9F 33 03 9F 40 05 9F IB 04 9F 09 02 9F35 01為TOOL的內(nèi)容,9F 11為發(fā)行方代碼表索引的標(biāo)簽,其后的一個字節(jié)0x01為發(fā)行方代碼表索引的長度,其后的0x01為發(fā)行方代碼表索引的值;更新應(yīng)用候選列表為:終端將84 08 AO 00 00 00 03 10 10 01 87 01 01添加到應(yīng)用候選列表中;
      [0133]本實(shí)施例中,更新應(yīng)用候選列表之前還可以包括:初始化應(yīng)用候選列表;
      [0134]步驟127:終端判斷應(yīng)用序列號列表中的當(dāng)前應(yīng)用序列號之后是否存在應(yīng)用序列號,是則更新當(dāng)前應(yīng)用序列號,返回步驟117,否則執(zhí)行步驟128 ;
      [0135]步驟128:終端根據(jù)應(yīng)用候選列表判斷是否與智能卡有共同支持的應(yīng)用,是則執(zhí)行步驟129,否則結(jié)束;
      [0136]具體地,終端判斷應(yīng)用候選列表中是否存儲有應(yīng)用信息,是則確定與智能卡有共同支持的應(yīng)用,否則確定與智能卡沒有共同支持的應(yīng)用;
      [0137]例如,應(yīng)用候選列表為:4F07 AO 00 00 00 99 90 90 50 06 4E 4F 4E 45 4D56 87 01 81 4F 07 AO 00 00 00 03 10 10 50 OA 56 49 53 41 43 52 45 44 49 54 87
      0182 9F 12 OD 43 52 45 44 49 54 4F 44 45 56 49 53 41 4F 08 AO 00 00 00 03 1010 03 50 04 41 50 50 33 87 01 03 ;該應(yīng)用候選列表中包括3個應(yīng)用的應(yīng)用信息,分別為:第一個應(yīng)用 4F 07 AO 00 00 00 99 90 90 50 06 4E 4F 4E 45 4D 56 87 01 81,第二個應(yīng)用 4F 07 AO 00 00 00 03 10 10 50 OA 56 49 53 41 43 52 45 44 49 54 87 01 829F 12 OD 43 52 45 44 49 54 4F 44 45 56 49 53 41,第三個應(yīng)用 4F 08 AO 00 00 0003 10 10 03 50 04 41 50 50 33 87 01 03 ;
      [0138]步驟129:終端判斷是否僅有一個與智能卡有共同支持或相互支持的應(yīng)用,是則執(zhí)行步驟130,否則執(zhí)行步驟133 ;
      [0139]步驟130:終端根據(jù)應(yīng)用候選列表中的應(yīng)用優(yōu)先級指示符,判斷該應(yīng)用是否需要用戶進(jìn)行確認(rèn),是則執(zhí)行步驟131,否則選擇該應(yīng)用,執(zhí)行步驟137 ;
      [0140]具體地,終端判斷應(yīng)用優(yōu)先級指示符是否符合第一預(yù)設(shè)格式,是則確定該應(yīng)用需要用戶進(jìn)行確認(rèn),否則確定該應(yīng)用不需要用戶進(jìn)行確認(rèn);
      [0141]優(yōu)選地,第一預(yù)設(shè)格式為應(yīng)用優(yōu)先級指示符的最高位為I ;
      [0142]例如,第一個應(yīng)用的應(yīng)用優(yōu)先級指示符為0x81,應(yīng)用優(yōu)先級指示符的最高位為1,則確定該應(yīng)用需要用戶進(jìn)行確認(rèn);第二個應(yīng)用的應(yīng)用優(yōu)先級指示符為0x82,應(yīng)用優(yōu)先級指示符的最高位為1,則確定該應(yīng)用需要用戶進(jìn)行確認(rèn);第三個應(yīng)用的應(yīng)用優(yōu)先級指示符為0x03,應(yīng)用優(yōu)先級指示符的最高位不為1,則確定該應(yīng)用不需要用戶進(jìn)行確認(rèn);
      [0143]步驟131:終端判斷是否支持用戶確認(rèn),是則執(zhí)行步驟132,否則結(jié)束;
      [0144]步驟132:終端顯示該應(yīng)用,判斷是否在預(yù)設(shè)時間內(nèi)接收到觸發(fā),是則選擇該應(yīng)用,執(zhí)行步驟137,否則結(jié)束;
      [0145]步驟133:終端顯示應(yīng)用候選列表;
      [0146]具體地,若應(yīng)用優(yōu)先級指示符存在且應(yīng)用的優(yōu)先級不同,則以應(yīng)用優(yōu)先級指示符優(yōu)先級從高到低顯示應(yīng)用候選列表;若應(yīng)用優(yōu)先級指示符存在且應(yīng)用的優(yōu)先級相同,則以自定義優(yōu)先順序或智能卡給出的優(yōu)先順序顯示應(yīng)用候選列表;若應(yīng)用優(yōu)先級指示符不存在的應(yīng)用,則以自定義優(yōu)先順序或智能卡給出的優(yōu)先順序顯示應(yīng)用候選列表;
      [0147]例如,第一個應(yīng)用的應(yīng)用優(yōu)先級指示符為0x81,第二個應(yīng)用的應(yīng)用優(yōu)先級指示符為0x82,第三個應(yīng)用的應(yīng)用優(yōu)先級指示符為0x03,則先顯示第一個應(yīng)用的應(yīng)用信息,再顯示第二個應(yīng)用的應(yīng)用信息,最后顯示第三個應(yīng)用的應(yīng)用信息;第一個應(yīng)用的應(yīng)用標(biāo)簽為4E4F 4E 45 4D 56,則顯示NONEMV ;第二個應(yīng)用的應(yīng)用標(biāo)簽為56 49 53 41 43 52 45 44 4954,應(yīng)用優(yōu)先名為43 52 45 44 49 54 4F 44 45 56 49 53 41,由于發(fā)行方代碼表索引的值為0x01,則終端不顯示應(yīng)用標(biāo)簽,顯示應(yīng)用優(yōu)先名,即顯示CREDITODEVISA ;第三個應(yīng)用的應(yīng)用標(biāo)簽為41 50 50 33,則顯示APP3;
      [0148]步驟134:終端判斷是否支持用戶確認(rèn),是則執(zhí)行步驟135,否則執(zhí)行步驟136 ;
      [0149]步驟135:終端判斷是否在預(yù)設(shè)時間內(nèi)接收到觸發(fā),是則根據(jù)觸發(fā)選擇對應(yīng)的應(yīng)用,執(zhí)行步驟137,否則結(jié)束;
      [0150]步驟136:終端根據(jù)應(yīng)用優(yōu)先級指示符,選擇不需要用戶進(jìn)行確認(rèn)的應(yīng)用中優(yōu)先級最聞的應(yīng)用,執(zhí)行步驟137 ;
      [0151]優(yōu)選地,不需要用戶進(jìn)行確認(rèn)的應(yīng)用的應(yīng)用優(yōu)先級指示符的最高位為O ;
      [0152]例如,本實(shí)施例中,第三個應(yīng)用的應(yīng)用優(yōu)先級指示符為03,應(yīng)用優(yōu)先級指示符的最高位為0,則確定該應(yīng)用不需要用戶進(jìn)行確認(rèn);
      [0153]該步驟還包括,終端刪除應(yīng)用候選列表中需要用戶進(jìn)行確認(rèn)的應(yīng)用;
      [0154]優(yōu)選地,終端刪除應(yīng)用優(yōu)先級指示符為第一預(yù)設(shè)格式的應(yīng)用;
      [0155]步驟137:終端根據(jù)與選擇的應(yīng)用對應(yīng)的應(yīng)用序列號,向智能卡發(fā)送第四選擇指令;
      [0156]例如,本實(shí)施例中,用戶選擇第一個應(yīng)用,則終端獲取與用戶選擇的應(yīng)用對應(yīng)的應(yīng)用序列號,即應(yīng)用序列號為AO 00 00 00 99 90 90 ;則第四選擇指令為00 A4 04 00 07 AO
      0000 00 99 90 90 ;
      [0157]步驟138:終端接收智能卡根據(jù)第四選擇指令返回的第五應(yīng)答數(shù)據(jù),判斷第五應(yīng)答數(shù)據(jù)是否正確,是則執(zhí)行步驟139,否則在應(yīng)用候選列表中刪除選擇的應(yīng)用,返回步驟128 ;
      [0158]例如,第五應(yīng)答數(shù)據(jù)為6F 3A 84 07 AO 00 00 00 99 90 90 A5 2F 50 06 4E 4F4E 45 4D 56 87 01 81 9F 38 12 9F IA 02 9F 33 03 9F 40 05 9F IB 04 9F 09 02 9F35 01 5F 2D 08 65 73 65 6E 66 72 64 65 9F 11 01 01 90 00,其中,最后 2 個字節(jié)為0x9000,確定第五應(yīng)答數(shù)據(jù)正確;0x84為DF名的標(biāo)簽,其后的一個字節(jié)0x07為DF名的長度,其后的AO 00 00 00 99 90 90為DF名的內(nèi)容,其后的一個字節(jié)0xA5為文件控制信息的標(biāo)簽,0x2F為文件控制信息的長度,其后的50 06 4E 4F 4E 45 4D 56 87 01 81 9F 38
      129F IA 02 9F 33 03 9F 40 05 9F IB 04 9F 09 02 9F 35 01 5F 2D 08 65 73 65 6E
      6672 64 65 9F 11 01 01的內(nèi)容,其中,0x50為應(yīng)用標(biāo)簽的標(biāo)簽,其后的一個字節(jié)0x06為應(yīng)用標(biāo)簽的長度,其后的4E 4F 4E 45 4D 56為應(yīng)用標(biāo)簽的內(nèi)容,0x87為應(yīng)用優(yōu)先級指示符的標(biāo)簽,其后的一個字節(jié)0x01為應(yīng)用優(yōu)先級指示符的長度,其后的0x81為應(yīng)用優(yōu)先級指示符的內(nèi)容,9F 38為TOOL的標(biāo)簽,其后的一個字節(jié)0x12為TOOL的長度,其后的9F IA 029F 33 03 9F 40 05 9F IB 04 9F 09 02 9F 35 01 為 PDOL 的內(nèi)容;
      [0159]步驟139:終端判斷第四選擇指令中的應(yīng)用序列號是否與第五應(yīng)答數(shù)據(jù)中的專用文件名完全匹配,是則選擇應(yīng)用成功,保存第五應(yīng)答數(shù)據(jù)中的處理選項(xiàng)數(shù)據(jù)對象列表,結(jié)束流程,否則在應(yīng)用候選列表中刪除選擇的應(yīng)用,返回步驟128 ;
      [0160]例如,第四選擇指令中的AID與第五應(yīng)答數(shù)據(jù)中的DF名均為AO 00 00 00 99 9090,則終端保存第五應(yīng)答數(shù)據(jù)中的TOOL:9F IA 02 9F 33 03 9F 40 05 9F IB 04 9F 09
      029F 35 01,應(yīng)用選擇結(jié)束;
      [0161]本實(shí)施例中,若終端選擇應(yīng)用成功,則終端和智能卡分別設(shè)置相同的應(yīng)用作為當(dāng)前應(yīng)用,即當(dāng)前應(yīng)用為第四選擇指令中的應(yīng)用序列號對應(yīng)的應(yīng)用。
      [0162]本實(shí)施例中提供的一種終端和智能卡協(xié)商選擇應(yīng)用的方法,既支持終端和智能卡根據(jù)目錄選擇功能協(xié)商選擇應(yīng)用,也支持終端和智能卡根據(jù)應(yīng)用序列號列表選擇功能協(xié)商選擇應(yīng)用,兼容性好;對于多應(yīng)用的智能卡,若智能卡中增加一個應(yīng)用,相應(yīng)地,終端中只需在應(yīng)用序列號列表中增加該應(yīng)用的序列號即可,升級快,不需要修改終端內(nèi)核,易于維護(hù)。
      [0163]實(shí)施例3
      [0164]本發(fā)明的實(shí)施例3提供了一種終端和智能卡協(xié)商選擇應(yīng)用的方法,如圖5所示,包括:
      [0165]步驟s1:終端初始化應(yīng)用候選列表,獲取預(yù)設(shè)的應(yīng)用序列號列表中的第一個應(yīng)用序列號作為當(dāng)前應(yīng)用序列號;
      [0166]步驟s2:終端根據(jù)當(dāng)前應(yīng)用序列號向智能卡發(fā)送第二選擇指令,接收智能卡根據(jù)第二選擇指令返回的第三應(yīng)答數(shù)據(jù),判斷第三應(yīng)答數(shù)據(jù)中的專用文件名是否與當(dāng)前應(yīng)用序列號匹配,是則根據(jù)第三應(yīng)答數(shù)據(jù)更新應(yīng)用候選列表,執(zhí)行步驟s3,否則執(zhí)行步驟s3 ;
      [0167]步驟s3:終端判斷應(yīng)用序列號列表中的當(dāng)前應(yīng)用序列號之后是否存在應(yīng)用序列號,是則更新當(dāng)前應(yīng)用序列號,返回步驟s2,否則執(zhí)行步驟s4 ;
      [0168]步驟s4:終端判斷應(yīng)用候選列表是否為空,是則執(zhí)行步驟s5,否則執(zhí)行步驟s9 ;
      [0169]步驟s5:終端獲取智能卡中的短文件標(biāo)識,初始化當(dāng)前記錄號;
      [0170]步驟s6:終端根據(jù)短文件標(biāo)識和當(dāng)前記錄號向智能卡發(fā)送讀記錄指令,接收智能卡根據(jù)讀記錄指令返回的第二應(yīng)答數(shù)據(jù),根據(jù)第二應(yīng)答數(shù)據(jù)判斷是否已讀取完智能卡中的記錄,是則執(zhí)行步驟s8,否則執(zhí)行步驟s7 ;
      [0171]步驟s7:終端判斷第二應(yīng)答數(shù)據(jù)中的應(yīng)用目錄文件與預(yù)設(shè)的應(yīng)用序列號列表中的應(yīng)用序列號是否匹配,是則根據(jù)第二應(yīng)答數(shù)據(jù)中的應(yīng)用信息更新應(yīng)用候選列表,更新當(dāng)前記錄號,返回步驟s6,否則更新當(dāng)前記錄號,返回步驟s6 ;
      [0172]步驟s8:終端根據(jù)應(yīng)用候選列表判斷是否與智能卡有共同支持的應(yīng)用,是則執(zhí)行步驟s9,否則結(jié)束;
      [0173]步驟s9:終端選擇一個應(yīng)用,再根據(jù)確定的應(yīng)用在應(yīng)用候選列表中獲取應(yīng)用的信息,根據(jù)獲取到的信息中的應(yīng)用序列號,向智能卡發(fā)送第四選擇指令,接收智能卡根據(jù)第四選擇指令返回的第五應(yīng)答數(shù)據(jù),判斷第五應(yīng)答數(shù)據(jù)是否符合第一預(yù)設(shè)要求,是則選擇應(yīng)用成功,保存第五應(yīng)答數(shù)據(jù)中的處理選項(xiàng)數(shù)據(jù)對象列表,結(jié)束流程,否則在應(yīng)用候選列表中刪除獲取到的應(yīng)用的信息,返回步驟s8。
      [0174]實(shí)施例4
      [0175]本發(fā)明的實(shí)施例4提供了一種終端和智能卡協(xié)商選擇應(yīng)用的方法,如圖6至圖8所示,包括:
      [0176]步驟201:終端初始化應(yīng)用候選列表,獲取預(yù)設(shè)的應(yīng)用序列號列表中的第一個應(yīng)用序列號作為當(dāng)前應(yīng)用序列號;
      [0177]例如,當(dāng)前應(yīng)用序列號為A0 00 00 00 03 10 10;
      [0178]步驟202:終端根據(jù)當(dāng)前應(yīng)用序列號向智能卡發(fā)送第二選擇指令;
      [0179]例如,第二選擇指令為00 A4 04 00 07 A0 00 00 00 03 10 10 ;
      [0180]步驟203:終端接收智能卡根據(jù)第二選擇指令返回的第三應(yīng)答數(shù)據(jù),根據(jù)第三應(yīng)答數(shù)據(jù)判斷智能卡是否被鎖定或不支持指令,是則選擇應(yīng)用失敗,結(jié)束,否則執(zhí)行步驟204 ;
      [0181]具體地,終端判斷第三應(yīng)答數(shù)據(jù)是否為0x6A81,是則確定智能卡是否被鎖定或不支持,否則確定智能卡未被鎖定且支持指令;
      [0182]步驟204:終端判斷第三應(yīng)答數(shù)據(jù)是否符合第五預(yù)設(shè)要求,是則執(zhí)行步驟205,否則執(zhí)行步驟213 ;
      [0183]具體地,終端判斷第三應(yīng)答數(shù)據(jù)中是否存在0x9000且數(shù)據(jù)格式正確,是則確定第三應(yīng)答數(shù)據(jù)符合第五預(yù)設(shè)要求,否則確定第三應(yīng)答數(shù)據(jù)不符合第五預(yù)設(shè)要求;
      [0184]本實(shí)施例中,第三應(yīng)答數(shù)據(jù)不符合第五預(yù)設(shè)要求包括:狀態(tài)碼不為0x9000或0x6283,文件控制信息格式錯誤;第三應(yīng)答數(shù)據(jù)中缺少必要的數(shù)據(jù);例如,必要的數(shù)據(jù)包括以0x6F、0x84、0xA5為標(biāo)簽的數(shù)據(jù);
      [0185]例如,本實(shí)施例中,第三應(yīng)答數(shù)據(jù)為6F 32 84 07 AO 00 00 00 03 10 10 A5 2787 01 01 9F 38 12 9F IA 02 9F 33 03 9F 40 05 9F IB 04 9F 09 02 9F 35 01 5F 2D08 65 73 65 6E 66 72 64 65 9F 11 01 01 90 00 ;其中,最后 2 個字節(jié)為 0x9000,確定第三應(yīng)答數(shù)據(jù)正確;0x84為DF名的標(biāo)簽,其后的一個字節(jié)0x07為DF名的長度,其后的AO 00
      0000 03 10 10為DF名的內(nèi)容,其后的一個字節(jié)0xA5為文件控制信息的標(biāo)簽,0x27為文件控制信息的長度,其后的 87 01 01 9F 38 12 9F IA 02 9F 33 03 9F 40 05 9F IB 049F 09 02 9F 35 01 5F 2D 08 65 73 65 6E 66 72 64 65 9F 11 01 01 為文件控制信息的內(nèi)容;
      [0186]步驟205:終端判斷第三應(yīng)答數(shù)據(jù)中的專用文件名是否與當(dāng)前應(yīng)用序列號完全匹配,是則執(zhí)行步驟206,否則執(zhí)行步驟207 ;
      [0187]例如,本實(shí)施例中,DF名與當(dāng)前應(yīng)用序列號均為AO 00 00 00 03 10 10 JUDFg
      與當(dāng)前應(yīng)用序列號完全匹配,執(zhí)行步驟206 ;
      [0188]若第三應(yīng)答數(shù)據(jù)為6F 33 84 08 AO 00 00 00 03 10 10 00 A5 27 87 01 01 9F38 12 9F IA 02 9F 33 03 9F 40 05 9F IB 04 9F 09 02 9F 35 01 5F 2D 08 65 73 656E 66 72 64 65 9F 11 01 01 90 00 ;其中,0x84為DF名的標(biāo)簽,其后的一個字節(jié)0x08為DF名的長度,其后的AO 00 00 00 03 10 10 00為DF名的內(nèi)容,其后的一個字節(jié)0xA5為文件控制信息的標(biāo)簽,0x27為文件控制信息的長度,其后的87 01 01 9F 38 12 9F IA
      029F 33 03 9F 40 05 9F IB 04 9F 09 02 9F 35 01 5F 2D 08 65 73 65 6E 66 72 6465 9F 11 01 01為文件控制信息的內(nèi)容,則DF名與當(dāng)前應(yīng)用序列號不完全匹配,執(zhí)行步驟207 ;
      [0189]步驟206:終端根據(jù)第三應(yīng)答數(shù)據(jù)判斷應(yīng)用是否被鎖定,是則執(zhí)行步驟213,否則根據(jù)第三應(yīng)答數(shù)據(jù)中的文件控制信息更新應(yīng)用候選列表,執(zhí)行步驟213 ;
      [0190]具體地,終端判斷第三應(yīng)答數(shù)據(jù)是否為0x6283,是則確定應(yīng)用被鎖定,否則確定應(yīng)用未被鎖定;更新應(yīng)用候選列表為:終端將文件控制信息中的應(yīng)用標(biāo)簽、應(yīng)用優(yōu)先級指示符和第三應(yīng)答數(shù)據(jù)中的DF名即應(yīng)用序列號存儲到應(yīng)用候選列表中;
      [0191]例如,第三應(yīng)答數(shù)據(jù)中的文件控制信息為87 01 01 9F 38 12 9F IA 02 9F 33
      039F 40 05 9F IB 04 9F 09 02 9F 35 01 5F 2D 08 65 73 65 6E 66 72 64 65 9F 11
      0101,其中,0x87為應(yīng)用優(yōu)先級指示符的標(biāo)簽,其后的一個字節(jié)0x01為應(yīng)用優(yōu)先級指示符的長度,其后的0x01為應(yīng)用優(yōu)先級指示符的內(nèi)容,9F 38為PDOL(Processing Opt1ns DataObject List,處理選項(xiàng)數(shù)據(jù)對象列表)的標(biāo)簽,其后的一個字節(jié)0x12為TOOL的長度,其后的 9F IA 02 9F 33 03 9F 40 05 9F IB 04 9F 09 02 9F 35 01 為 PDOL 的內(nèi)容,9F 11 為發(fā)行方代碼表索引的標(biāo)簽,其后的一個字節(jié)0x01為發(fā)行方代碼表索引的長度,其后的0x01為發(fā)行方代碼表索引的值;更新應(yīng)用候選列表為:終端將84 08 AO 00 00 00 03 10 1000 87 01 01添加到應(yīng)用候選列表中;
      [0192]本實(shí)施例中,更新應(yīng)用候選列表之前還可以包括:初始化應(yīng)用候選列表;
      [0193]步驟207:終端根據(jù)預(yù)設(shè)的應(yīng)用序列號列表中與當(dāng)前應(yīng)用序列號對應(yīng)的應(yīng)用選擇指示器,判斷是否允許第三應(yīng)答數(shù)據(jù)中的專用文件名與當(dāng)前應(yīng)用序列號部分匹配,是則執(zhí)行步驟208,否則執(zhí)行步驟213 ;
      [0194]步驟208:終端判斷第三應(yīng)答數(shù)據(jù)中的專用文件名與當(dāng)前應(yīng)用序列號是否部分匹配,是則執(zhí)行步驟209,否則執(zhí)行步驟213 ;
      [0195]具體地,終端判斷第三應(yīng)答數(shù)據(jù)中的專用文件名的預(yù)設(shè)部分與當(dāng)前應(yīng)用序列號是否相同,是則確定專用文件名與當(dāng)前應(yīng)用序列號部分匹配,否則確定專用文件名不與當(dāng)前應(yīng)用序列號部分匹配;例如,專用文件名的預(yù)設(shè)部分為專用文件名的前7個字節(jié),若專用文件名為AO 00 00 00 03 10 10 00,當(dāng)前應(yīng)用序列號為AO 00 00 00 03 10 10,則確定專用文件名與當(dāng)前應(yīng)用序列號部分匹配;
      [0196]步驟209:終端根據(jù)第三應(yīng)答數(shù)據(jù)判斷應(yīng)用是否被鎖定,是則執(zhí)行步驟210,否則根據(jù)第三應(yīng)答數(shù)據(jù)中的文件控制信息更新應(yīng)用候選列表,執(zhí)行步驟210 ;
      [0197]具體地,終端判斷第三應(yīng)答數(shù)據(jù)是否為0x6283,是則確定應(yīng)用被鎖定,否則確定應(yīng)用未被鎖定;
      [0198]具體地,更新應(yīng)用候選列表為:終端將文件控制信息中的應(yīng)用標(biāo)簽、應(yīng)用優(yōu)先級指示符和第三應(yīng)答數(shù)據(jù)中的DF名存儲到應(yīng)用候選列表中;其中,DF名作為應(yīng)用序列號進(jìn)行存儲;
      [0199]例如,第三應(yīng)答數(shù)據(jù)中的文件控制信息為87 01 01 9F 38 12 9F IA 02 9F 33
      039F 40 05 9F IB 04 9F 09 02 9F 35 01 5F 2D 08 65 73 65 6E 66 72 64 65 9F 11
      0101,其中,0x87為應(yīng)用優(yōu)先級指示符的標(biāo)簽,其后的一個字節(jié)0x01為應(yīng)用優(yōu)先級指示符的長度,其后的0x01為應(yīng)用優(yōu)先級指示符的內(nèi)容,9F 38為PDOL(Processing Opt1ns DataObject List,處理選項(xiàng)數(shù)據(jù)對象列表)的標(biāo)簽,其后的一個字節(jié)0x12為TOOL的長度,其后的 9F IA 02 9F 33 03 9F 40 05 9F IB 04 9F 09 02 9F 35 01 為 PDOL 的內(nèi)容,9F 11 為發(fā)行方代碼表索引的標(biāo)簽,其后的一個字節(jié)0x01為發(fā)行方代碼表索引的長度,其后的0x01為發(fā)行方代碼表索引的值;更新應(yīng)用候選列表為:終端將84 08 AO 00 00 00 03 10 1000 87 01 01添加到應(yīng)用候選列表中;
      [0200]本實(shí)施例中,更新應(yīng)用候選列表之前還可以包括:初始化應(yīng)用候選列表;
      [0201]步驟210:終端根據(jù)當(dāng)前應(yīng)用序列號向智能卡發(fā)送第三選擇指令,接收智能卡根據(jù)第三選擇指令返回的第四應(yīng)答數(shù)據(jù);
      [0202]例如,第三選擇指令為00 A4 04 02 07 AO 00 00 00 03 10 10,
      [0203]步驟211:終端判斷第四應(yīng)答數(shù)據(jù)是否符合第四預(yù)設(shè)要求,是則執(zhí)行步驟212,否則執(zhí)行步驟213 ;
      [0204]步驟212:終端根據(jù)第四應(yīng)答數(shù)據(jù)判斷應(yīng)用是否被鎖定,是則返回步驟210,否則根據(jù)第四應(yīng)答數(shù)據(jù)中的文件控制信息更新應(yīng)用候選列表,返回步驟210 ;
      [0205]具體地,終端判斷第四應(yīng)答數(shù)據(jù)是否為0x6283,是則確定應(yīng)用被鎖定,否則確定應(yīng)用未被鎖定;更新應(yīng)用候選列表為:終端將文件控制信息中的應(yīng)用標(biāo)簽、應(yīng)用優(yōu)先級指示符和第四應(yīng)答數(shù)據(jù)中的DF名存儲到應(yīng)用候選列表中;其中,DF名作為應(yīng)用序列號進(jìn)行存儲;
      [0206]例如,第四應(yīng)答數(shù)據(jù)為6F 33 84 08 A0 00 00 00 03 10 10 01 A5 27 87 01 019F 38 12 9F 1A 02 9F 33 03 9F 40 05 9F 1B 04 9F 09 02 9F 35 01 5F 2D 08 65 7365 6E 66 72 64 65 9F 11 01 01 90 00,其中,0x84為DF名的標(biāo)簽,其后的一個字節(jié)0x08為DF名的長度,其后的A0 00 00 00 03 10 10 01為DF名的內(nèi)容,其后的一個字節(jié)0xA5為文件控制信息的標(biāo)簽,0x27為文件控制信息的長度,其后的87 01 01 9F 38 12 9F 1A 029F 33 03 9F 40 05 9F 1B 04 9F 09 02 9F 35 01 5F 2D 08 65 73 65 6E 66 72 64 659F 11 01 01為文件控制信息的內(nèi)容,其中,0x87為應(yīng)用優(yōu)先級指示符的標(biāo)簽,其后的一個字節(jié)0x01為應(yīng)用優(yōu)先級指示符的長度,其后的0x01為應(yīng)用優(yōu)先級指示符的內(nèi)容,9F 38為PDOL (Processing Opt1ns Data Object List,處理選項(xiàng)數(shù)據(jù)對象列表)的標(biāo)簽,其后的一個字節(jié) 0x12 為 PD0L 的長度,其后的 9F 1A 02 9F 33 03 9F 40 05 9F 1B 04 9F 09 02 9F35 01為TOOL的內(nèi)容,9F 11為發(fā)行方代碼表索引的標(biāo)簽,其后的一個字節(jié)0x01為發(fā)行方代碼表索引的長度,其后的0x01為發(fā)行方代碼表索引的值;更新應(yīng)用候選列表為:終端將84 08 A0 00 00 00 03 10 10 01 87 01 01添加到應(yīng)用候選列表中;
      [0207]本實(shí)施例中,更新應(yīng)用候選列表之前還可以包括:初始化應(yīng)用候選列表;
      [0208]步驟213:終端判斷應(yīng)用序列號列表中的當(dāng)前應(yīng)用序列號之后是否存在應(yīng)用序列號,是則更新當(dāng)前應(yīng)用序列號,返回步驟202,否則執(zhí)行步驟214 ;
      [0209]步驟214:終端判斷應(yīng)用候選列表中是否存在應(yīng)用信息,是則執(zhí)行步驟229,否則執(zhí)行步驟215 ;
      [0210]步驟215:終端根據(jù)預(yù)設(shè)的專用文件名向智能卡發(fā)送第一選擇指令;
      [0211]例如,第一選擇指令為:00A4 04 00 0E 31 50 41 59 2E 53 59 53 2E 44 4446 30 31 ;其中,31 50 41 59 2E 53 59 53 2E 44 44 46 30 31 為預(yù)設(shè)的 DF (DedicatedFile,專用文件)名;
      [0212]步驟216:終端接收智能卡根據(jù)第一選擇指令返回的第一應(yīng)答數(shù)據(jù),判斷第一應(yīng)答數(shù)據(jù)是否符合第二預(yù)設(shè)要求,是則執(zhí)行步驟217,否則選擇應(yīng)用失敗,結(jié)束;
      [0213]具體地,終端判斷第一應(yīng)答數(shù)據(jù)中是否存在0x9000且數(shù)據(jù)格式正確,是則確定第一應(yīng)答數(shù)據(jù)符合第二預(yù)設(shè)要求,否則確定第一應(yīng)答數(shù)據(jù)不符合第二預(yù)設(shè)要求;
      [0214]本實(shí)施例中,第一應(yīng)答數(shù)據(jù)不符合第二預(yù)設(shè)要求包括:智能卡沒有目錄選擇功能,智能卡中的目錄選擇功能被鎖定,第一應(yīng)答數(shù)據(jù)中的文件控制信息格式錯誤,第一應(yīng)答數(shù)據(jù)中缺少必要的數(shù)據(jù);例如,必要的數(shù)據(jù)包括以0x6F、0x84、0xA5或0x88為標(biāo)簽的數(shù)據(jù);
      [0215]例如,本實(shí)施例中,第一應(yīng)答數(shù)據(jù)為:6F 2F 84 0E 31 50 41 59 2E 53 59 53 2E44 44 46 30 31 A5 ID 88 01 01 5F 2D 08 65 73 65 6E 66 72 64 65 9F 11 01 01 BF0C 08 85 06 12 34 56 78 9A BC 90 00 ;其中,最后2個字節(jié)為0x9000,確定第一應(yīng)答數(shù)據(jù)正確;第一應(yīng)答數(shù)據(jù)中,0x6F為文件控制信息模板的標(biāo)簽,0x2F為文件控制信息模板的長度,0x84為DF名的標(biāo)簽,其后的一個字節(jié)ΟχΟΕ為DF名的長度,其后的31 50 41 59 2Ε53 59 53 2Ε 44 44 46 30 31 為 DF (Dedicated File,專用文件)名的內(nèi)容,0xA5 為文件控制信息的標(biāo)簽,其后的一個字節(jié)OxlD為文件控制信息的長度,其后的88 01 01 5F 2D 08
      6573 65 6E 66 72 64 65 9F 11 01 01 BF 0C 08 85 06 12 34 56 78 9A BC 為文件控制信息的內(nèi)容,其中0x88為SFI (Short File Identifier,短文件標(biāo)識)的標(biāo)簽,其后的一個字節(jié)0x01為SFI名的長度,其后的0x01為SFI的值,9F 11為發(fā)行方代碼表索引的標(biāo)簽,其后的一個字節(jié)OxOl為發(fā)行方代碼表索引的長度,其后的0x01為發(fā)行方代碼表索引的值;
      [0216]步驟217:終端初始化應(yīng)用候選列表;
      [0217]具體地,終端初始化應(yīng)用候選列表為清空應(yīng)用候選列表;
      [0218]步驟218:終端判斷第一應(yīng)答數(shù)據(jù)中是否存在正確的短文件標(biāo)識,是則初始化當(dāng)前記錄號,執(zhí)行步驟219,否則選擇應(yīng)用失敗,結(jié)束;
      [0219]具體地,終端判斷第一應(yīng)答數(shù)據(jù)中是否存在第一標(biāo)簽值,否則確定第一應(yīng)答數(shù)據(jù)中不存在SFI,是則確定第一應(yīng)答數(shù)據(jù)中存在SFI,獲取第一標(biāo)簽值之后的SFI的值,繼續(xù)判斷獲取到的SFI的值是否在第一范圍內(nèi),是則確定第一應(yīng)答數(shù)據(jù)中存在正確的SFI,否則確定第一應(yīng)答數(shù)據(jù)中不存在正確的SFI ;優(yōu)選地,當(dāng)前記錄號的初始值為I ;
      [0220]例如,第一標(biāo)簽值為0x88,第一范圍為0x01至OxOA ;獲取0x88之后的SFI的值為0x01,則SFI在第一范圍內(nèi);
      [0221]步驟219:終端根據(jù)短文件標(biāo)識和當(dāng)前記錄號向智能卡發(fā)送讀記錄指令;
      [0222]例如,終端根據(jù)SFI和當(dāng)前記錄號向智能卡發(fā)送第一讀記錄指令00 B2 01 OC00,智能卡根據(jù)第一讀記錄指令返回的數(shù)據(jù)為6C 57,終端從該數(shù)據(jù)中得到記錄長度0x57,終端再根據(jù)SFI和記錄長度向智能卡發(fā)送第二讀記錄指令00 B2 01 OC 57;
      [0223]步驟220:終端接收智能卡根據(jù)讀記錄指令返回的第二應(yīng)答數(shù)據(jù),根據(jù)第二應(yīng)答數(shù)據(jù)判斷是否已讀取完智能卡中的記錄,是則執(zhí)行步驟221,否則執(zhí)行步驟222 ;
      [0224]具體地,終端判斷第二應(yīng)答數(shù)據(jù)是否為0x6A83,是則已讀取完智能卡中的記錄,否則未讀取完智能卡中的記錄;
      [0225]步驟221:終端判斷應(yīng)用候選列表是否為空,是則選擇應(yīng)用失敗,結(jié)束,否則執(zhí)行步驟229 ;
      [0226]步驟222:終端判斷第二應(yīng)答數(shù)據(jù)是否符合第三預(yù)設(shè)要求,是則執(zhí)行步驟223,否則選擇應(yīng)用失敗,結(jié)束;
      [0227]具體地,終端判斷第二應(yīng)答數(shù)據(jù)中是否存在0x9000且數(shù)據(jù)格式正確,是則確定第二應(yīng)答數(shù)據(jù)符合第三預(yù)設(shè)要求,否則確定第二應(yīng)答數(shù)據(jù)不符合第三預(yù)設(shè)要求;
      [0228]本實(shí)施例中,第二應(yīng)答數(shù)據(jù)不符合第三預(yù)設(shè)要求包括:第二應(yīng)答數(shù)據(jù)格式錯誤,缺少應(yīng)用目錄名、應(yīng)用標(biāo)簽等;
      [0229]例如,本實(shí)施例中,第二應(yīng)答數(shù)據(jù)為:70 55 61 14 4F 07 AO 00 00 00 99 90 9050 06 4E 4F 4E 45 4D 56 87 01 81 61 28 4F 07 AO 00 00 00 03 10 10 50 OA 56 4953 41 43 52 45 44 49 54 87 01 82 9F 12 OD 43 52 45 44 49 54 4F 44 45 56 49 5341 61 13 4F 08 AO 00 00 00 03 10 10 03 50 04 41 50 50 33 87 01 03 90 00,其中,最后2個字節(jié)為0x9000,確定第二應(yīng)答數(shù)據(jù)正確;
      [0230]步驟223:終端判斷第二應(yīng)答數(shù)據(jù)中是否存在入口標(biāo)識,是則執(zhí)行步驟224,否則更新當(dāng)前記錄號,返回步驟219 ;
      [0231]具體地,終端判斷第一應(yīng)答數(shù)據(jù)中是否存在第二標(biāo)簽值,是則確定第二應(yīng)答數(shù)據(jù)中存在入口標(biāo)識,否則確定第二應(yīng)答數(shù)據(jù)中不存在入口標(biāo)識;
      [0232]例如,入口標(biāo)識即第二標(biāo)簽值為0x61 ;
      [0233]步驟224:終端獲取第二應(yīng)答數(shù)據(jù)中的第一個入口標(biāo)識作為當(dāng)前入口標(biāo)識;
      [0234]例如,終端在第二應(yīng)答數(shù)據(jù)中從前向后查找第二標(biāo)簽值0x61,在第3個字節(jié)查找到0x61,則將第3個字節(jié)的0x61作為當(dāng)前入口標(biāo)識;該入口標(biāo)識與下一個入口標(biāo)識之間的數(shù)據(jù)為該入口標(biāo)識的應(yīng)用信息;
      [0235]例如,當(dāng)前入口標(biāo)識,即第3個字節(jié)的0x61之后的應(yīng)用信息為:14 4F 07 AO 0000 00 99 90 90 50 06 4E 4F 4E 45 4D 56 87 01 81,其中,0x14 為該應(yīng)用信息的長度,0x4F為ADF(Applicat1n Directory File,應(yīng)用目錄文件)的標(biāo)簽,其后的一個字節(jié)0x07為ADF名的長度,其后的AO 00 00 00 99 90 90為ADF的內(nèi)容,0x50為應(yīng)用標(biāo)簽的標(biāo)簽,其后的一個字節(jié)0x06為應(yīng)用標(biāo)簽的長度,其后的4E 4F 4E 45 4D 56為應(yīng)用標(biāo)簽的內(nèi)容,0x87為應(yīng)用優(yōu)先級指示符的標(biāo)簽,其后的一個字節(jié)0x01為應(yīng)用優(yōu)先級指示符的長度,其后的0x87為應(yīng)用優(yōu)先級指示符的內(nèi)容,該應(yīng)用信息中無應(yīng)用優(yōu)先名;
      [0236]步驟225:終端判斷當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件與預(yù)設(shè)的應(yīng)用序列號列表中的應(yīng)用序列號是否完整匹配,是則根據(jù)當(dāng)前入口標(biāo)識之后的應(yīng)用信息更新應(yīng)用候選列表,執(zhí)行步驟228,否則執(zhí)行步驟226 ;
      [0237]具體地,終端判斷是否能夠在預(yù)設(shè)的應(yīng)用序列號列表中查找到與當(dāng)前入口標(biāo)識之后的ADF (應(yīng)用目錄文件)完全相同的應(yīng)用序列號,是則確定當(dāng)前入口標(biāo)識之后中的ADF與應(yīng)用序列號列表中的應(yīng)用序列號完整匹配,否則確定當(dāng)前入口標(biāo)識之后中的ADF不與應(yīng)用序列號列表中的應(yīng)用序列號完整匹配;更新應(yīng)用候選列表為:終端將當(dāng)前入口標(biāo)識之后的應(yīng)用信息中的應(yīng)用標(biāo)簽、應(yīng)用優(yōu)先級指示符、應(yīng)用優(yōu)先名和ADF即應(yīng)用序列號存儲到應(yīng)用候選列表中;
      [0238]例如,本實(shí)施例中,更新應(yīng)用候選列表為:終端將4F 07 AO 00 00 00 99 90 9050 06 4E 4F 4E 45 4D 56 87 01 81添加到應(yīng)用候選列表中;
      [0239]本實(shí)施例中,更新應(yīng)用候選列表之前還可以包括:初始化應(yīng)用候選列表;
      [0240]步驟226:終端根據(jù)預(yù)設(shè)的應(yīng)用序列號列表中與當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件對應(yīng)的應(yīng)用選擇指示器,判斷是否允許當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件與應(yīng)用序列號列表中的應(yīng)用序列號部分匹配,是則執(zhí)行步驟227,否則執(zhí)行步驟228 ;
      [0241]步驟227:終端判斷當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件與應(yīng)用序列號列表中的應(yīng)用序列號是否部分匹配,是則根據(jù)當(dāng)前入口標(biāo)識之后的應(yīng)用信息更新應(yīng)用候選列表,執(zhí)行步驟228,否則直接執(zhí)行步驟228 ;
      [0242]具體地,終端判斷是否能夠在應(yīng)用序列號列表中查找到與當(dāng)前入口標(biāo)識之后的ADF的預(yù)設(shè)部分相同的應(yīng)用序列號,是則確定當(dāng)前入口標(biāo)識之后的ADF與應(yīng)用序列號列表中的應(yīng)用序列號部分匹配,否則確定當(dāng)前入口標(biāo)識之后的ADF不與應(yīng)用序列號列表中的應(yīng)用序列號部分匹配;例如,ADF的預(yù)設(shè)部分為ADF的前7個字節(jié),若當(dāng)前入口標(biāo)識之后的ADF為AO 00 00 00 03 10 10 03,應(yīng)用序列號列表中的應(yīng)用序列號為AO 00 00 00 03 1010,則確定當(dāng)前入口標(biāo)識之后的ADF與應(yīng)用序列號列表中的應(yīng)用序列號部分匹配;更新應(yīng)用候選列表為:終端將當(dāng)前入口標(biāo)識之后的應(yīng)用信息中的應(yīng)用標(biāo)簽、應(yīng)用優(yōu)先級指示符、應(yīng)用優(yōu)先名和ADF即應(yīng)用序列號存儲到應(yīng)用候選列表中;
      [0243]本實(shí)施例中,更新應(yīng)用候選列表之前還可以包括:初始化應(yīng)用候選列表;
      [0244]步驟228:終端判斷當(dāng)前入口標(biāo)識之后是否還存在入口標(biāo)識,是則更新當(dāng)前入口標(biāo)識,返回步驟225,否則更新當(dāng)前記錄號,返回步驟219 ;
      [0245]具體地,終端在當(dāng)前入口標(biāo)識后查找第二標(biāo)簽值,判斷是否能夠查找到當(dāng)前入口標(biāo)識,是則確定當(dāng)前入口標(biāo)識之后還存在入口標(biāo)識,否則確定當(dāng)前入口標(biāo)識之后不存在入口標(biāo)識;更新當(dāng)前入口標(biāo)識為將當(dāng)前入口標(biāo)識的后一個入口標(biāo)識作為當(dāng)前入口標(biāo)識;優(yōu)選地,更新當(dāng)前記錄號為將當(dāng)前記錄號自加I;
      [0246]例如,本實(shí)施例中,第二應(yīng)答數(shù)據(jù)中還包括2個入口標(biāo)識,分別為:
      [0247]第25個字節(jié)為0x61,該入口標(biāo)識之后的應(yīng)用信息為:28 4F 07 AO 00 00 00 0310 10 50 OA 56 49 53 41 43 52 45 44 49 54 87 01 82 9F 12 OD 43 52 45 44 49 544F 44 45 56 49 53 41 ;其中,0x28為該應(yīng)用信息的長度,0x4F為ADF的標(biāo)簽,其后的一個字節(jié)0x07為ADF名的長度,其后的AO 00 00 00 03 10 10為ADF的內(nèi)容,0x50為應(yīng)用標(biāo)簽的標(biāo)簽,其后的一個字節(jié)OxOA為應(yīng)用標(biāo)簽的長度,其后的56 49 53 41 43 52 45 44 49
      54為應(yīng)用標(biāo)簽的內(nèi)容,0x87為應(yīng)用優(yōu)先級指示符的標(biāo)簽,其后的一個字節(jié)0x01為應(yīng)用優(yōu)先級指示符的長度,其后的0x82為應(yīng)用優(yōu)先級指示符的內(nèi)容,9F 12為應(yīng)用優(yōu)先名的標(biāo)簽,其后的一個字節(jié)OxOD為應(yīng)用優(yōu)先名的長度,其后的43 52 45 44 49 54 4F 44 45 56 49 5341為應(yīng)用優(yōu)先名的內(nèi)容;
      [0248]第67個字節(jié)為0x61,該入口標(biāo)識之后的應(yīng)用信息為:13 4F 08 AO 00 00 00 0310 10 03 50 04 41 50 50 33 87 01 03,其中,0x13為該應(yīng)用信息的長度,0x4F為ADF的標(biāo)簽,其后的一個字節(jié)0x08為ADF名的長度,其后的AO 00 00 00 03 10 10 03為ADF的內(nèi)容,0x50為應(yīng)用標(biāo)簽的標(biāo)簽,其后的一個字節(jié)0x04為應(yīng)用標(biāo)簽的長度,其后的41 50 5033為應(yīng)用標(biāo)簽的內(nèi)容,0x87為應(yīng)用優(yōu)先級指示符的標(biāo)簽,其后的一個字節(jié)0x01為應(yīng)用優(yōu)先級指示符的長度,其后的03為應(yīng)用優(yōu)先級指示符的內(nèi)容,該應(yīng)用信息中無應(yīng)用優(yōu)先名;
      [0249]步驟229:終端判斷是否僅有一個與智能卡有共同支持或相互支持的應(yīng)用,是則執(zhí)行步驟230,否則執(zhí)行步驟233 ;
      [0250]該步驟之前還包括:終端根據(jù)應(yīng)用候選列表判斷是否與智能卡有共同支持的應(yīng)用,是則執(zhí)行步驟229,否則結(jié)束;
      [0251]例如,應(yīng)用候選列表為:4F07 AO 00 00 00 99 90 90 50 06 4E 4F 4E 45 4D56 87 01 81 4F 07 AO 00 00 00 03 10 10 50 OA 56 49 53 41 43 52 45 44 49 54 8701 82 9F 12 OD 43 52 45 44 49 54 4F 44 45 56 49 53 41 4F 08 AO 00 00 00 03 1010 03 50 04 41 50 50 33 87 01 03 ;該應(yīng)用候選列表中包括3個應(yīng)用的應(yīng)用信息,分別為:第一個應(yīng)用 4F 07 AO 00 00 00 99 90 90 50 06 4E 4F 4E 45 4D 56 87 01 81,第二個應(yīng)用 4F 07 AO 00 00 00 03 10 10 50 OA 56 49 53 41 43 52 45 44 49 54 87 01 829F 12 OD 43 52 45 44 49 54 4F 44 45 56 49 53 41,第三個應(yīng)用 4F 08 AO 00 00 0003 10 10 03 50 04 41 50 50 33 87 01 03 ;
      [0252]步驟230:終端根據(jù)應(yīng)用候選列表中的應(yīng)用優(yōu)先級指示符,判斷該應(yīng)用是否需要用戶進(jìn)行確認(rèn),是則執(zhí)行步驟231,否則選擇該應(yīng)用,執(zhí)行步驟237 ;
      [0253]具體地,終端判斷應(yīng)用優(yōu)先級指示符是否符合第一預(yù)設(shè)格式,是則確定該應(yīng)用需要用戶進(jìn)行確認(rèn),否則確定該應(yīng)用不需要用戶進(jìn)行確認(rèn);
      [0254]優(yōu)選地,第一預(yù)設(shè)格式為應(yīng)用優(yōu)先級指示符的最高位為I ;
      [0255]例如,第一個應(yīng)用的應(yīng)用優(yōu)先級指示符為0x81,應(yīng)用優(yōu)先級指示符的最高位為1,則確定該應(yīng)用需要用戶進(jìn)行確認(rèn);第二個應(yīng)用的應(yīng)用優(yōu)先級指示符為0x82,應(yīng)用優(yōu)先級指示符的最高位為1,則確定該應(yīng)用需要用戶進(jìn)行確認(rèn);第三個應(yīng)用的應(yīng)用優(yōu)先級指示符為0x03,應(yīng)用優(yōu)先級指示符的最高位不為1,則確定該應(yīng)用不需要用戶進(jìn)行確認(rèn);
      [0256]步驟231:終端判斷是否支持用戶確認(rèn),是則執(zhí)行步驟232,否則結(jié)束;
      [0257]步驟232:終端顯示該應(yīng)用,判斷是否在預(yù)設(shè)時間內(nèi)接收到觸發(fā),是則選擇該應(yīng)用,執(zhí)行步驟237,否則結(jié)束;
      [0258]步驟233:終端顯示應(yīng)用候選列表;
      [0259]具體地,若應(yīng)用優(yōu)先級指示符存在且應(yīng)用的優(yōu)先級不同,則以應(yīng)用優(yōu)先級指示符優(yōu)先級從高到低顯示應(yīng)用候選列表;若應(yīng)用優(yōu)先級指示符存在且應(yīng)用的優(yōu)先級相同,則以自定義優(yōu)先順序或智能卡給出的優(yōu)先順序顯示應(yīng)用候選列表;若應(yīng)用優(yōu)先級指示符不存在的應(yīng)用,則以自定義優(yōu)先順序或智能卡給出的優(yōu)先順序顯示應(yīng)用候選列表;
      [0260]例如,第一個應(yīng)用的應(yīng)用優(yōu)先級指示符為0x81,第二個應(yīng)用的應(yīng)用優(yōu)先級指示符為0x82,第三個應(yīng)用的應(yīng)用優(yōu)先級指示符為0x03,則先顯示第一個應(yīng)用的應(yīng)用信息,再顯示第二個應(yīng)用的應(yīng)用信息,最后顯示第三個應(yīng)用的應(yīng)用信息;第一個應(yīng)用的應(yīng)用標(biāo)簽為4E4F 4E 45 4D 56,則顯示NONEMV ;第二個應(yīng)用的應(yīng)用標(biāo)簽為56 49 53 41 43 52 45 44 4954,應(yīng)用優(yōu)先名為43 52 45 44 49 54 4F 44 45 56 49 53 41,由于發(fā)行方代碼表索引的值為0x01,則終端不顯示應(yīng)用標(biāo)簽,顯示應(yīng)用優(yōu)先名,即顯示CREDITODEVISA ;第三個應(yīng)用的應(yīng)用標(biāo)簽為41 50 50 33,則顯示APP3;
      [0261]步驟234:終端判斷是否支持用戶確認(rèn),是則執(zhí)行步驟235,否則執(zhí)行步驟236 ;
      [0262]步驟235:終端判斷是否在預(yù)設(shè)時間內(nèi)接收到觸發(fā),是則根據(jù)觸發(fā)選擇對應(yīng)的應(yīng)用,執(zhí)行步驟237,否則結(jié)束;
      [0263]步驟236:終端根據(jù)應(yīng)用優(yōu)先級指示符,選擇不需要用戶進(jìn)行確認(rèn)的應(yīng)用中優(yōu)先級最高的應(yīng)用,執(zhí)行步驟237 ;
      [0264]優(yōu)選地,不需要用戶進(jìn)行確認(rèn)的應(yīng)用的應(yīng)用優(yōu)先級指示符的最高位為O ;
      [0265]例如,本實(shí)施例中,第三個應(yīng)用的應(yīng)用優(yōu)先級指示符為03,應(yīng)用優(yōu)先級指示符的最高位為0,則確定該應(yīng)用不需要用戶進(jìn)行確認(rèn);
      [0266]該步驟還包括,終端刪除應(yīng)用候選列表中需要用戶進(jìn)行確認(rèn)的應(yīng)用;
      [0267]優(yōu)選地,終端刪除應(yīng)用優(yōu)先級指示符為第一預(yù)設(shè)格式的應(yīng)用;
      [0268]步驟237:終端根據(jù)與選擇的應(yīng)用對應(yīng)的應(yīng)用序列號,向智能卡發(fā)送第四選擇指令;
      [0269]例如,本實(shí)施例中,用戶選擇第一個應(yīng)用,則終端獲取與用戶選擇的應(yīng)用對應(yīng)的應(yīng)用序列號,即應(yīng)用序列號為AO 00 00 00 99 90 90 ;則第四選擇指令為00 A4 04 00 07 AO00 00 00 99 90 90 ;
      [0270]步驟238:終端接收智能卡根據(jù)第四選擇指令返回的第五應(yīng)答數(shù)據(jù),判斷第五應(yīng)答數(shù)據(jù)是否正確,是則執(zhí)行步驟239,否則在應(yīng)用候選列表中刪除選擇的應(yīng)用,執(zhí)行步驟240 ;
      [0271]例如,第五應(yīng)答數(shù)據(jù)為6F 3A 84 07 AO 00 00 00 99 90 90 A5 2F 50 06 4E 4F4E 45 4D 56 87 01 81 9F 38 12 9F IA 02 9F 33 03 9F 40 05 9F IB 04 9F 09 02 9F35 01 5F 2D 08 65 73 65 6E 66 72 64 65 9F 11 01 01 90 00,其中,最后 2 個字節(jié)為0x9000,確定第五應(yīng)答數(shù)據(jù)正確;0x84為DF名的標(biāo)簽,其后的一個字節(jié)0x07為DF名的長度,其后的AO 00 00 00 99 90 90為DF名的內(nèi)容,其后的一個字節(jié)0xA5為文件控制信息的標(biāo)簽,0x2F為文件控制信息的長度,其后的50 06 4E 4F 4E 45 4D 56 87 01 81 9F 3812 9F 1A 02 9F 33 03 9F 40 05 9F 1B 04 9F 09 02 9F 35 01 5F 2D 08 65 73 65 6E
      6672 64 65 9F 11 01 01的內(nèi)容,其中,0x50為應(yīng)用標(biāo)簽的標(biāo)簽,其后的一個字節(jié)0x06為應(yīng)用標(biāo)簽的長度,其后的4E 4F 4E 45 4D 56為應(yīng)用標(biāo)簽的內(nèi)容,0x87為應(yīng)用優(yōu)先級指示符的標(biāo)簽,其后的一個字節(jié)0x01為應(yīng)用優(yōu)先級指示符的長度,其后的0x81為應(yīng)用優(yōu)先級指示符的內(nèi)容,9F 38為TOOL的標(biāo)簽,其后的一個字節(jié)0x12為TOOL的長度,其后的9F 1A 029F 33 03 9F 40 05 9F 1B 04 9F 09 02 9F 35 01 為 PD0L 的內(nèi)容;
      [0272]步驟239:終端判斷第四選擇指令中的應(yīng)用序列號是否與第五應(yīng)答數(shù)據(jù)中的專用文件名完全匹配,是則選擇應(yīng)用成功,保存第五應(yīng)答數(shù)據(jù)中的處理選項(xiàng)數(shù)據(jù)對象列表,結(jié)束流程,否則在應(yīng)用候選列表中刪除選擇的應(yīng)用,執(zhí)行步驟240 ;
      [0273]例如,第四選擇指令中的AID與第五應(yīng)答數(shù)據(jù)中的DF名均為A0 00 00 00 99 9090,則終端保存第五應(yīng)答數(shù)據(jù)中的TOOL:9F ΙΑ 02 9F 33 03 9F 40 05 9F IB 04 9F 0902 9F 35 01,選擇應(yīng)用成功,結(jié)束流程;
      [0274]本實(shí)施例中,若終端選擇應(yīng)用成功,則終端和智能卡分別設(shè)置相同的應(yīng)用作為當(dāng)前應(yīng)用,即當(dāng)前應(yīng)用為第四選擇指令中的應(yīng)用序列號對應(yīng)的應(yīng)用;
      [0275]步驟240:終端根據(jù)應(yīng)用候選列表判斷是否與智能卡有共同支持的應(yīng)用,是則返回步驟229,否則結(jié)束。
      [0276]本實(shí)施例中提供的一種終端和智能卡協(xié)商選擇應(yīng)用的方法,既支持終端和智能卡根據(jù)目錄選擇功能協(xié)商選擇應(yīng)用,也支持終端和智能卡根據(jù)應(yīng)用序列號列表選擇功能協(xié)商選擇應(yīng)用,兼容性好;對于多應(yīng)用的智能卡,若智能卡中增加一個應(yīng)用,相應(yīng)地,終端中只需在應(yīng)用序列號列表中增加該應(yīng)用的序列號即可,升級快,不需要修改終端內(nèi)核,易于維護(hù)。
      [0277]實(shí)施例5
      [0278]本發(fā)明的實(shí)施例5提供了一種終端和智能卡協(xié)商選擇應(yīng)用的裝置,如圖9所示,包括:第一初始模塊301、發(fā)送模塊302、接收模塊303、第一判斷模塊304、第二判斷模塊305、第三判斷模塊306、第一更新模塊307、第二初始模塊308、第四判斷模塊309、第五判斷模塊310、第一獲取模塊311、第六判斷模塊312、存儲模塊313、刪除模塊314和第十判斷模塊315 ;
      [0279]第一初始模塊301,用于獲取智能卡中的短文件標(biāo)識,初始化應(yīng)用候選列表和當(dāng)前記錄號;
      [0280]發(fā)送模塊302,用于根據(jù)第一初始模塊301獲取的短文件標(biāo)識和當(dāng)前記錄號向智能卡發(fā)送讀記錄指令;
      [0281]接收模塊303,用于接收智能卡根據(jù)發(fā)送模塊302發(fā)送的讀記錄指令返回的第二應(yīng)答數(shù)據(jù);
      [0282]第一判斷模塊304,用于根據(jù)接收模塊303接收到的第二應(yīng)答數(shù)據(jù)判斷是否已讀取完智能卡中的記錄;
      [0283]第二判斷模塊305,用于在第一判斷模塊304判斷為是時,判斷應(yīng)用候選列表是否為空;
      [0284]第三判斷模塊306,用于在第一判斷模塊304判斷為否時,判斷接收模塊303接收到的第二應(yīng)答數(shù)據(jù)中的應(yīng)用目錄文件與預(yù)設(shè)的應(yīng)用序列號列表中的應(yīng)用序列號是否匹配;
      [0285]第一更新模塊307,用于在第三判斷模塊306判斷為是時,根據(jù)接收模塊303接收到的第二應(yīng)答數(shù)據(jù)中的應(yīng)用信息更新應(yīng)用候選列表,更新當(dāng)前記錄號;在第三判斷模塊306判斷為否時,更新當(dāng)前記錄號;
      [0286]第二初始模塊308,用于獲取預(yù)設(shè)的應(yīng)用序列號列表中的第一個應(yīng)用序列號作為當(dāng)前應(yīng)用序列號;
      [0287]發(fā)送模塊302,還用于根據(jù)當(dāng)前應(yīng)用序列號向智能卡發(fā)送第二選擇指令;
      [0288]接收模塊303,還用于接收智能卡根據(jù)發(fā)送模塊302發(fā)送的第二選擇指令返回的第三應(yīng)答數(shù)據(jù);
      [0289]第四判斷模塊309,用于判斷接收模塊303接收到的第三應(yīng)答數(shù)據(jù)中的專用文件名是否與當(dāng)前應(yīng)用序列號匹配;
      [0290]第一更新模塊307,還用于在第四判斷模塊309判斷為是時,根據(jù)接收模塊303接收到的第三應(yīng)答數(shù)據(jù)更新應(yīng)用候選列表;
      [0291]第五判斷模塊310,用于在第四判斷模塊309判斷為否,或者第一更新模塊307根據(jù)第三應(yīng)答數(shù)據(jù)更新應(yīng)用候選列表后,判斷應(yīng)用序列號列表中的當(dāng)前應(yīng)用序列號之后是否存在應(yīng)用序列號,是則更新當(dāng)前應(yīng)用序列號;
      [0292]第十判斷模塊315,用于根據(jù)應(yīng)用候選列表判斷是否與智能卡有共同支持的應(yīng)用;
      [0293]第一獲取模塊311,用于在第十判斷模塊315判斷為是時,按照預(yù)設(shè)規(guī)則選擇一個應(yīng)用,再根據(jù)確定的應(yīng)用在應(yīng)用候選列表中獲取應(yīng)用的信息;
      [0294]發(fā)送模塊302,還用于根據(jù)獲取到的信息中的應(yīng)用序列號,向智能卡發(fā)送第四選擇指令;
      [0295]接收模塊303,還用于接收智能卡根據(jù)發(fā)送模塊302發(fā)送的第四選擇指令返回的第五應(yīng)答數(shù)據(jù);
      [0296]第六判斷模塊312,用于判斷接收模塊303接收到的第五應(yīng)答數(shù)據(jù)是否符合第一預(yù)設(shè)要求;
      [0297]存儲模塊313,用于在第六判斷模塊312判斷為是時,保存接收模塊303接收到的第五應(yīng)答數(shù)據(jù)中的處理選項(xiàng)數(shù)據(jù)對象列表;
      [0298]刪除模塊314,用于在第六判斷模塊312判斷為否時,在應(yīng)用候選列表中刪除獲取到的應(yīng)用的信息。
      [0299]第一初始模塊301包括第一判斷單元和第二判斷單元;
      [0300]發(fā)送模塊302,還用于根據(jù)預(yù)設(shè)的專用文件名向智能卡發(fā)送第一選擇指令;
      [0301]接收模塊303,還用于接收智能卡根據(jù)發(fā)送模塊302發(fā)送的第一選擇指令返回的第一應(yīng)答數(shù)據(jù);
      [0302]第一判斷單元,用于判斷接收模塊303接收到的第一應(yīng)答數(shù)據(jù)是否符合第二預(yù)設(shè)要求;
      [0303]第二判斷單元,用于在第一判斷單元判斷為是時,判斷第一應(yīng)答數(shù)據(jù)中是否存在正確的短文件標(biāo)識,是則獲取短文件標(biāo)識。
      [0304]第一初始模塊301還包括第三判斷單元,用于根據(jù)接收模塊303接收到的第一應(yīng)答數(shù)據(jù)判斷智能卡是否被鎖定或不支持該指令。
      [0305]第二判斷單元具體用于,在第一判斷單元判斷為是時,判斷第一應(yīng)答數(shù)據(jù)中是否存在第一標(biāo)簽值,如存在第一標(biāo)簽值則獲取第一標(biāo)簽值之后的短文件標(biāo)識的值,繼續(xù)判斷獲取到的短文件標(biāo)識的值是否在第一范圍內(nèi),如所述短文件標(biāo)識的值在第一范圍內(nèi)則獲取短文件標(biāo)識。
      [0306]發(fā)送模塊302用于根據(jù)第一初始模塊301獲取的短文件標(biāo)識和當(dāng)前記錄號向智能卡發(fā)送讀記錄指令,包括:
      [0307]發(fā)送模塊302用于根據(jù)短文件標(biāo)識和當(dāng)前記錄號向智能卡發(fā)送第一讀記錄指令;
      [0308]接收模塊303還用于接收智能卡根據(jù)發(fā)送模塊302發(fā)送的第一讀記錄指令返回的數(shù)據(jù);
      [0309]發(fā)送模塊302還用于從接收模塊303接收的返回的數(shù)據(jù)中,得到記錄長度,再根據(jù)短文件標(biāo)識和記錄長度向智能卡發(fā)送第二讀記錄指令。
      [0310]裝置還包括第七判斷模塊,用于判斷接收模塊303接收到的第二應(yīng)答數(shù)據(jù)是否符合第三預(yù)設(shè)要求,否則初始化應(yīng)用候選列表。
      [0311]第三判斷模塊306包括:第四判斷單元、第一獲取單元、第五判斷單元、第六判斷單元、第七判斷單元、第八判斷單元;
      [0312]第四判斷單元,用于判斷接收模塊303接收到的第二應(yīng)答數(shù)據(jù)中是否存在入口標(biāo)識;
      [0313]第一更新模塊307,還用于在第四判斷單元判斷為否時,更新當(dāng)前記錄號;
      [0314]第一獲取單元,用于在第四判斷單元判斷為是時,獲取第二應(yīng)答數(shù)據(jù)中的第一個入口標(biāo)識作為當(dāng)前入口標(biāo)識;
      [0315]第五判斷單元,用于判斷當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件與預(yù)設(shè)的應(yīng)用序列號列表中的應(yīng)用序列號是否完整匹配;
      [0316]第一更新模塊307,還用于在第五判斷單元判斷為是時,根據(jù)當(dāng)前入口標(biāo)識之后的應(yīng)用信息更新應(yīng)用候選列表
      [0317]第六判斷單元,用于在第五判斷單元判斷為否時,根據(jù)應(yīng)用序列號列表中與當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件對應(yīng)的應(yīng)用選擇指示器,判斷是否允許當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件與應(yīng)用序列號列表中的應(yīng)用序列號部分匹配;
      [0318]第七判斷單元,用于在第六判斷單元判斷為是時,判斷當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件與應(yīng)用序列號列表中的應(yīng)用序列號是否部分匹配;
      [0319]第一更新模塊307,還用于在第七判斷單元判斷為是時,根據(jù)當(dāng)前入口標(biāo)識之后的應(yīng)用信息更新應(yīng)用候選列表;
      [0320]第八判斷單元,用于判斷當(dāng)前入口標(biāo)識之后是否還存在入口標(biāo)識;
      [0321]第一更新模塊307,還用于在第八判斷單元判斷為是時,更新當(dāng)前入口標(biāo)識;在第八判斷單元判斷為否時,更新當(dāng)前記錄號。
      [0322]第四判斷單元具體用于,判斷第二應(yīng)答數(shù)據(jù)中是否存在第二標(biāo)簽值,是則確定第二應(yīng)答數(shù)據(jù)中存在入口標(biāo)識,否則確定第二應(yīng)答數(shù)據(jù)中不存在入口標(biāo)識。
      [0323]第五判斷單元具體用于,判斷是否能夠在預(yù)設(shè)的應(yīng)用序列號列表中查找到與當(dāng)前入口標(biāo)識之后中的應(yīng)用目錄文件完全相同的應(yīng)用序列號,是則確定當(dāng)前入口標(biāo)識之后中的應(yīng)用目錄文件與應(yīng)用序列號列表中的應(yīng)用序列號完整匹配,否則確定當(dāng)前入口標(biāo)識之后中的應(yīng)用目錄文件不與應(yīng)用序列號列表中的應(yīng)用序列號完整匹配。
      [0324]第七判斷單元具體用于,判斷是否能夠在應(yīng)用序列號列表中查找到與當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件的預(yù)設(shè)部分相同的應(yīng)用序列號,是則確定當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件與應(yīng)用序列號列表中的應(yīng)用序列號部分匹配,否則確定當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件不與應(yīng)用序列號列表中的應(yīng)用序列號部分匹配。
      [0325]第一更新模塊307還用于根據(jù)當(dāng)前入口標(biāo)識之后的應(yīng)用信息更新應(yīng)用候選列表,具體為:第一更新模塊307還用于將當(dāng)前入口標(biāo)識之后的應(yīng)用信息中的應(yīng)用優(yōu)先級指示符和應(yīng)用目錄文件存儲到應(yīng)用候選列表中。
      [0326]第四判斷模塊309包括:第八判斷單元、第九判斷單元、第十判斷單元、第i^一判斷單元;
      [0327]第八判斷單元,用于判斷接收模塊303接收到的第三應(yīng)答數(shù)據(jù)中的專用文件名是否與當(dāng)前應(yīng)用序列號完整匹配;
      [0328]第一更新模塊307,還用于在第八判斷單元判斷為是時,根據(jù)接收模塊303接收到的第三應(yīng)答數(shù)據(jù)更新應(yīng)用候選列表;
      [0329]第九判斷單元,用于在第八判斷單元判斷為否時,根據(jù)應(yīng)用序列號列表中與當(dāng)前應(yīng)用序列號對應(yīng)的應(yīng)用選擇指示器,判斷是否允許第三應(yīng)答數(shù)據(jù)中的專用文件名與當(dāng)前應(yīng)用序列號部分匹配;
      [0330]第十判斷單元,用于在第九判斷單元判斷為是時,判斷第三應(yīng)答數(shù)據(jù)中的專用文件名與當(dāng)前應(yīng)用序列號是否部分匹配;
      [0331]第一更新模塊307,還用于在第十判斷單元判斷為是時,根據(jù)接收模塊303接收到的第三應(yīng)答數(shù)據(jù)更新應(yīng)用候選列表;
      [0332]發(fā)送模塊302,還用于根據(jù)當(dāng)前應(yīng)用序列號向智能卡發(fā)送第三選擇指令;
      [0333]接收模塊303,還用于接收智能卡根據(jù)發(fā)送模塊302發(fā)送的第三選擇指令返回的第四應(yīng)答數(shù)據(jù);
      [0334]第十一判斷單元,用于判斷接收模塊303接收到的第四應(yīng)答數(shù)據(jù)是否符合第四預(yù)設(shè)要求;
      [0335]第一更新模塊307,還用于在第十一判斷單元判斷為是時,根據(jù)第四應(yīng)答數(shù)據(jù)更新應(yīng)用候選列表。
      [0336]第四判斷模塊309還包括第十二判斷單元,用于判斷接收模塊303接收到的第三應(yīng)答數(shù)據(jù)是否符合第五預(yù)設(shè)要求。
      [0337]第八判斷單元具體用于,判斷第三應(yīng)答數(shù)據(jù)中的專用文件名是否與當(dāng)前應(yīng)用序列號完全相同,是則確定第三應(yīng)答數(shù)據(jù)中的專用文件名與當(dāng)前應(yīng)用序列號完整匹配,否則確定第三應(yīng)答數(shù)據(jù)中的專用文件名不與當(dāng)前應(yīng)用序列號完整匹配。
      [0338]第四判斷模塊309還包括第十三判斷單元,用于根據(jù)接收模塊303接收到的第三應(yīng)答數(shù)據(jù)判斷智能卡中與專用文件名對應(yīng)的應(yīng)用是否被鎖定。
      [0339]第十判斷單元具體用于,判斷第三應(yīng)答數(shù)據(jù)中的專用文件名的預(yù)設(shè)部分與當(dāng)前應(yīng)用序列號是否相同,是則確定專用文件名與當(dāng)前應(yīng)用序列號部分匹配,否則確定專用文件名不與當(dāng)前應(yīng)用序列號部分匹配。
      [0340]第四判斷模塊309還包括第十四判斷單元,用于根據(jù)接收模塊303接收到的第四應(yīng)答數(shù)據(jù)判斷智能卡中與專用文件名對應(yīng)的應(yīng)用是否被鎖定。
      [0341]第一更新模塊307用于根據(jù)第三應(yīng)答數(shù)據(jù)更新應(yīng)用候選列表,具體為:第一更新模塊307用于將第三應(yīng)答數(shù)據(jù)中的專用文件名和第三應(yīng)答數(shù)據(jù)中的文件控制信息中的應(yīng)用優(yōu)先級指示符存儲到應(yīng)用候選列表中;
      [0342]第一更新模塊307用于根據(jù)第四應(yīng)答數(shù)據(jù)更新應(yīng)用候選列表,具體為:第一更新模塊307用于將第四應(yīng)答數(shù)據(jù)中的專用文件名和第四應(yīng)答數(shù)據(jù)中的文件控制信息中的應(yīng)用優(yōu)先級指示符存儲到應(yīng)用候選列表中。
      [0343]裝置還包括第八判斷模塊,用于判斷應(yīng)用候選列表中僅有一個與智能卡有共同支持或相互支持的應(yīng)用。
      [0344]當(dāng)?shù)诎伺袛嗄K判斷出應(yīng)用候選列表中僅有一個與智能卡有共同支持或相互支持的應(yīng)用時,第一獲取模塊311包括:第十五判斷單元、第十六判斷單元和第十七判斷單元;
      [0345]第十五判斷單元,用于根據(jù)應(yīng)用候選列表中的應(yīng)用優(yōu)先級指示符,判斷應(yīng)用候選列表中的應(yīng)用是否需要用戶進(jìn)行確認(rèn),否則選擇應(yīng)用,獲取與應(yīng)用對應(yīng)的信息;
      [0346]第十六判斷單元,用于在第十五判斷單元判斷為是時,判斷是否支持用戶確認(rèn);
      [0347]第十七判斷單元,用于在第十六判斷單元判斷為是時,顯示應(yīng)用,判斷是否在預(yù)設(shè)時間內(nèi)接收到觸發(fā),是則選擇應(yīng)用,獲取與應(yīng)用對應(yīng)的信息。
      [0348]第十五判斷單元具體用于判斷應(yīng)用優(yōu)先級指示符是否符合第一預(yù)設(shè)格式,是則確定應(yīng)用需要用戶進(jìn)行確認(rèn),否則確定應(yīng)用不需要用戶進(jìn)行確認(rèn),選擇應(yīng)用,獲取應(yīng)用的信肩、O
      [0349]當(dāng)?shù)诎伺袛嗄K判斷出應(yīng)用候選列表中有至少兩個與智能卡有共同支持或相互支持的應(yīng)用時,第一獲取模塊311包括:顯示單元、第十八判斷單元、第十九判斷單元和第二獲取單元;
      [0350]顯示單元,用于顯示應(yīng)用候選列表;
      [0351]第十八判斷單元,用于判斷是否支持用戶確認(rèn);
      [0352]第十九判斷單元,用于在第十八判斷單元判斷為是時,判斷是否在預(yù)設(shè)時間內(nèi)接收到觸發(fā),否則結(jié)束;
      [0353]第二獲取單元,用于在第十八判斷單元判斷為否時,根據(jù)應(yīng)用優(yōu)先級指示符,獲取不需要用戶進(jìn)行確認(rèn)的應(yīng)用中優(yōu)先級最高的應(yīng)用的信息;在第十九判斷單元判斷為是時,根據(jù)觸發(fā)獲取對應(yīng)的應(yīng)用的信息。
      [0354]第一刪除模塊311還用于刪除應(yīng)用候選列表中需要用戶進(jìn)行確認(rèn)的應(yīng)用。
      [0355]裝置還包括第九判斷模塊,用于判斷第四選擇指令中的應(yīng)用序列號是否與接收模塊303接收到的第五應(yīng)答數(shù)據(jù)中的專用文件名完整匹配。
      [0356]以上所述,僅為本發(fā)明較佳的【具體實(shí)施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明公開的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
      【權(quán)利要求】
      1.一種終端和智能卡協(xié)商選擇應(yīng)用的方法,其特征在于,所述方法包括: 步驟51:所述終端獲取所述智能卡中的短文件標(biāo)識,初始化應(yīng)用候選列表和當(dāng)前記錄號; 步驟32:所述終端根據(jù)所述短文件標(biāo)識和當(dāng)前記錄號向所述智能卡發(fā)送讀記錄指令,接收所述智能卡根據(jù)所述讀記錄指令返回的第二應(yīng)答數(shù)據(jù),根據(jù)所述第二應(yīng)答數(shù)據(jù)判斷是否已讀取完所述智能卡中的記錄,是則執(zhí)行步驟33,否則執(zhí)行步驟34 ; 步驟33:所述終端判斷所述應(yīng)用候選列表是否為空,是則執(zhí)行步驟35,否則執(zhí)行步驟88 ; 步驟54:所述終端判斷所述第二應(yīng)答數(shù)據(jù)中的應(yīng)用目錄文件與預(yù)設(shè)的應(yīng)用序列號列表中的應(yīng)用序列號是否匹配,是則根據(jù)所述第二應(yīng)答數(shù)據(jù)中的應(yīng)用信息更新所述應(yīng)用候選列表,更新當(dāng)前記錄號,返回步驟32,否則更新當(dāng)前記錄號,返回步驟52 ; 步驟35:所述終端獲取預(yù)設(shè)的應(yīng)用序列號列表中的第一個應(yīng)用序列號作為當(dāng)前應(yīng)用序列號; 步驟36:所述終端根據(jù)當(dāng)前應(yīng)用序列號向智能卡發(fā)送第二選擇指令,接收所述智能卡根據(jù)所述第二選擇指令返回的第三應(yīng)答數(shù)據(jù),判斷所述第三應(yīng)答數(shù)據(jù)中的專用文件名是否與當(dāng)前應(yīng)用序列號匹配,是則根據(jù)所述第三應(yīng)答數(shù)據(jù)更新所述應(yīng)用候選列表,執(zhí)行步驟37,否則執(zhí)行步驟37 ; 步驟37:所述終端判斷所述應(yīng)用序列號列表中的當(dāng)前應(yīng)用序列號之后是否存在應(yīng)用序列號,是則更新當(dāng)前應(yīng)用序列號,返回步驟36,否則執(zhí)行步驟38 ; 步驟38:所述終端根據(jù)所述應(yīng)用候選列表判斷是否與所述智能卡有共同支持的應(yīng)用,是則執(zhí)行步驟39,否則結(jié)束; 步驟39:所述終端按照預(yù)設(shè)規(guī)則選擇一個應(yīng)用,再根據(jù)確定的應(yīng)用在所述應(yīng)用候選列表中獲取所述應(yīng)用的信息,根據(jù)獲取到的信息中的應(yīng)用序列號,向所述智能卡發(fā)送第四選擇指令,接收所述智能卡根據(jù)所述第四選擇指令返回的第五應(yīng)答數(shù)據(jù),判斷所述第五應(yīng)答數(shù)據(jù)是否符合第一預(yù)設(shè)要求,是則選擇應(yīng)用成功,保存所述第五應(yīng)答數(shù)據(jù)中的處理選項(xiàng)數(shù)據(jù)對象列表,結(jié)束流程,否則在所述應(yīng)用候選列表中刪除獲取到的所述應(yīng)用的信息,返回步驟38。
      2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述終端獲取所述智能卡中的短文件標(biāo)識,包括: 步驟31-1:所述終端根據(jù)預(yù)設(shè)的專用文件名向所述智能卡發(fā)送第一選擇指令,接收所述智能卡根據(jù)所述第一選擇指令返回的第一應(yīng)答數(shù)據(jù); 步驟31-2:所述終端判斷所述第一應(yīng)答數(shù)據(jù)是否符合第二預(yù)設(shè)要求,是則執(zhí)行步驟31-3,否則執(zhí)行步驟35 ; 步驟31-3:所述終端判斷所述第一應(yīng)答數(shù)據(jù)中是否存在正確的短文件標(biāo)識,是則獲取所述短文件標(biāo)識,否則執(zhí)行步驟35。
      3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述步驟31-2之前包括:所述終端根據(jù)所述第一應(yīng)答數(shù)據(jù)判斷所述智能卡是否被鎖定或不支持該指令,是則選擇應(yīng)用失敗,結(jié)束,否則執(zhí)行步驟31-2。
      4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述終端判斷所述第一應(yīng)答數(shù)據(jù)中是否存在正確的短文件標(biāo)識,具體為:所述終端判斷所述第一應(yīng)答數(shù)據(jù)中是否存在第一標(biāo)簽值,如存在第一標(biāo)簽值則獲取所述第一標(biāo)簽值之后的短文件標(biāo)識的值,繼續(xù)判斷獲取到的短文件標(biāo)識的值是否在第一范圍內(nèi),是則所述第一應(yīng)答數(shù)據(jù)中存在正確的短文件標(biāo)識,否則所述第一應(yīng)答數(shù)據(jù)中不存在正確的短文件標(biāo)識,如不存在第一標(biāo)簽值則所述第一應(yīng)答數(shù)據(jù)中不存在正確的短文件標(biāo)識。
      5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述終端根據(jù)所述短文件標(biāo)識和當(dāng)前記錄號向所述智能卡發(fā)送讀記錄指令,包括:所述終端根據(jù)所述短文件標(biāo)識和當(dāng)前記錄號向智能卡發(fā)送第一讀記錄指令,所述終端接收所述智能卡根據(jù)所述第一讀記錄指令返回的數(shù)據(jù),并從中得到記錄長度,所述終端根據(jù)所述短文件標(biāo)識和所述記錄長度向所述智能卡發(fā)送第二讀記錄指令。
      6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S4之前包括:所述終端判斷所述第二應(yīng)答數(shù)據(jù)是否符合第三預(yù)設(shè)要求,是則執(zhí)行步驟S4,否則初始化所述應(yīng)用候選列表,執(zhí)行步驟S5。
      7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S4具體為: 步驟S4-1:所述終端判斷所述第二應(yīng)答數(shù)據(jù)中是否存在入口標(biāo)識,是則執(zhí)行步驟S4-2,否則更新當(dāng)前記錄號,返回步驟S2 ; 步驟S4-2:所述終端獲取所述第二應(yīng)答數(shù)據(jù)中的第一個入口標(biāo)識作為當(dāng)前入口標(biāo)識; 步驟S4-3:所述終端判斷當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件與所述預(yù)設(shè)的應(yīng)用序列號列表中的應(yīng)用序列號是否完整匹配,是則根據(jù)當(dāng)前入口標(biāo)識之后的應(yīng)用信息更新所述應(yīng)用候選列表,執(zhí)行步驟S4-6,否則執(zhí)行步驟S4-4 ; 步驟S4-4:所述終端根據(jù)所述應(yīng)用序列號列表中與當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件對應(yīng)的應(yīng)用選擇指示器,判斷是否允許當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件與所述應(yīng)用序列號列表中的應(yīng)用序列號部分匹配,是則執(zhí)行步驟S4-5,否則執(zhí)行步驟S4-6 ; 步驟S4-5:所述終端判斷當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件與所述應(yīng)用序列號列表中的應(yīng)用序列號是否部分匹配,是則根據(jù)當(dāng)前入口標(biāo)識之后的應(yīng)用信息更新所述應(yīng)用候選列表,執(zhí)行步驟S4-6,否則直接執(zhí)行步驟S4-6 ; 步驟S4-6:所述終端判斷當(dāng)前入口標(biāo)識之后是否還存在入口標(biāo)識,是則更新當(dāng)前入口標(biāo)識,返回步驟S4-3,否則更新當(dāng)前記錄號,返回步驟S2。
      8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述終端判斷所述第二應(yīng)答數(shù)據(jù)中是否存在入口標(biāo)識,具體為:所述終端判斷所述第二應(yīng)答數(shù)據(jù)中是否存在第二標(biāo)簽值,是則確定所述第二應(yīng)答數(shù)據(jù)中存在入口標(biāo)識,否則確定所述第二應(yīng)答數(shù)據(jù)中不存在入口標(biāo)識。
      9.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述終端判斷當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件與所述預(yù)設(shè)的應(yīng)用序列號列表中的應(yīng)用序列號是否完整匹配,具體為:所述終端判斷是否能夠在所述預(yù)設(shè)的應(yīng)用序列號列表中查找到與當(dāng)前入口標(biāo)識之后中的應(yīng)用目錄文件完全相同的應(yīng)用序列號,是則確定當(dāng)前入口標(biāo)識之后中的應(yīng)用目錄文件與應(yīng)用序列號列表中的應(yīng)用序列號完整匹配,否則確定當(dāng)前入口標(biāo)識之后中的應(yīng)用目錄文件不與應(yīng)用序列號列表中的應(yīng)用序列號完整匹配。
      10.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述終端判斷當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件與所述應(yīng)用序列號列表中的應(yīng)用序列號是否部分匹配,具體為:所述終端判斷是否能夠在所述應(yīng)用序列號列表中查找到與當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件的預(yù)設(shè)部分相同的應(yīng)用序列號,是則確定當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件與應(yīng)用序列號列表中的應(yīng)用序列號部分匹配,否則確定當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件不與應(yīng)用序列號列表中的應(yīng)用序列號部分匹配。
      11.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述根據(jù)當(dāng)前入口標(biāo)識之后的應(yīng)用信息更新所述應(yīng)用候選列表,具體為:所述終端將當(dāng)前入口標(biāo)識之后的應(yīng)用信息中的應(yīng)用優(yōu)先級指示符和應(yīng)用目錄文件存儲到所述應(yīng)用候選列表中。
      12.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟35之前還包括:所述終端初始化應(yīng)用候選列表。
      13.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述終端判斷所述第三應(yīng)答數(shù)據(jù)中的專用文件名是否與當(dāng)前應(yīng)用序列號匹配,是則根據(jù)所述第三應(yīng)答數(shù)據(jù)更新所述應(yīng)用候選列表,執(zhí)行步驟37,否則執(zhí)行步驟37,包括: 步驟36-1:所述終端判斷所述第三應(yīng)答數(shù)據(jù)中的專用文件名是否與當(dāng)前應(yīng)用序列號完整匹配,是則執(zhí)行步驟36-2,否則執(zhí)行步驟36-3 ; 步驟36-2:所述終端根據(jù)所述第三應(yīng)答數(shù)據(jù)更新所述應(yīng)用候選列表,執(zhí)行步驟37 ; 步驟36-3:所述終端根據(jù)所述應(yīng)用序列號列表中與當(dāng)前應(yīng)用序列號對應(yīng)的應(yīng)用選擇指示器,判斷是否允許所述第三應(yīng)答數(shù)據(jù)中的專用文件名與當(dāng)前應(yīng)用序列號部分匹配,是則執(zhí)行步驟36-4,否則執(zhí)行步驟37 ; 步驟36-4:所述終端判斷所述第三應(yīng)答數(shù)據(jù)中的專用文件名與當(dāng)前應(yīng)用序列號是否部分匹配,是則執(zhí)行步驟36-5,否則執(zhí)行步驟37 ; 步驟36-5:所述終端根據(jù)所述第三應(yīng)答數(shù)據(jù)更新所述應(yīng)用候選列表,執(zhí)行步驟56-6 ; 步驟56-6:所述終端根據(jù)當(dāng)前應(yīng)用序列號向所述智能卡發(fā)送第三選擇指令,接收所述智能卡根據(jù)所述第三選擇指令返回的第四應(yīng)答數(shù)據(jù); 步驟36-7:所述終端判斷所述第四應(yīng)答數(shù)據(jù)是否符合第四預(yù)設(shè)要求,是則步驟36-8,否則執(zhí)行步驟37 ; 步驟36-8:所述終端根據(jù)所述第四應(yīng)答數(shù)據(jù)更新所述應(yīng)用候選列表,返回步驟56-6。
      14.根據(jù)權(quán)利要求13所述的方法,其特征在于,所述步驟36-1之前包括:所述終端判斷所述第三應(yīng)答數(shù)據(jù)是否符合第五預(yù)設(shè)要求,是則執(zhí)行步驟36-1,否則執(zhí)行步驟37。
      15.根據(jù)權(quán)利要求13所述的方法,其特征在于,所述終端判斷所述第三應(yīng)答數(shù)據(jù)中的專用文件名是否與當(dāng)前應(yīng)用序列號完整匹配,具體為:所述終端判斷所述第三應(yīng)答數(shù)據(jù)中的專用文件名是否與當(dāng)前應(yīng)用序列號完全相同,是則確定所述第三應(yīng)答數(shù)據(jù)中的專用文件名與當(dāng)前應(yīng)用序列號完整匹配,否則確定所述第三應(yīng)答數(shù)據(jù)中的專用文件名不與當(dāng)前應(yīng)用序列號完整匹配。
      16.根據(jù)權(quán)利要求13所述的方法,其特征在于,所述步驟36-2之前包括:所述終端根據(jù)所述第三應(yīng)答數(shù)據(jù)判斷所述智能卡中與所述專用文件名對應(yīng)的應(yīng)用是否被鎖定,是則執(zhí)行步驟37,否則執(zhí)行步驟36-2。
      17.根據(jù)權(quán)利要求13所述的方法,其特征在于,所述終端判斷所述第三應(yīng)答數(shù)據(jù)中的專用文件名與當(dāng)前應(yīng)用序列號是否部分匹配,具體為:所述終端判斷所述第三應(yīng)答數(shù)據(jù)中的專用文件名的預(yù)設(shè)部分與當(dāng)前應(yīng)用序列號是否相同,是則確定所述專用文件名與當(dāng)前應(yīng)用序列號部分匹配,否則確定所述專用文件名不與當(dāng)前應(yīng)用序列號部分匹配。
      18.根據(jù)權(quán)利要求13所述的方法,其特征在于,所述步驟S6-5之前包括:所述終端根據(jù)所述第三應(yīng)答數(shù)據(jù)判斷所述智能卡中與所述專用文件名對應(yīng)的應(yīng)用是否被鎖定,是則執(zhí)行步驟S6-6,否則執(zhí)行步驟S6-5。
      19.根據(jù)權(quán)利要求13所述的方法,其特征在于,所述步驟S6-8之前包括:所述終端根據(jù)所述第四應(yīng)答數(shù)據(jù)判斷所述智能卡中與所述專用文件名對應(yīng)的應(yīng)用是否被鎖定,是則返回步驟S6-6,否則執(zhí)行步驟S6-8。
      20.根據(jù)權(quán)利要求13所述的方法,其特征在于,所述終端根據(jù)所述第三應(yīng)答數(shù)據(jù)更新所述應(yīng)用候選列表,具體為:所述終端將所述第三應(yīng)答數(shù)據(jù)中的專用文件名和所述第三應(yīng)答數(shù)據(jù)中的所述文件控制信息中的應(yīng)用優(yōu)先級指示符存儲到所述應(yīng)用候選列表中; 所述終端根據(jù)所述第四應(yīng)答數(shù)據(jù)更新所述應(yīng)用候選列表,具體為:所述終端將所述第四應(yīng)答數(shù)據(jù)中的專用文件名和所述第四應(yīng)答數(shù)據(jù)中的所述文件控制信息中的應(yīng)用優(yōu)先級指示符存儲到所述應(yīng)用候選列表中。
      21.根據(jù)權(quán)利要求1所述的方法,其特征在于,當(dāng)所述終端判斷出所述應(yīng)用候選列表中僅有一個與所述智能卡有共同支持或相互支持的應(yīng)用時,所述終端按照預(yù)設(shè)規(guī)則選擇一個應(yīng)用,再根據(jù)確定的應(yīng)用在所述應(yīng)用候選列表中獲取所述應(yīng)用的信息,具體為: 步驟S9-1:所述終端根據(jù)所述應(yīng)用候選列表中的應(yīng)用優(yōu)先級指示符,判斷所述應(yīng)用候選列表中的應(yīng)用是否需要用戶進(jìn)行確認(rèn),是則執(zhí)行步驟S9-2,否則選擇所述應(yīng)用,獲取與所述應(yīng)用對應(yīng)的信息; 步驟S9-2:所述終端判斷是否支持用戶確認(rèn),是則執(zhí)行步驟S9-3,否則結(jié)束; 步驟S9-3:所述終端顯示所述應(yīng)用,判斷是否在預(yù)設(shè)時間內(nèi)接收到觸發(fā),是則選擇所述應(yīng)用,獲取與所述應(yīng)用對應(yīng)的信息,否則結(jié)束。
      22.根據(jù)權(quán)利要求21所述的方法,其特征在于,所述終端根據(jù)所述應(yīng)用候選列表中的應(yīng)用優(yōu)先級指示符,判斷所述應(yīng)用候選列表中的應(yīng)用是否需要用戶進(jìn)行確認(rèn),具體為:所述終端判斷所述應(yīng)用優(yōu)先級指示符是否符合第一預(yù)設(shè)格式,是則確定所述應(yīng)用需要用戶進(jìn)行確認(rèn),否則確定所述應(yīng)用不需要用戶進(jìn)行確認(rèn)。
      23.根據(jù)權(quán)利要求1所述的方法,其特征在于,當(dāng)所述終端判斷出所述應(yīng)用候選列表中有至少兩個與所述智能卡有共同支持或相互支持的應(yīng)用時,所述終端按照預(yù)設(shè)規(guī)則選擇一個應(yīng)用,再根據(jù)確定的應(yīng)用在所述應(yīng)用候選列表中獲取所述應(yīng)用的信息,具體為: 步驟S9-4:所述終端顯示所述應(yīng)用候選列表; 步驟S9-5:所述終端判斷是否支持用戶確認(rèn),是則執(zhí)行步驟S9-6,否則執(zhí)行步驟S9-7 ; 步驟S9-6:所述終端判斷是否在預(yù)設(shè)時間內(nèi)接收到觸發(fā),是則根據(jù)觸發(fā)獲取對應(yīng)的應(yīng)用的信息,否則結(jié)束; 步驟S9-7:所述終端根據(jù)所述應(yīng)用優(yōu)先級指示符,獲取不需要用戶進(jìn)行確認(rèn)的應(yīng)用中優(yōu)先級最高的應(yīng)用的信息。
      24.根據(jù)權(quán)利要求23所述的方法,其特征在于,所述步驟S9-7還包括:所述終端刪除所述應(yīng)用候選列表中需要用戶進(jìn)行確認(rèn)的應(yīng)用。
      25.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S9判斷所述第五應(yīng)答數(shù)據(jù)符合第一預(yù)設(shè)要求與選擇應(yīng)用成功之間還包括:所述終端判斷所述第四選擇指令中的應(yīng)用序列號是否與所述第五應(yīng)答數(shù)據(jù)中的專用文件名完整匹配,是則選擇應(yīng)用成功,保存所述第五應(yīng)答數(shù)據(jù)中的處理選項(xiàng)數(shù)據(jù)對象列表,結(jié)束,否則在所述應(yīng)用候選列表中刪除獲取到的所述應(yīng)用的信息,返回步驟58。
      26.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述選擇應(yīng)用成功具體為:所述終端和所述智能卡分別設(shè)置相同的應(yīng)用作為當(dāng)前應(yīng)用。
      27.—種終端和智能卡協(xié)商選擇應(yīng)用的方法,其特征在于,所述方法包括: 步驟51:所述終端初始化應(yīng)用候選列表,獲取預(yù)設(shè)的應(yīng)用序列號列表中的第一個應(yīng)用序列號作為當(dāng)前應(yīng)用序列號; 步驟32:所述終端根據(jù)當(dāng)前應(yīng)用序列號向智能卡發(fā)送第二選擇指令,接收所述智能卡根據(jù)所述第二選擇指令返回的第三應(yīng)答數(shù)據(jù),判斷所述第三應(yīng)答數(shù)據(jù)中的專用文件名是否與當(dāng)前應(yīng)用序列號匹配,是則根據(jù)所述第三應(yīng)答數(shù)據(jù)更新所述應(yīng)用候選列表,執(zhí)行步驟33,否則執(zhí)行步驟33 ; 步驟33:所述終端判斷所述應(yīng)用序列號列表中的當(dāng)前應(yīng)用序列號之后是否存在應(yīng)用序列號,是則更新當(dāng)前應(yīng)用序列號,返回步驟32,否則執(zhí)行步驟34 ; 步驟34:所述終端判斷所述應(yīng)用候選列表是否為空,是則執(zhí)行步驟35,否則執(zhí)行步驟89 ; 步驟35:所述終端獲取所述智能卡中的短文件標(biāo)識,初始化當(dāng)前記錄號; 步驟36:所述終端根據(jù)所述短文件標(biāo)識和當(dāng)前記錄號向所述智能卡發(fā)送讀記錄指令,接收智能卡根據(jù)所述讀記錄指令返回的第二應(yīng)答數(shù)據(jù),根據(jù)所述第二應(yīng)答數(shù)據(jù)判斷是否已讀取完所述智能卡中的記錄,是則執(zhí)行步驟38,否則執(zhí)行步驟37 ; 步驟37:所述終端判斷所述第二應(yīng)答數(shù)據(jù)中的應(yīng)用目錄文件與預(yù)設(shè)的應(yīng)用序列號列表中的應(yīng)用序列號是否匹配,是則根據(jù)所述第二應(yīng)答數(shù)據(jù)中的應(yīng)用信息更新所述應(yīng)用候選列表,更新當(dāng)前記錄號,返回步驟36,否則更新當(dāng)前記錄號,返回步驟36 ; 步驟38:所述終端根據(jù)所述應(yīng)用候選列表判斷是否與所述智能卡有共同支持的應(yīng)用,是則執(zhí)行步驟39,否則結(jié)束; 步驟39:所述終端按照預(yù)設(shè)規(guī)則選擇一個應(yīng)用,再根據(jù)確定的應(yīng)用在所述應(yīng)用候選列表中獲取所述應(yīng)用的信息,根據(jù)獲取到的信息中的應(yīng)用序列號,向所述智能卡發(fā)送第四選擇指令,接收所述智能卡根據(jù)所述第四選擇指令返回的第五應(yīng)答數(shù)據(jù),判斷所述第五應(yīng)答數(shù)據(jù)是否符合第一預(yù)設(shè)要求,是則選擇應(yīng)用成功,保存所述第五應(yīng)答數(shù)據(jù)中的處理選項(xiàng)數(shù)據(jù)對象列表,結(jié)束流程,否則在應(yīng)用候選列表中刪除獲取到的所述應(yīng)用的信息,返回步驟880
      28.根據(jù)權(quán)利要求27所述的方法,其特征在于,所述終端判斷所述第三應(yīng)答數(shù)據(jù)中的專用文件名是否與當(dāng)前應(yīng)用序列號匹配,是則根據(jù)所述第三應(yīng)答數(shù)據(jù)更新所述應(yīng)用候選列表,執(zhí)行步驟33,否則執(zhí)行步驟33,包括: 步驟52-1:所述終端判斷所述第三應(yīng)答數(shù)據(jù)中的專用文件名是否與當(dāng)前應(yīng)用序列號完整匹配,是則執(zhí)行步驟32-2,否則執(zhí)行步驟32-3 ; 步驟32-2:所述終端根據(jù)所述第三應(yīng)答數(shù)據(jù)更新所述應(yīng)用候選列表,執(zhí)行步驟33 ; 步驟32-3:所述終端根據(jù)所述應(yīng)用序列號列表中與當(dāng)前應(yīng)用序列號對應(yīng)的應(yīng)用選擇指示器,判斷是否允許所述第三應(yīng)答數(shù)據(jù)中的專用文件名與當(dāng)前應(yīng)用序列號部分匹配,是則執(zhí)行步驟32-4,否則執(zhí)行步驟33 ; 步驟32-4:所述終端判斷所述第三應(yīng)答數(shù)據(jù)中的專用文件名與當(dāng)前應(yīng)用序列號是否部分匹配,是則執(zhí)行步驟32-5,否則執(zhí)行步驟53 ; 步驟32-5:所述終端根據(jù)所述第三應(yīng)答數(shù)據(jù)更新所述應(yīng)用候選列表,執(zhí)行步驟32-6 ; 步驟32-6:所述終端根據(jù)當(dāng)前應(yīng)用序列號向所述智能卡發(fā)送第三選擇指令,接收所述智能卡根據(jù)所述第三選擇指令返回的第四應(yīng)答數(shù)據(jù); 步驟32-7:所述終端判斷所述第四應(yīng)答數(shù)據(jù)是否符合第四預(yù)設(shè)要求,是則步驟32-8,否則執(zhí)行步驟33 ; 步驟32-8:所述終端根據(jù)所述第四應(yīng)答數(shù)據(jù)更新所述應(yīng)用候選列表,返回步驟32-6。
      29.根據(jù)權(quán)利要求28所述的方法,其特征在于,所述步驟32-1之前包括:所述終端判斷所述第三應(yīng)答數(shù)據(jù)是否符合第五預(yù)設(shè)要求,是則執(zhí)行步驟32-1,否則執(zhí)行步驟33。
      30.根據(jù)權(quán)利要求28所述的方法,其特征在于,所述終端判斷所述第三應(yīng)答數(shù)據(jù)中的專用文件名是否與當(dāng)前應(yīng)用序列號完整匹配,具體為:所述終端判斷所述第三應(yīng)答數(shù)據(jù)中的專用文件名是否與當(dāng)前應(yīng)用序列號完全相同,是則確定所述第三應(yīng)答數(shù)據(jù)中的專用文件名與當(dāng)前應(yīng)用序列號完整匹配,否則確定所述第三應(yīng)答數(shù)據(jù)中的專用文件名不與當(dāng)前應(yīng)用序列號完整匹配。
      31.根據(jù)權(quán)利要求28所述的方法,其特征在于,所述步驟32-2之前包括:所述終端根據(jù)所述第三應(yīng)答數(shù)據(jù)判斷所述智能卡中與所述專用文件名對應(yīng)的應(yīng)用是否被鎖定,是則執(zhí)行步驟33,否則執(zhí)行步驟32-2。
      32.根據(jù)權(quán)利要求28所述的方法,其特征在于,所述終端判斷所述第三應(yīng)答數(shù)據(jù)中的專用文件名與當(dāng)前應(yīng)用序列號是否部分匹配,具體為:所述終端判斷所述第三應(yīng)答數(shù)據(jù)中的專用文件名的預(yù)設(shè)部分與當(dāng)前應(yīng)用序列號是否相同,是則確定所述專用文件名與當(dāng)前應(yīng)用序列號部分匹配,否則確定所述專用文件名不與當(dāng)前應(yīng)用序列號部分匹配。
      33.根據(jù)權(quán)利要求28所述的方法,其特征在于,所述步驟32-5之前包括:所述終端根據(jù)所述第三應(yīng)答數(shù)據(jù)判斷所述智能卡中與所述專用文件名對應(yīng)的應(yīng)用是否被鎖定,是則執(zhí)行步驟32-6,否則執(zhí)行步驟32-5。
      34.根據(jù)權(quán)利要求28所述的方法,其特征在于,所述步驟32-8之前包括:所述終端根據(jù)所述第四應(yīng)答數(shù)據(jù)判斷所述智能卡中與所述專用文件名對應(yīng)的應(yīng)用是否被鎖定,是則返回步驟32-6,否則執(zhí)行步驟32-8。
      35.根據(jù)權(quán)利要求28所述的方法,其特征在于,所述終端根據(jù)所述第三應(yīng)答數(shù)據(jù)更新所述應(yīng)用候選列表,具體為:所述終端將所述第三應(yīng)答數(shù)據(jù)中的專用文件名和所述第三應(yīng)答數(shù)據(jù)中的所述文件控制信息中的應(yīng)用優(yōu)先級指示符存儲所述到應(yīng)用候選列表中; 所述終端根據(jù)所述第四應(yīng)答數(shù)據(jù)更新所述應(yīng)用候選列表,具體為:所述終端將所述第四應(yīng)答數(shù)據(jù)中的專用文件名和所述第四應(yīng)答數(shù)據(jù)中的所述文件控制信息中的應(yīng)用優(yōu)先級指示符存儲到所述應(yīng)用候選列表中。
      36.根據(jù)權(quán)利要求27所述的方法,其特征在于,所述終端獲取所述智能卡中的短文件標(biāo)識,包括: 步驟35-1:所述終端根據(jù)預(yù)設(shè)的專用文件名向所述智能卡發(fā)送第一選擇指令,接收所述智能卡根據(jù)所述第一選擇指令返回的第一應(yīng)答數(shù)據(jù),; 步驟35-2:所述終端判斷所述第一應(yīng)答數(shù)據(jù)是否符合第二預(yù)設(shè)要求,是則執(zhí)行步驟35-3,否則結(jié)束; 步驟35-3:所述終端判斷所述第一應(yīng)答數(shù)據(jù)中是否存在正確的短文件標(biāo)識,是則獲取所述短文件標(biāo)識,否則結(jié)束。
      37.根據(jù)權(quán)利要求36所述的方法,其特征在于,所述步驟35-2之前包括:所述終端根據(jù)所述第一應(yīng)答數(shù)據(jù)判斷所述智能卡是否被鎖定或不支持該指令,是則選擇應(yīng)用失敗,結(jié)束,否則執(zhí)行步驟35-2。
      38.根據(jù)權(quán)利要求36所述的方法,其特征在于,所述終端判斷所述第一應(yīng)答數(shù)據(jù)中是否存在正確的短文件標(biāo)識,具體為:所述終端判斷所述第一應(yīng)答數(shù)據(jù)中是否存在第一標(biāo)簽值,如存在第一標(biāo)簽值則獲取所述第一標(biāo)簽值之后的短文件標(biāo)識的值,繼續(xù)判斷獲取到的短文件標(biāo)識的值是否在第一范圍內(nèi),是則所述第一應(yīng)答數(shù)據(jù)中存在正確的短文件標(biāo)識,否則所述第一應(yīng)答數(shù)據(jù)中不存在正確的短文件標(biāo)識,如不存在第一標(biāo)簽值則確定所述第一應(yīng)答數(shù)據(jù)中不存在正確的短文件標(biāo)識。
      39.根據(jù)權(quán)利要求27所述的方法,其特征在于,所述終端根據(jù)所述短文件標(biāo)識和當(dāng)前記錄號向所述智能卡發(fā)送讀記錄指令,包括:所述終端根據(jù)所述短文件標(biāo)識和當(dāng)前記錄號向智能卡發(fā)送第一讀記錄指令,所述終端接收所述智能卡根據(jù)所述第一讀記錄指令返回的數(shù)據(jù),并從中得到記錄長度,所述終端根據(jù)所述短文件標(biāo)識和所述記錄長度向所述智能卡發(fā)送第二讀記錄指令。
      40.根據(jù)權(quán)利要求27所述的方法,其特征在于,所述步驟37之前包括:所述終端判斷所述第二應(yīng)答數(shù)據(jù)是否符合第三預(yù)設(shè)要求,是則執(zhí)行步驟37,否則結(jié)束。
      41.根據(jù)權(quán)利要求29所述的方法,其特征在于,所述步驟37具體為: 步驟37-1:所述終端判斷所述第二應(yīng)答數(shù)據(jù)中是否存在入口標(biāo)識,是則執(zhí)行步驟87-2,否則更新當(dāng)前記錄號,返回步驟36 ; 步驟37-2:所述終端獲取所述第二應(yīng)答數(shù)據(jù)中的第一個入口標(biāo)識作為當(dāng)前入口標(biāo)識; 步驟37-3:所述終端判斷當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件與所述預(yù)設(shè)的應(yīng)用序列號列表中的應(yīng)用序列號是否完整匹配,是則根據(jù)當(dāng)前入口標(biāo)識之后的應(yīng)用信息更新所述應(yīng)用候選列表,執(zhí)行步驟37-6,否則執(zhí)行步驟37-4 ; 步驟37-4:所述終端根據(jù)所述應(yīng)用序列號列表中與當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件對應(yīng)的應(yīng)用選擇指示器,判斷是否允許當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件與所述應(yīng)用序列號列表中的應(yīng)用序列號部分匹配,是則執(zhí)行步驟37-5,否則執(zhí)行步驟37-6 ; 步驟37-5:所述終端判斷當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件與所述應(yīng)用序列號列表中的應(yīng)用序列號是否部分匹配,是則根據(jù)當(dāng)前入口標(biāo)識之后的應(yīng)用信息更新所述應(yīng)用候選列表,執(zhí)行步驟37-6,否則直接執(zhí)行步驟37-6 ; 步驟37-6:所述終端判斷當(dāng)前入口標(biāo)識之后是否還存在入口標(biāo)識,是則更新當(dāng)前入口標(biāo)識,返回步驟37-3,否則更新當(dāng)前記錄號,返回步驟36。
      42.根據(jù)權(quán)利要求41所述的方法,其特征在于,所述終端判斷所述第二應(yīng)答數(shù)據(jù)中是否存在入口標(biāo)識,具體為:所述終端判斷所述第二應(yīng)答數(shù)據(jù)中是否存在第二標(biāo)簽值,是則確定所述第二應(yīng)答數(shù)據(jù)中存在入口標(biāo)識,否則確定所述第二應(yīng)答數(shù)據(jù)中不存在入口標(biāo)識。
      43.根據(jù)權(quán)利要求41所述的方法,其特征在于,所述終端判斷當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件與所述預(yù)設(shè)的應(yīng)用序列號列表中的應(yīng)用序列號是否完整匹配,具體為:所述終端判斷是否能夠在所述預(yù)設(shè)的應(yīng)用序列號列表中查找到與當(dāng)前入口標(biāo)識之后中的應(yīng)用目錄文件完全相同的應(yīng)用序列號,是則確定當(dāng)前入口標(biāo)識之后中的應(yīng)用目錄文件與應(yīng)用序列號列表中的應(yīng)用序列號完整匹配,否則確定當(dāng)前入口標(biāo)識之后中的應(yīng)用目錄文件不與應(yīng)用序列號列表中的應(yīng)用序列號完整匹配。
      44.根據(jù)權(quán)利要求41所述的方法,其特征在于,所述終端判斷當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件與所述應(yīng)用序列號列表中的應(yīng)用序列號是否部分匹配,具體為:所述終端判斷是否能夠在所述應(yīng)用序列號列表中查找到與當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件的預(yù)設(shè)部分相同的應(yīng)用序列號,是則確定當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件與應(yīng)用序列號列表中的應(yīng)用序列號部分匹配,否則確定當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件不與應(yīng)用序列號列表中的應(yīng)用序列號部分匹配。
      45.根據(jù)權(quán)利要求41所述的方法,其特征在于,所述根據(jù)當(dāng)前入口標(biāo)識之后的應(yīng)用信息更新所述應(yīng)用候選列表,具體為:所述終端將當(dāng)前入口標(biāo)識之后的應(yīng)用信息中的應(yīng)用優(yōu)先級指示符和應(yīng)用目錄文件存儲到所述應(yīng)用候選列表中。
      46.根據(jù)權(quán)利要求27所述的方法,其特征在于,所述步驟35之前還包括:所述終端初始化應(yīng)用候選列表。
      47.根據(jù)權(quán)利要求27所述的方法,其特征在于,當(dāng)所述終端判斷出所述應(yīng)用候選列表中僅有一個與所述智能卡有共同支持或相互支持的應(yīng)用時,所述終端按照預(yù)設(shè)規(guī)則選擇一個應(yīng)用,再根據(jù)確定的應(yīng)用在所述應(yīng)用候選列表中獲取所述應(yīng)用的信息,具體為: 步驟39-1:所述終端根據(jù)所述應(yīng)用候選列表中的應(yīng)用優(yōu)先級指示符,判斷所述應(yīng)用候選列表中的應(yīng)用是否需要用戶進(jìn)行確認(rèn),是則執(zhí)行步驟39-2,否則選擇所述應(yīng)用,獲取與所述應(yīng)用對應(yīng)的信息; 步驟39-2:所述終端判斷是否支持用戶確認(rèn),是則執(zhí)行步驟39-3,否則結(jié)束; 步驟39-3:所述終端顯示所述應(yīng)用,判斷是否在預(yù)設(shè)時間內(nèi)接收到觸發(fā),是則選擇所述應(yīng)用,獲取與所述應(yīng)用對應(yīng)的信息,否則結(jié)束。
      48.根據(jù)權(quán)利要求47所述的方法,其特征在于,所述終端根據(jù)所述應(yīng)用候選列表中的應(yīng)用優(yōu)先級指示符,判斷所述應(yīng)用候選列表中的應(yīng)用是否需要用戶進(jìn)行確認(rèn),具體為:所述終端判斷所述應(yīng)用優(yōu)先級指示符是否符合第一預(yù)設(shè)格式,是則確定所述應(yīng)用需要用戶進(jìn)行確認(rèn),否則確定所述應(yīng)用不需要用戶進(jìn)行確認(rèn)。
      49.根據(jù)權(quán)利要求27所述的方法,其特征在于,當(dāng)所述終端判斷出所述應(yīng)用候選列表中有至少兩個與所述智能卡有共同支持或相互支持的應(yīng)用時,所述終端按照預(yù)設(shè)規(guī)則選擇一個應(yīng)用,再根據(jù)確定的應(yīng)用在所述應(yīng)用候選列表中獲取所述應(yīng)用的信息,具體為: 步驟39-4:所述終端顯示所述應(yīng)用候選列表; 步驟39-5:所述終端判斷是否支持用戶確認(rèn),是則執(zhí)行步驟39-6,否則執(zhí)行步驟89-7 ; 步驟39-6:所述終端判斷是否在預(yù)設(shè)時間內(nèi)接收到觸發(fā),是則根據(jù)觸發(fā)獲取對應(yīng)的應(yīng)用的信息,否則結(jié)束; 步驟39-7:所述終端根據(jù)所述應(yīng)用優(yōu)先級指示符,獲取不需要用戶進(jìn)行確認(rèn)的應(yīng)用中優(yōu)先級最高的應(yīng)用的信息。
      50.根據(jù)權(quán)利要求49所述的方法,其特征在于,所述步驟39-7還包括:所述終端刪除所述應(yīng)用候選列表中需要用戶進(jìn)行確認(rèn)的應(yīng)用。
      51.根據(jù)權(quán)利要求27所述的方法,其特征在于,所述步驟39判斷所述第五應(yīng)答數(shù)據(jù)符合第一預(yù)設(shè)要求與選擇應(yīng)用成功之間還包括:所述終端判斷所述第四選擇指令中的應(yīng)用序列號是否與所述第五應(yīng)答數(shù)據(jù)中的專用文件名完整匹配,是則選擇應(yīng)用成功,保存所述第五應(yīng)答數(shù)據(jù)中的處理選項(xiàng)數(shù)據(jù)對象列表,結(jié)束流程,否則在所述應(yīng)用候選列表中刪除獲取到的所述應(yīng)用的信息,返回步驟38。
      52.根據(jù)權(quán)利要求27所述的方法,其特征在于,所述選擇應(yīng)用成功具體為:所述終端和所述智能卡分別設(shè)置相同的應(yīng)用作為當(dāng)前應(yīng)用。
      53.一種終端和智能卡協(xié)商選擇應(yīng)用的裝置,其特征在于,包括:第一初始模塊、發(fā)送模塊、接收模塊、第一判斷模塊、第二判斷模塊、第三判斷模塊、第一更新模塊、第二初始模塊、第四判斷模塊、第五判斷模塊、第十判斷模塊、第一獲取模塊、第六判斷模塊、存儲模塊和刪除模塊; 所述第一初始模塊,用于獲取所述智能卡中的短文件標(biāo)識,初始化應(yīng)用候選列表和當(dāng)前記錄號; 所述發(fā)送模塊,用于根據(jù)所述第一初始模塊獲取的所述短文件標(biāo)識和當(dāng)前記錄號向所述智能卡發(fā)送讀記錄指令;還用于根據(jù)當(dāng)前應(yīng)用序列號向所述智能卡發(fā)送第二選擇指令;還用于根據(jù)獲取到的應(yīng)用序列號,向所述智能卡發(fā)送第四選擇指令; 所述接收模塊,用于接收所述智能卡根據(jù)所述發(fā)送模塊發(fā)送的所述讀記錄指令返回的第二應(yīng)答數(shù)據(jù);還用于接收所述智能卡根據(jù)所述發(fā)送模塊發(fā)送的所述第二選擇指令返回的第三應(yīng)答數(shù)據(jù);還用于接收所述智能卡根據(jù)所述發(fā)送模塊發(fā)送的所述第四選擇指令返回的第五應(yīng)答數(shù)據(jù); 所述第一判斷模塊,用于根據(jù)所述接收模塊接收到的所述第二應(yīng)答數(shù)據(jù)判斷是否已讀取完所述智能卡中的記錄; 所述第二判斷模塊,用于在所述第一判斷模塊判斷為是時,判斷所述應(yīng)用候選列表是否為空; 所述第三判斷模塊,用于在所述第一判斷模塊判斷為否時,判斷所述接收模塊接收到的所述第二應(yīng)答數(shù)據(jù)中的應(yīng)用目錄文件與預(yù)設(shè)的應(yīng)用序列號列表中的應(yīng)用序列號是否匹配; 所述第一更新模塊,用于在所述第三判斷模塊判斷為是時,根據(jù)所述接收模塊接收到的所述第二應(yīng)答數(shù)據(jù)中的應(yīng)用信息更新所述應(yīng)用候選列表,更新當(dāng)前記錄號;還用于在所述第三判斷模塊判斷為否時,更新當(dāng)前記錄號; 所述第二初始模塊,用于在所述第二判斷模塊判斷為是時,獲取預(yù)設(shè)的應(yīng)用序列號列表中的第一個應(yīng)用序列號作為當(dāng)前應(yīng)用序列號; 所述第四判斷模塊,用于判斷所述接收模塊接收到的所述第三應(yīng)答數(shù)據(jù)中的專用文件名是否與當(dāng)前應(yīng)用序列號匹配; 所述第一更新模塊,還用于在所述第四判斷模塊判斷為是時,根據(jù)所述接收模塊接收到的所述第三應(yīng)答數(shù)據(jù)更新所述應(yīng)用候選列表; 所述第五判斷模塊,用于在所述第四判斷模塊判斷為否,或者所述第一更新模塊根據(jù)所述第三應(yīng)答數(shù)據(jù)更新所述應(yīng)用候選列表后,判斷所述應(yīng)用序列號列表中的當(dāng)前應(yīng)用序列號之后是否存在應(yīng)用序列號,是則更新當(dāng)前應(yīng)用序列號; 所述第十判斷模塊,用于根據(jù)所述應(yīng)用候選列表判斷是否與所述智能卡有共同支持的應(yīng)用; 所述第一獲取模塊,用于在所述第十判斷模塊判斷為是時,按照預(yù)設(shè)規(guī)則選擇一個應(yīng)用,再根據(jù)確定的應(yīng)用在所述應(yīng)用候選列表中獲取所述應(yīng)用的信息; 所述第六判斷模塊,用于判斷所述接收模塊接收到的所述第五應(yīng)答數(shù)據(jù)是否符合第一預(yù)設(shè)要求; 所述存儲模塊,用于在所述第六判斷模塊判斷為是時,保存所述接收模塊接收到的所述第五應(yīng)答數(shù)據(jù)中的處理選項(xiàng)數(shù)據(jù)對象列表; 所述刪除模塊,用于在所述第六判斷模塊判斷為否時,在所述應(yīng)用候選列表中刪除獲取到的所述應(yīng)用的信息。
      54.根據(jù)權(quán)利要求53所述的裝置,其特征在于,所述第一初始模塊包括第一判斷單元和第二判斷單元; 所述發(fā)送模塊,還用于根據(jù)預(yù)設(shè)的專用文件名向所述智能卡發(fā)送第一選擇指令; 所述接收模塊,還用于接收所述智能卡根據(jù)所述發(fā)送模塊發(fā)送的所述第一選擇指令返回的第一應(yīng)答數(shù)據(jù); 所述第一判斷單元,用于判斷所述接收模塊接收到的所述第一應(yīng)答數(shù)據(jù)是否符合第二預(yù)設(shè)要求; 所述第二判斷單元,用于在所述第一判斷單元判斷為是時,判斷所述第一應(yīng)答數(shù)據(jù)中是否存在正確的短文件標(biāo)識,是則獲取所述短文件標(biāo)識。
      55.根據(jù)權(quán)利要求54所述的裝置,其特征在于,所述第一初始模塊還包括第三判斷單元,用于根據(jù)所述接收模塊接收到的所述第一應(yīng)答數(shù)據(jù)判斷所述智能卡是否被鎖定或不支持該指令。
      56.根據(jù)權(quán)利要求54所述的裝置,其特征在于,所述第二判斷單元具體用于,在所述第一判斷單元判斷為是時,判斷所述第一應(yīng)答數(shù)據(jù)中是否存在第一標(biāo)簽值,如存在第一標(biāo)簽值則獲取所述第一標(biāo)簽值之后的短文件標(biāo)識的值,繼續(xù)判斷獲取到的短文件標(biāo)識的值是否在第一范圍內(nèi),如所述短文件標(biāo)識的值在第一范圍內(nèi)則獲取所述短文件標(biāo)識。
      57.根據(jù)權(quán)利要求53所述的裝置,其特征在于,所述發(fā)送模塊用于根據(jù)所述第一初始模塊獲取的所述短文件標(biāo)識和當(dāng)前記錄號向所述智能卡發(fā)送讀記錄指令,包括: 所述發(fā)送模塊用于根據(jù)所述短文件標(biāo)識和當(dāng)前記錄號向智能卡發(fā)送第一讀記錄指令; 所述接收模塊還用于接收所述智能卡根據(jù)所述發(fā)送模塊發(fā)送的所述第一讀記錄指令返回的數(shù)據(jù); 所述發(fā)送模塊還用于從所述接收模塊接收的所述返回的數(shù)據(jù)中,得到記錄長度,再根據(jù)所述短文件標(biāo)識和所述記錄長度向所述智能卡發(fā)送第二讀記錄指令。
      58.根據(jù)權(quán)利要求53所述的裝置,其特征在于,所述裝置還包括第七判斷模塊,用于判斷所述接收模塊接收到的所述第二應(yīng)答數(shù)據(jù)是否符合第三預(yù)設(shè)要求,否則初始化所述應(yīng)用候選列表。
      59.根據(jù)權(quán)利要求53所述的裝置,其特征在于,所述第三判斷模塊包括:第四判斷單元、第一獲取單元、第五判斷單元、第六判斷單元、第七判斷單元、第八判斷單元; 所述第四判斷單元,用于判斷所述接收模塊接收到的所述第二應(yīng)答數(shù)據(jù)中是否存在入口標(biāo)識; 所述第一獲取單元,用于在所述第四判斷單元判斷為是時,獲取所述第二應(yīng)答數(shù)據(jù)中的第一個入口標(biāo)識作為當(dāng)前入口標(biāo)識; 所述第五判斷單元,用于判斷當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件與預(yù)設(shè)的應(yīng)用序列號列表中的應(yīng)用序列號是否完整匹配; 所述第六判斷單元,用于在所述第五判斷單元判斷為否時,根據(jù)所述應(yīng)用序列號列表中與當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件對應(yīng)的應(yīng)用選擇指示器,判斷是否允許當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件與應(yīng)用序列號列表中的應(yīng)用序列號部分匹配; 所述第七判斷單元,用于在所述第六判斷單元判斷為是時,判斷當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件與所述應(yīng)用序列號列表中的應(yīng)用序列號是否部分匹配; 所述第八判斷單元,用于判斷當(dāng)前入口標(biāo)識之后是否還存在入口標(biāo)識; 所述第一更新模塊,還用于在所述第四判斷單元判斷為否時,更新當(dāng)前記錄號;還用于在所述第五判斷單元判斷為是時,根據(jù)當(dāng)前入口標(biāo)識之后的應(yīng)用信息更新所述應(yīng)用候選列表;還用于在所述第七判斷單元判斷為是時,根據(jù)當(dāng)前入口標(biāo)識之后的應(yīng)用信息更新所述應(yīng)用候選列表;還用于在所述第八判斷單元判斷為是時,更新當(dāng)前入口標(biāo)識;在所述第八判斷單元判斷為否時,更新當(dāng)前記錄號。
      60.根據(jù)權(quán)利要求59所述的裝置,其特征在于,所述第四判斷單元具體用于,判斷所述第二應(yīng)答數(shù)據(jù)中是否存在第二標(biāo)簽值,是則確定所述第二應(yīng)答數(shù)據(jù)中存在入口標(biāo)識,否則確定所述第二應(yīng)答數(shù)據(jù)中不存在入口標(biāo)識。
      61.根據(jù)權(quán)利要求59所述的裝置,其特征在于,所述第五判斷單元具體用于,判斷是否能夠在所述預(yù)設(shè)的應(yīng)用序列號列表中查找到與當(dāng)前入口標(biāo)識之后中的應(yīng)用目錄文件完全相同的應(yīng)用序列號,是則確定當(dāng)前入口標(biāo)識之后中的應(yīng)用目錄文件與應(yīng)用序列號列表中的應(yīng)用序列號完整匹配,否則確定當(dāng)前入口標(biāo)識之后中的應(yīng)用目錄文件不與應(yīng)用序列號列表中的應(yīng)用序列號完整匹配。
      62.根據(jù)權(quán)利要求59所述的裝置,其特征在于,所述第七判斷單元具體用于,判斷是否能夠在所述應(yīng)用序列號列表中查找到與當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件的預(yù)設(shè)部分相同的應(yīng)用序列號,是則確定當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件與應(yīng)用序列號列表中的應(yīng)用序列號部分匹配,否則確定當(dāng)前入口標(biāo)識之后的應(yīng)用目錄文件不與應(yīng)用序列號列表中的應(yīng)用序列號部分匹配。
      63.根據(jù)權(quán)利要求59所述的裝置,其特征在于,所述第一更新模塊還用于根據(jù)當(dāng)前入口標(biāo)識之后的應(yīng)用信息更新所述應(yīng)用候選列表,具體為:所述第一更新模塊還用于將當(dāng)前入口標(biāo)識之后的應(yīng)用信息中的應(yīng)用優(yōu)先級指示符和應(yīng)用目錄文件存儲到應(yīng)用候選列表中。
      64.根據(jù)權(quán)利要求53所述的裝置,其特征在于,所述第四判斷模塊包括:第八判斷單元、第九判斷單元、第十判斷單元、第十一判斷單元; 所述第八判斷單元,用于判斷所述接收模塊接收到的所述第三應(yīng)答數(shù)據(jù)中的專用文件名是否與當(dāng)前應(yīng)用序列號完整匹配; 所述第九判斷單元,用于在所述第八判斷單元判斷為否時,根據(jù)所述應(yīng)用序列號列表中與當(dāng)前應(yīng)用序列號對應(yīng)的應(yīng)用選擇指示器,判斷是否允許所述第三應(yīng)答數(shù)據(jù)中的專用文件名與當(dāng)前應(yīng)用序列號部分匹配; 所述第十判斷單元,用于在所述第九判斷單元判斷為是時,判斷所述第三應(yīng)答數(shù)據(jù)中的專用文件名與當(dāng)前應(yīng)用序列號是否部分匹配; 所述發(fā)送模塊,還用于根據(jù)當(dāng)前應(yīng)用序列號向所述智能卡發(fā)送第三選擇指令; 所述接收模塊,還用于接收所述智能卡根據(jù)所述發(fā)送模塊發(fā)送的所述第三選擇指令返回的第四應(yīng)答數(shù)據(jù); 所述第十一判斷單元,用于判斷所述接收模塊接收到的所述第四應(yīng)答數(shù)據(jù)是否符合第四預(yù)設(shè)要求; 所述第一更新模塊,還用于在所述第八判斷單元判斷為是時,根據(jù)所述接收模塊接收到的所述第三應(yīng)答數(shù)據(jù)更新所述應(yīng)用候選列表;還用于在所述第十判斷單元判斷為是時,根據(jù)所述接收模塊接收到的所述第三應(yīng)答數(shù)據(jù)更新所述應(yīng)用候選列表;還用于在所述第十一判斷單元判斷為是時,根據(jù)所述第四應(yīng)答數(shù)據(jù)更新所述應(yīng)用候選列表。
      65.根據(jù)權(quán)利要求64所述的裝置,其特征在于,所述第四判斷模塊還包括第十二判斷單元,用于判斷所述接收模塊接收到的所述第三應(yīng)答數(shù)據(jù)是否符合第五預(yù)設(shè)要求。
      66.根據(jù)權(quán)利要求64所述的裝置,其特征在于,所述第八判斷單元具體用于,判斷所述第三應(yīng)答數(shù)據(jù)中的專用文件名是否與當(dāng)前應(yīng)用序列號完全相同,是則確定所述第三應(yīng)答數(shù)據(jù)中的專用文件名與當(dāng)前應(yīng)用序列號完整匹配,否則確定所述第三應(yīng)答數(shù)據(jù)中的專用文件名不與當(dāng)前應(yīng)用序列號完整匹配。
      67.根據(jù)權(quán)利要求64所述的裝置,其特征在于,所述第四判斷模塊還包括第十三判斷單元,用于根據(jù)所述接收模塊接收到的所述第三應(yīng)答數(shù)據(jù)判斷所述智能卡中與所述專用文件名對應(yīng)的應(yīng)用是否被鎖定。
      68.根據(jù)權(quán)利要求64所述的裝置,其特征在于,所述第十判斷單元具體用于,判斷所述第三應(yīng)答數(shù)據(jù)中的專用文件名的預(yù)設(shè)部分與當(dāng)前應(yīng)用序列號是否相同,是則確定所述專用文件名與當(dāng)前應(yīng)用序列號部分匹配,否則確定所述專用文件名不與當(dāng)前應(yīng)用序列號部分匹配。
      69.根據(jù)權(quán)利要求64所述的裝置,其特征在于,所述第四判斷模塊還包括第十四判斷單元,用于根據(jù)所述接收模塊接收到的所述第四應(yīng)答數(shù)據(jù)判斷所述智能卡中與所述專用文件名對應(yīng)的應(yīng)用是否被鎖定。
      70.根據(jù)權(quán)利要求64所述的裝置,其特征在于,所述第一更新模塊用于根據(jù)所述第三應(yīng)答數(shù)據(jù)更新所述應(yīng)用候選列表,具體為:所述第一更新模塊用于將所述第三應(yīng)答數(shù)據(jù)中的專用文件名和所述第三應(yīng)答數(shù)據(jù)中的所述文件控制信息中的應(yīng)用優(yōu)先級指示符存儲到所述應(yīng)用候選列表中; 所述第一更新模塊用于根據(jù)所述第四應(yīng)答數(shù)據(jù)更新所述應(yīng)用候選列表,具體為:所述第一更新模塊用于將所述第四應(yīng)答數(shù)據(jù)中的專用文件名和所述第四應(yīng)答數(shù)據(jù)中的所述文件控制信息中的應(yīng)用優(yōu)先級指示符存儲到所述應(yīng)用候選列表中。
      71.根據(jù)權(quán)利要求64所述的裝置,其特征在于,所述裝置還包括第八判斷模塊,用于判斷所述應(yīng)用候選列表中僅有一個與所述智能卡有共同支持或相互支持的應(yīng)用。
      72.根據(jù)權(quán)利要求53所述的裝置,其特征在于,當(dāng)所述第八判斷模塊判斷出所述應(yīng)用候選列表中僅有一個與所述智能卡有共同支持或相互支持的應(yīng)用時,所述第一獲取模塊包括:第十五判斷單元、第十六判斷單元和第十七判斷單元; 所述第十五判斷單元,用于根據(jù)所述應(yīng)用候選列表中的應(yīng)用優(yōu)先級指示符,判斷所述應(yīng)用候選列表中的應(yīng)用是否需要用戶進(jìn)行確認(rèn),否則選擇所述應(yīng)用,獲取與所述應(yīng)用對應(yīng)的信息; 所述第十六判斷單元,用于在所述第十五判斷單元判斷為是時,判斷是否支持用戶確認(rèn); 所述第十七判斷單元,用于在所述第十六判斷單元判斷為是時,顯示所述應(yīng)用,判斷是否在預(yù)設(shè)時間內(nèi)接收到觸發(fā),是則選擇所述應(yīng)用,獲取與所述應(yīng)用對應(yīng)的信息。
      73.根據(jù)權(quán)利要求72所述的裝置,其特征在于,所述第十五判斷單元具體用于判斷所述應(yīng)用優(yōu)先級指示符是否符合第一預(yù)設(shè)格式,是則確定所述應(yīng)用需要用戶進(jìn)行確認(rèn),否則確定所述應(yīng)用不需要用戶進(jìn)行確認(rèn),選擇所述應(yīng)用,獲取所述應(yīng)用的信息。
      74.根據(jù)權(quán)利要求71所述的裝置,其特征在于,當(dāng)所述第八判斷模塊判斷出所述應(yīng)用候選列表中有至少兩個與所述智能卡有共同支持或相互支持的應(yīng)用時,所述第一獲取模塊包括:顯示單元、第十八判斷單元、第十九判斷單元和第二獲取單元; 所述顯示單元,用于顯示所述應(yīng)用候選列表; 所述第十八判斷單元,用于判斷是否支持用戶確認(rèn); 所述第十九判斷單元,用于在所述第十八判斷單元判斷為是時,判斷是否在預(yù)設(shè)時間內(nèi)接收到觸發(fā),否則結(jié)束; 所述第二獲取單元,用于在所述第十八判斷單元判斷為否時,根據(jù)所述應(yīng)用優(yōu)先級指示符,獲取不需要用戶進(jìn)行確認(rèn)的應(yīng)用中優(yōu)先級最高的應(yīng)用的信息;在所述第十九判斷單元判斷為是時,根據(jù)觸發(fā)獲取對應(yīng)的應(yīng)用的信息。
      75.根據(jù)權(quán)利要求74所述的裝置,其特征在于,所述第一刪除模塊還用于刪除所述應(yīng)用候選列表中需要用戶進(jìn)行確認(rèn)的應(yīng)用。
      76.根據(jù)權(quán)利要求53所述的裝置,其特征在于,所述裝置還包括第九判斷模塊,用于判斷所述第四選擇指令中的應(yīng)用序列號是否與所述接收模塊接收到的所述第五應(yīng)答數(shù)據(jù)中的專用文件名完整匹配。
      【文檔編號】G06K7/00GK104407845SQ201410591616
      【公開日】2015年3月11日 申請日期:2014年10月29日 優(yōu)先權(quán)日:2014年10月29日
      【發(fā)明者】陸舟, 于華章 申請人:飛天誠信科技股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1