Loading ePassport/ttcn/ePassport_Altsteps.ttcn +33 −21 Original line number Diff line number Diff line Loading @@ -29,12 +29,12 @@ [vc_simu.passportProtection == e_plain] a_readAnyFile(); // DG3 only accessible if terminal is authenticated [vc_simu.securityStatus >= e_terminalAuthenticated] a_readFile(c_longFileIdDG3); [vc_simu.securityStatus < e_terminalAuthenticated] a_refuseFileAccess(c_longFileIdDG3); [vc_simu.securityStatus >= e_terminalAuthenticated] a_readFile(c_fileDG3); [vc_simu.securityStatus < e_terminalAuthenticated] a_refuseFileAccess(c_fileDG3); // DG4 only accessible if terminal is authenticated [vc_simu.securityStatus >= e_terminalAuthenticated] a_readFile(c_longFileIdDG4); [vc_simu.securityStatus < e_terminalAuthenticated] a_refuseFileAccess(c_longFileIdDG4); [vc_simu.securityStatus >= e_terminalAuthenticated] a_readFile(c_fileDG4); [vc_simu.securityStatus < e_terminalAuthenticated] a_refuseFileAccess(c_fileDG4); // any other file accessible if BAC performed [vc_simu.securityStatus >= e_basicAccessControl] a_readAnyFile(); Loading Loading @@ -237,37 +237,42 @@ } // end a_bac altstep a_readFile(in LongFileId p_fileId) runs on MRTD { altstep a_readFile(in FileInfo p_file) runs on MRTD { var Command v_command; var integer v_logicalChannel; var LongFileId v_longFileId; var ShortFileId v_shortFileId; var octetstring v_data := ''O; var integer v_dataLength; var integer v_offset; var W1W2Status v_result; // SELECT Command [] mrtdport.receive(mw_selectByFileID(p_fileId)) -> value v_command { [] mrtdport.receive(mw_selectByFileID(p_file.longFileId)) -> value v_command { // set current file for logical channel v_logicalChannel := f_getLogicalChannel(v_command.class); vc_simu.currentFiles[v_logicalChannel] := v_command.payload.plainText.commandData; v_longFileId := v_command.payload.plainText.commandData; vc_simu.currentFiles[v_logicalChannel] := getFileByLongId(v_longFileId); mrtdport.send(m_responseOK); repeat; } // READ Command with short EF [] mrtdport.receive(mw_readShortEF(f_longFileIdToShortFileId(p_fileId))) -> value v_command { [] mrtdport.receive(mw_readShortEF(p_file.shortFileId)) -> value v_command { // set current file for logical channel v_logicalChannel := f_getLogicalChannel(v_command.class); vc_simu.currentFiles[v_logicalChannel] := v_command.payload.plainText.commandData; v_shortFileId := v_command.payload.plainText.commandData; vc_simu.currentFiles[v_logicalChannel] := getFileByShortId(v_shortFileId); v_offset := bit2int(v_command.p2); v_dataLength := v_command.payload.plainText.lengthE; v_result := f_readFileData(v_logicalChannel, v_offset, v_dataLength, v_data); v_result := f_readFileData(vc_simu.currentFiles[v_logicalChannel], v_offset, v_dataLength, v_data); mrtdport.send(m_responseRead(v_data, v_result)); repeat; Loading @@ -278,7 +283,7 @@ // Check current file v_logicalChannel := f_getLogicalChannel(v_command.class); if(vc_simu.currentFiles[v_logicalChannel] == c_longFileIdNoFile) { if(vc_simu.currentFiles[v_logicalChannel] == c_noFileInfo) { log(""); //TODO mrtdport.send(m_responseNOK(c_w1w2NoCurrentEF)); repeat; Loading @@ -286,7 +291,8 @@ v_offset := bit2int(v_command.p1 & v_command.p2); v_result := f_readFileData(v_logicalChannel, v_offset, v_dataLength, v_data); v_result := f_readFileData(vc_simu.currentFiles[v_logicalChannel], v_offset, v_dataLength, v_data); mrtdport.send(m_responseRead(v_data, v_result)); repeat; Loading @@ -302,6 +308,8 @@ var Command v_command; var integer v_logicalChannel; var LongFileId v_longFileId; var ShortFileId v_shortFileId; var octetstring v_data := ''O; var integer v_dataLength; var integer v_offset; Loading @@ -312,7 +320,8 @@ // set current file for logical channel v_logicalChannel := f_getLogicalChannel(v_command.class); vc_simu.currentFiles[v_logicalChannel] := v_command.payload.plainText.commandData; v_longFileId := v_command.payload.plainText.commandData; vc_simu.currentFiles[v_logicalChannel] := getFileByLongId(v_longFileId); mrtdport.send(m_responseOK); repeat; Loading @@ -323,12 +332,14 @@ // set current file for logical channel v_logicalChannel := f_getLogicalChannel(v_command.class); vc_simu.currentFiles[v_logicalChannel] := v_command.payload.plainText.commandData; v_shortFileId := v_command.payload.plainText.commandData; vc_simu.currentFiles[v_logicalChannel] := getFileByShortId(v_shortFileId); v_offset := bit2int(v_command.p2); v_dataLength := v_command.payload.plainText.lengthE; v_result := f_readFileData(v_logicalChannel, v_offset, v_dataLength, v_data); v_result := f_readFileData(vc_simu.currentFiles[v_logicalChannel], v_offset, v_dataLength, v_data); mrtdport.send(m_responseRead(v_data, v_result)); repeat; Loading @@ -339,7 +350,7 @@ // Check current file v_logicalChannel := f_getLogicalChannel(v_command.class); if(vc_simu.currentFiles[v_logicalChannel] == c_longFileIdNoFile) { if(vc_simu.currentFiles[v_logicalChannel] == c_noFileInfo) { log(""); //TODO mrtdport.send(m_responseNOK(c_w1w2NoCurrentEF)); repeat; Loading @@ -347,7 +358,8 @@ v_offset := bit2int(v_command.p1 & v_command.p2); v_result := f_readFileData(v_logicalChannel, v_offset, v_dataLength, v_data); v_result := f_readFileData(vc_simu.currentFiles[v_logicalChannel], v_offset, v_dataLength, v_data); mrtdport.send(m_responseRead(v_data, v_result)); repeat; Loading @@ -357,16 +369,16 @@ } // end of a_readAnyFile altstep a_refuseFileAccess(in LongFileId p_fileId) runs on MRTD { altstep a_refuseFileAccess(in FileInfo p_file) runs on MRTD { // SELECT Command [] mrtdport.receive(mw_selectByFileID(p_fileId)) { [] mrtdport.receive(mw_selectByFileID(p_file.longFileId)) { mrtdport.send(m_responseNOK(c_w1w2SecurityStatusNotSatisfied)); repeat; } // READ Command with short EF [] mrtdport.receive(mw_readShortEF(f_longFileIdToShortFileId(p_fileId))) { [] mrtdport.receive(mw_readShortEF(p_file.shortFileId)) { mrtdport.send(m_responseNOK(c_w1w2SecurityStatusNotSatisfied)); repeat; } Loading ePassport/ttcn/ePassport_Functions.ttcn +32 −75 Original line number Diff line number Diff line Loading @@ -39,17 +39,14 @@ external function fx_loadPassportConfiguration(in charstring p_configurationID) return charstring; // fx_unloadPassportConfiguration() // The Test Adapter should have filled an array of hexstring with the content of the file // The TTCN requests here datalength hexstring values of the file=filename, from pointer pt external function fx_findstring ( in charstring p_activefile, inout Oct2 p_offset, inout LengthE p_datalength ) return octetstring; external function fx_readFileData( in charstring p_filename, in integer p_offset, in integer p_dataLength, out octetstring p_data); } // end fileExternalFunctions } } // end externalFunctions group configurationFunctions { Loading Loading @@ -258,80 +255,40 @@ function f_readFileData( in integer v_logicalChannel, in integer v_offset, in integer v_dataLength, out octetstring v_data) in FileInfo p_fileInfo, in integer p_offset, in integer p_dataLength, out octetstring p_data) return W1W2Status { //TODO: error handling fx_readFileData(p_fileInfo.filename, p_offset, p_dataLength, p_data); return c_w1w2NormalProcessing; } //end f_readFileData // FIXME: Cleaner way ? function f_longFileIdToShortFileId(in LongFileId p_longFileId) return ShortFileId { function getFileByLongId(in LongFileId p_longFileId) return FileInfo { var integer i; if(p_longFileId == c_longFileIdDG1) { return c_shortFileIdDG1; } if(p_longFileId == c_longFileIdDG2) { return c_shortFileIdDG2; } if(p_longFileId == c_longFileIdDG3) { return c_shortFileIdDG3; } if(p_longFileId == c_longFileIdDG4) { return c_shortFileIdDG4; } if(p_longFileId == c_longFileIdDG5) { return c_shortFileIdDG5; } if(p_longFileId == c_longFileIdDG6) { return c_shortFileIdDG6; } if(p_longFileId == c_longFileIdDG7) { return c_shortFileIdDG7; for(i:=0; i<sizeof(c_ePassportFiles); i:=i+1) { if(c_ePassportFiles[i].longFileId == p_longFileId) { return c_ePassportFiles[i]; } if(p_longFileId == c_longFileIdDG8) { return c_shortFileIdDG8; } if(p_longFileId == c_longFileIdDG9) { return c_shortFileIdDG9; } if(p_longFileId == c_longFileIdDG10) { return c_shortFileIdDG10; } if(p_longFileId == c_longFileIdDG11) { return c_shortFileIdDG11; } if(p_longFileId == c_longFileIdDG12) { return c_shortFileIdDG12; } if(p_longFileId == c_longFileIdDG13) { return c_shortFileIdDG13; } if(p_longFileId == c_longFileIdDG14) { return c_shortFileIdDG14; } if(p_longFileId == c_longFileIdDG15) { return c_shortFileIdDG15; } if(p_longFileId == c_longFileIdDG16) { return c_shortFileIdDG16; } if(p_longFileId == c_longFileIdCVCA) { return c_shortFileIdCVCA; } if(p_longFileId == c_longFileIdSOD) { return c_shortFileIdSOD; return c_noFileInfo; } // end getFileByLongId function getFileByShortId(in ShortFileId p_shortFileId) return FileInfo { var integer i; for(i:=0; i<sizeof(c_ePassportFiles); i:=i+1) { if(c_ePassportFiles[i].shortFileId == p_shortFileId) { return c_ePassportFiles[i]; } if(p_longFileId == c_longFileIdCOM) { return c_shortFileIdCOM; } return '00'O; } // end f_longFileIdToShortFileId return c_noFileInfo; } // end getFileByShortId } // end fileFunctions Loading ePassport/ttcn/ePassport_Templates.ttcn +0 −138 Original line number Diff line number Diff line Loading @@ -94,144 +94,6 @@ module ePassport_Templates { payload := mw_payload(v_failCode, 0) } group simpleFileTemplates { // TEMPLATES EF.COM file template (value) EFfile m_fileCOM := { filename := "EF.COM", shortFileId := '1e'O, fileID := '011e'O } // TEMPLATES EF.SOD file template (value) EFfile m_fileSOD := { filename := "EF.SOD", shortFileId := '1d'O, fileID := '011d'O } // TEMPLATES DG1 file template (value) EFfile m_fileDG1 := { filename := "EF.DG1", shortFileId := '01'O, fileID := '0101'O } // TEMPLATES DG2 file template (value) EFfile m_fileDG2 := { filename := "EF.DG2", shortFileId := '02'O, fileID := '0102'O } // TEMPLATES DG3 file template (value) EFfile m_fileDG3 := { filename := "EF.DG3", shortFileId := '03'O, fileID := '0103'O } // TEMPLATES DG4 file template (value) EFfile m_fileDG4 := { filename := "EF.DG4", shortFileId := '04'O, fileID := '0104'O } // TEMPLATES DG14 file template (value) EFfile m_fileDG14 := { filename := "EF.DG14", shortFileId := '0e'O, fileID := '010e'O } // TEMPLATES DG15 file template (value) EFfile m_fileDG15 := { filename := "EF.DG15", shortFileId := '0f'O, fileID := '010f'O } // TEMPLATES EF.CVCA file template (value) EFfile m_fileCVCA := { filename := "EF.CVCA", shortFileId := '1c'O, fileID := '011c'O } }//group Simple_files_templates group ConfigSet_templates { // TEMPLATES Configuration set template (value) ConfigurationSet m_cfg_plain := { efcom := m_fileCOM, efsod := m_fileSOD, dg1 := m_fileDG1, dg2 := m_fileDG2, dg3 := omit, dg4 :=omit, dg14 :=omit, dg15 :=omit, efcvca :=omit, fileslist := "EF.COM,EF.SOD,DG1,DG2", docNumber :=omit, trustPoint :=omit, mrz := PXT_MRZ }; template (value) ConfigurationSet m_cfg_bac := { efcom := m_fileCOM, efsod := m_fileSOD, dg1 := m_fileDG1, dg2 := m_fileDG2, dg3 := omit, dg4 := omit, dg14 := omit, dg15 := omit, efcvca := omit, fileslist := "EF.COM,EF.SOD,DG1,DG2", docNumber := omit, trustPoint := omit, mrz := PXT_MRZ }; template (value) ConfigurationSet m_cfg_eac := { efcom := m_fileCOM, efsod := m_fileSOD, dg1 := m_fileDG1, dg2 := m_fileDG2, dg3 := m_fileDG3, dg4 := m_fileDG4, dg14 := m_fileDG14, dg15 := omit, efcvca := omit, fileslist := "EF.COM,EF.SOD,DG1,DG2,DG3,DG4,DG14", docNumber := "C11T002JM4", trustPoint := omit, mrz := PXT_MRZ }; template (value) ConfigurationSet m_cfg_eac_aa := { efcom := m_fileCOM, efsod := m_fileSOD, dg1 := m_fileDG1, dg2 := m_fileDG2, dg3 := m_fileDG3, dg4 := m_fileDG4, dg14 := m_fileDG14, dg15 := m_fileDG15, efcvca := omit, fileslist := "EF.COM,EF.SOD,DG1,DG2,DG3,DG4,DG14,DG15", docNumber := "C11T002JM4", trustPoint := omit, mrz := PXT_MRZ }; } group Command_templates { //SELECT TEMPLATES : Send APDU to the passport 00 a4 04 0c 07 a0 00 00 02 47 10 01 Loading ePassport/ttcn/ePassport_TestSystem.ttcn +1 −4 Original line number Diff line number Diff line Loading @@ -47,13 +47,10 @@ module ePassport_TestSystem { ** @desc Test Component Variables are defined here * */ type LongFileId CurrentFile; type record of CurrentFile CurrentFiles; type record SimuParams { SecurityStatus securityStatus, PassportProtection passportProtection, CurrentFiles currentFiles, FileSet currentFiles, octetstring kEnc, octetstring kMac, octetstring privateKey Loading ePassport/ttcn/ePassport_Types.ttcn +5 −20 Original line number Diff line number Diff line Loading @@ -48,34 +48,19 @@ module ePassport_Types { type Oct2 LongFileId; type Oct1 ShortFileId; type record EFfile { type record FileInfo { charstring filename, ShortFileId shortFileId, LongFileId fileID LongFileId longFileId }; type record of FileInfo FileSet; type enumerated MrtdConfiguration { e_cfgDfltBac, e_cfgDfltEac } type record ConfigurationSet { EFfile efcom, EFfile efsod, EFfile dg1, EFfile dg2, EFfile dg3 optional, EFfile dg4 optional, EFfile dg14 optional, EFfile dg15 optional, EFfile efcvca optional, charstring fileslist, charstring docNumber optional, charstring trustPoint optional, charstring mrz }; } // end filesGroup group messageTypesGroup { Loading Loading
ePassport/ttcn/ePassport_Altsteps.ttcn +33 −21 Original line number Diff line number Diff line Loading @@ -29,12 +29,12 @@ [vc_simu.passportProtection == e_plain] a_readAnyFile(); // DG3 only accessible if terminal is authenticated [vc_simu.securityStatus >= e_terminalAuthenticated] a_readFile(c_longFileIdDG3); [vc_simu.securityStatus < e_terminalAuthenticated] a_refuseFileAccess(c_longFileIdDG3); [vc_simu.securityStatus >= e_terminalAuthenticated] a_readFile(c_fileDG3); [vc_simu.securityStatus < e_terminalAuthenticated] a_refuseFileAccess(c_fileDG3); // DG4 only accessible if terminal is authenticated [vc_simu.securityStatus >= e_terminalAuthenticated] a_readFile(c_longFileIdDG4); [vc_simu.securityStatus < e_terminalAuthenticated] a_refuseFileAccess(c_longFileIdDG4); [vc_simu.securityStatus >= e_terminalAuthenticated] a_readFile(c_fileDG4); [vc_simu.securityStatus < e_terminalAuthenticated] a_refuseFileAccess(c_fileDG4); // any other file accessible if BAC performed [vc_simu.securityStatus >= e_basicAccessControl] a_readAnyFile(); Loading Loading @@ -237,37 +237,42 @@ } // end a_bac altstep a_readFile(in LongFileId p_fileId) runs on MRTD { altstep a_readFile(in FileInfo p_file) runs on MRTD { var Command v_command; var integer v_logicalChannel; var LongFileId v_longFileId; var ShortFileId v_shortFileId; var octetstring v_data := ''O; var integer v_dataLength; var integer v_offset; var W1W2Status v_result; // SELECT Command [] mrtdport.receive(mw_selectByFileID(p_fileId)) -> value v_command { [] mrtdport.receive(mw_selectByFileID(p_file.longFileId)) -> value v_command { // set current file for logical channel v_logicalChannel := f_getLogicalChannel(v_command.class); vc_simu.currentFiles[v_logicalChannel] := v_command.payload.plainText.commandData; v_longFileId := v_command.payload.plainText.commandData; vc_simu.currentFiles[v_logicalChannel] := getFileByLongId(v_longFileId); mrtdport.send(m_responseOK); repeat; } // READ Command with short EF [] mrtdport.receive(mw_readShortEF(f_longFileIdToShortFileId(p_fileId))) -> value v_command { [] mrtdport.receive(mw_readShortEF(p_file.shortFileId)) -> value v_command { // set current file for logical channel v_logicalChannel := f_getLogicalChannel(v_command.class); vc_simu.currentFiles[v_logicalChannel] := v_command.payload.plainText.commandData; v_shortFileId := v_command.payload.plainText.commandData; vc_simu.currentFiles[v_logicalChannel] := getFileByShortId(v_shortFileId); v_offset := bit2int(v_command.p2); v_dataLength := v_command.payload.plainText.lengthE; v_result := f_readFileData(v_logicalChannel, v_offset, v_dataLength, v_data); v_result := f_readFileData(vc_simu.currentFiles[v_logicalChannel], v_offset, v_dataLength, v_data); mrtdport.send(m_responseRead(v_data, v_result)); repeat; Loading @@ -278,7 +283,7 @@ // Check current file v_logicalChannel := f_getLogicalChannel(v_command.class); if(vc_simu.currentFiles[v_logicalChannel] == c_longFileIdNoFile) { if(vc_simu.currentFiles[v_logicalChannel] == c_noFileInfo) { log(""); //TODO mrtdport.send(m_responseNOK(c_w1w2NoCurrentEF)); repeat; Loading @@ -286,7 +291,8 @@ v_offset := bit2int(v_command.p1 & v_command.p2); v_result := f_readFileData(v_logicalChannel, v_offset, v_dataLength, v_data); v_result := f_readFileData(vc_simu.currentFiles[v_logicalChannel], v_offset, v_dataLength, v_data); mrtdport.send(m_responseRead(v_data, v_result)); repeat; Loading @@ -302,6 +308,8 @@ var Command v_command; var integer v_logicalChannel; var LongFileId v_longFileId; var ShortFileId v_shortFileId; var octetstring v_data := ''O; var integer v_dataLength; var integer v_offset; Loading @@ -312,7 +320,8 @@ // set current file for logical channel v_logicalChannel := f_getLogicalChannel(v_command.class); vc_simu.currentFiles[v_logicalChannel] := v_command.payload.plainText.commandData; v_longFileId := v_command.payload.plainText.commandData; vc_simu.currentFiles[v_logicalChannel] := getFileByLongId(v_longFileId); mrtdport.send(m_responseOK); repeat; Loading @@ -323,12 +332,14 @@ // set current file for logical channel v_logicalChannel := f_getLogicalChannel(v_command.class); vc_simu.currentFiles[v_logicalChannel] := v_command.payload.plainText.commandData; v_shortFileId := v_command.payload.plainText.commandData; vc_simu.currentFiles[v_logicalChannel] := getFileByShortId(v_shortFileId); v_offset := bit2int(v_command.p2); v_dataLength := v_command.payload.plainText.lengthE; v_result := f_readFileData(v_logicalChannel, v_offset, v_dataLength, v_data); v_result := f_readFileData(vc_simu.currentFiles[v_logicalChannel], v_offset, v_dataLength, v_data); mrtdport.send(m_responseRead(v_data, v_result)); repeat; Loading @@ -339,7 +350,7 @@ // Check current file v_logicalChannel := f_getLogicalChannel(v_command.class); if(vc_simu.currentFiles[v_logicalChannel] == c_longFileIdNoFile) { if(vc_simu.currentFiles[v_logicalChannel] == c_noFileInfo) { log(""); //TODO mrtdport.send(m_responseNOK(c_w1w2NoCurrentEF)); repeat; Loading @@ -347,7 +358,8 @@ v_offset := bit2int(v_command.p1 & v_command.p2); v_result := f_readFileData(v_logicalChannel, v_offset, v_dataLength, v_data); v_result := f_readFileData(vc_simu.currentFiles[v_logicalChannel], v_offset, v_dataLength, v_data); mrtdport.send(m_responseRead(v_data, v_result)); repeat; Loading @@ -357,16 +369,16 @@ } // end of a_readAnyFile altstep a_refuseFileAccess(in LongFileId p_fileId) runs on MRTD { altstep a_refuseFileAccess(in FileInfo p_file) runs on MRTD { // SELECT Command [] mrtdport.receive(mw_selectByFileID(p_fileId)) { [] mrtdport.receive(mw_selectByFileID(p_file.longFileId)) { mrtdport.send(m_responseNOK(c_w1w2SecurityStatusNotSatisfied)); repeat; } // READ Command with short EF [] mrtdport.receive(mw_readShortEF(f_longFileIdToShortFileId(p_fileId))) { [] mrtdport.receive(mw_readShortEF(p_file.shortFileId)) { mrtdport.send(m_responseNOK(c_w1w2SecurityStatusNotSatisfied)); repeat; } Loading
ePassport/ttcn/ePassport_Functions.ttcn +32 −75 Original line number Diff line number Diff line Loading @@ -39,17 +39,14 @@ external function fx_loadPassportConfiguration(in charstring p_configurationID) return charstring; // fx_unloadPassportConfiguration() // The Test Adapter should have filled an array of hexstring with the content of the file // The TTCN requests here datalength hexstring values of the file=filename, from pointer pt external function fx_findstring ( in charstring p_activefile, inout Oct2 p_offset, inout LengthE p_datalength ) return octetstring; external function fx_readFileData( in charstring p_filename, in integer p_offset, in integer p_dataLength, out octetstring p_data); } // end fileExternalFunctions } } // end externalFunctions group configurationFunctions { Loading Loading @@ -258,80 +255,40 @@ function f_readFileData( in integer v_logicalChannel, in integer v_offset, in integer v_dataLength, out octetstring v_data) in FileInfo p_fileInfo, in integer p_offset, in integer p_dataLength, out octetstring p_data) return W1W2Status { //TODO: error handling fx_readFileData(p_fileInfo.filename, p_offset, p_dataLength, p_data); return c_w1w2NormalProcessing; } //end f_readFileData // FIXME: Cleaner way ? function f_longFileIdToShortFileId(in LongFileId p_longFileId) return ShortFileId { function getFileByLongId(in LongFileId p_longFileId) return FileInfo { var integer i; if(p_longFileId == c_longFileIdDG1) { return c_shortFileIdDG1; } if(p_longFileId == c_longFileIdDG2) { return c_shortFileIdDG2; } if(p_longFileId == c_longFileIdDG3) { return c_shortFileIdDG3; } if(p_longFileId == c_longFileIdDG4) { return c_shortFileIdDG4; } if(p_longFileId == c_longFileIdDG5) { return c_shortFileIdDG5; } if(p_longFileId == c_longFileIdDG6) { return c_shortFileIdDG6; } if(p_longFileId == c_longFileIdDG7) { return c_shortFileIdDG7; for(i:=0; i<sizeof(c_ePassportFiles); i:=i+1) { if(c_ePassportFiles[i].longFileId == p_longFileId) { return c_ePassportFiles[i]; } if(p_longFileId == c_longFileIdDG8) { return c_shortFileIdDG8; } if(p_longFileId == c_longFileIdDG9) { return c_shortFileIdDG9; } if(p_longFileId == c_longFileIdDG10) { return c_shortFileIdDG10; } if(p_longFileId == c_longFileIdDG11) { return c_shortFileIdDG11; } if(p_longFileId == c_longFileIdDG12) { return c_shortFileIdDG12; } if(p_longFileId == c_longFileIdDG13) { return c_shortFileIdDG13; } if(p_longFileId == c_longFileIdDG14) { return c_shortFileIdDG14; } if(p_longFileId == c_longFileIdDG15) { return c_shortFileIdDG15; } if(p_longFileId == c_longFileIdDG16) { return c_shortFileIdDG16; } if(p_longFileId == c_longFileIdCVCA) { return c_shortFileIdCVCA; } if(p_longFileId == c_longFileIdSOD) { return c_shortFileIdSOD; return c_noFileInfo; } // end getFileByLongId function getFileByShortId(in ShortFileId p_shortFileId) return FileInfo { var integer i; for(i:=0; i<sizeof(c_ePassportFiles); i:=i+1) { if(c_ePassportFiles[i].shortFileId == p_shortFileId) { return c_ePassportFiles[i]; } if(p_longFileId == c_longFileIdCOM) { return c_shortFileIdCOM; } return '00'O; } // end f_longFileIdToShortFileId return c_noFileInfo; } // end getFileByShortId } // end fileFunctions Loading
ePassport/ttcn/ePassport_Templates.ttcn +0 −138 Original line number Diff line number Diff line Loading @@ -94,144 +94,6 @@ module ePassport_Templates { payload := mw_payload(v_failCode, 0) } group simpleFileTemplates { // TEMPLATES EF.COM file template (value) EFfile m_fileCOM := { filename := "EF.COM", shortFileId := '1e'O, fileID := '011e'O } // TEMPLATES EF.SOD file template (value) EFfile m_fileSOD := { filename := "EF.SOD", shortFileId := '1d'O, fileID := '011d'O } // TEMPLATES DG1 file template (value) EFfile m_fileDG1 := { filename := "EF.DG1", shortFileId := '01'O, fileID := '0101'O } // TEMPLATES DG2 file template (value) EFfile m_fileDG2 := { filename := "EF.DG2", shortFileId := '02'O, fileID := '0102'O } // TEMPLATES DG3 file template (value) EFfile m_fileDG3 := { filename := "EF.DG3", shortFileId := '03'O, fileID := '0103'O } // TEMPLATES DG4 file template (value) EFfile m_fileDG4 := { filename := "EF.DG4", shortFileId := '04'O, fileID := '0104'O } // TEMPLATES DG14 file template (value) EFfile m_fileDG14 := { filename := "EF.DG14", shortFileId := '0e'O, fileID := '010e'O } // TEMPLATES DG15 file template (value) EFfile m_fileDG15 := { filename := "EF.DG15", shortFileId := '0f'O, fileID := '010f'O } // TEMPLATES EF.CVCA file template (value) EFfile m_fileCVCA := { filename := "EF.CVCA", shortFileId := '1c'O, fileID := '011c'O } }//group Simple_files_templates group ConfigSet_templates { // TEMPLATES Configuration set template (value) ConfigurationSet m_cfg_plain := { efcom := m_fileCOM, efsod := m_fileSOD, dg1 := m_fileDG1, dg2 := m_fileDG2, dg3 := omit, dg4 :=omit, dg14 :=omit, dg15 :=omit, efcvca :=omit, fileslist := "EF.COM,EF.SOD,DG1,DG2", docNumber :=omit, trustPoint :=omit, mrz := PXT_MRZ }; template (value) ConfigurationSet m_cfg_bac := { efcom := m_fileCOM, efsod := m_fileSOD, dg1 := m_fileDG1, dg2 := m_fileDG2, dg3 := omit, dg4 := omit, dg14 := omit, dg15 := omit, efcvca := omit, fileslist := "EF.COM,EF.SOD,DG1,DG2", docNumber := omit, trustPoint := omit, mrz := PXT_MRZ }; template (value) ConfigurationSet m_cfg_eac := { efcom := m_fileCOM, efsod := m_fileSOD, dg1 := m_fileDG1, dg2 := m_fileDG2, dg3 := m_fileDG3, dg4 := m_fileDG4, dg14 := m_fileDG14, dg15 := omit, efcvca := omit, fileslist := "EF.COM,EF.SOD,DG1,DG2,DG3,DG4,DG14", docNumber := "C11T002JM4", trustPoint := omit, mrz := PXT_MRZ }; template (value) ConfigurationSet m_cfg_eac_aa := { efcom := m_fileCOM, efsod := m_fileSOD, dg1 := m_fileDG1, dg2 := m_fileDG2, dg3 := m_fileDG3, dg4 := m_fileDG4, dg14 := m_fileDG14, dg15 := m_fileDG15, efcvca := omit, fileslist := "EF.COM,EF.SOD,DG1,DG2,DG3,DG4,DG14,DG15", docNumber := "C11T002JM4", trustPoint := omit, mrz := PXT_MRZ }; } group Command_templates { //SELECT TEMPLATES : Send APDU to the passport 00 a4 04 0c 07 a0 00 00 02 47 10 01 Loading
ePassport/ttcn/ePassport_TestSystem.ttcn +1 −4 Original line number Diff line number Diff line Loading @@ -47,13 +47,10 @@ module ePassport_TestSystem { ** @desc Test Component Variables are defined here * */ type LongFileId CurrentFile; type record of CurrentFile CurrentFiles; type record SimuParams { SecurityStatus securityStatus, PassportProtection passportProtection, CurrentFiles currentFiles, FileSet currentFiles, octetstring kEnc, octetstring kMac, octetstring privateKey Loading
ePassport/ttcn/ePassport_Types.ttcn +5 −20 Original line number Diff line number Diff line Loading @@ -48,34 +48,19 @@ module ePassport_Types { type Oct2 LongFileId; type Oct1 ShortFileId; type record EFfile { type record FileInfo { charstring filename, ShortFileId shortFileId, LongFileId fileID LongFileId longFileId }; type record of FileInfo FileSet; type enumerated MrtdConfiguration { e_cfgDfltBac, e_cfgDfltEac } type record ConfigurationSet { EFfile efcom, EFfile efsod, EFfile dg1, EFfile dg2, EFfile dg3 optional, EFfile dg4 optional, EFfile dg14 optional, EFfile dg15 optional, EFfile efcvca optional, charstring fileslist, charstring docNumber optional, charstring trustPoint optional, charstring mrz }; } // end filesGroup group messageTypesGroup { Loading