Loading ePassport/ttcn/ePassport_Functions.ttcn +45 −17 Original line number Diff line number Diff line Loading @@ -586,6 +586,31 @@ fx_createDg(p_fileInfo.filename, p_data); } // end f_createDg function f_decodeCvca(in octetstring p_cvca) return ChrList { var ChrList v_chrs := {}; var integer v_length; var integer v_pos := 1; var integer i; var Chr v_chr; log(p_cvca); while(v_pos < lengthof(p_cvca) and p_cvca[v_pos] != '00'O) { v_chr := ""; v_length := oct2int(p_cvca[v_pos]); log(v_length); for(i:=v_pos+1; i < (v_pos + v_length + 1); i:=i+1) { v_chr := v_chr & oct2char(p_cvca[i]); } v_chrs[sizeof(v_chrs)] := v_chr; v_pos := i; } log(v_chrs); return v_chrs; } } // end fileFunctions Loading @@ -605,6 +630,7 @@ function f_initializeMRTD(in charstring p_configurationId) runs on MRTD { var octetstring v_cvcaData; var octetstring v_cvca; var octetstring v_csvCertRefIds; var CvCertificate v_cvcaCvCertificate; var integer v_decodeResult; Loading @@ -617,26 +643,28 @@ f_deriveKeys(f_extractKseedFromMrz(vc_simu.mrz), vc_simu.kEnc, vc_simu.kMac); vc_simu.documentNumber := f_extractDocumentNumberFromMrz(vc_simu.mrz); // FIXME: Force initialization of vc_simu.securityStatus - Mandatory because it's used in altstep vc_simu.securityStatus := e_noApplication; // FIXME: Force initialization of vc_simu.securityStatus vc_simu.passportProtection := e_bac; vc_simu.activeAuthenticationPerformed := false; // Read trusted CHRs from EF.CVCA f_readFileData(c_fileCVCA, 0, -1, v_cvca); vc_simu.trustedCAs := f_decodeCvca(v_cvca); // FIXME: only in case of terminal authentication // FIXME: read from CVCA f_readFileData(c_fileCvcaCert01, 0, -1, v_cvcaData); f_readFileData(c_fileCvcaCert, 0, -1, v_cvcaData); if(v_cvcaData != ''O) { v_decodeResult := decvalue(oct2bit(v_cvcaData), v_cvcaCvCertificate); // FIXME check v_decodeREsiult + ispresent // TODO: check that trusted points correspond to trustedCAs => warning. f_addTrustedCertificate( oct2char(v_cvcaCvCertificate.tlvValue.cvCertificateBody.tlvValue.cvCertificateHolderReference.tlvValue), v_cvcaCvCertificate.tlvValue.cvCertificateBody.tlvValue.cvPublicKey.tlvValue); log("trusted certificate added: ", oct2char(v_cvcaCvCertificate.tlvValue.cvCertificateBody.tlvValue.cvCertificateHolderReference.tlvValue)) ; } else { log("certificate not loaded"); } // FIXME read from EF.CVCA vc_simu.trustedCAs := {"GO_CVCA_ECC192", "DETESTCVCA00001"}; // FIXME read c_fileCertRefIds f_readFileData(c_fileCertRefIds, 0, -1, v_csvCertRefIds); Loading ePassport/ttcn/ePassport_Values.ttcn +1 −1 Original line number Diff line number Diff line Loading @@ -35,7 +35,7 @@ module ePassport_Values { const FileInfo c_noFileInfo := {filename := "", shortFileId := '00'O, longFileId := '0000'O}; const FileInfo c_fileMRZ := {filename := "MRZ", shortFileId := '00'O, longFileId := '0000'O}; const FileInfo c_fileCvcaCert01 := {filename := "CVCA.cert.01", shortFileId := '00'O, longFileId := '0000'O}; const FileInfo c_fileCvcaCert := {filename := "CVCA.Cert", shortFileId := '00'O, longFileId := '0000'O}; const FileInfo c_filePrAA := {filename := "DG15.sk", shortFileId := '00'O, longFileId := '0000'O}; const FileInfo c_filePrCA := {filename := "DG14.sk", shortFileId := '00'O, longFileId := '0000'O}; const FileInfo c_fileCertRefIds := {filename := "CertificateReferenceIDs", shortFileId := '00'O, longFileId := '0000'O}; Loading Loading
ePassport/ttcn/ePassport_Functions.ttcn +45 −17 Original line number Diff line number Diff line Loading @@ -586,6 +586,31 @@ fx_createDg(p_fileInfo.filename, p_data); } // end f_createDg function f_decodeCvca(in octetstring p_cvca) return ChrList { var ChrList v_chrs := {}; var integer v_length; var integer v_pos := 1; var integer i; var Chr v_chr; log(p_cvca); while(v_pos < lengthof(p_cvca) and p_cvca[v_pos] != '00'O) { v_chr := ""; v_length := oct2int(p_cvca[v_pos]); log(v_length); for(i:=v_pos+1; i < (v_pos + v_length + 1); i:=i+1) { v_chr := v_chr & oct2char(p_cvca[i]); } v_chrs[sizeof(v_chrs)] := v_chr; v_pos := i; } log(v_chrs); return v_chrs; } } // end fileFunctions Loading @@ -605,6 +630,7 @@ function f_initializeMRTD(in charstring p_configurationId) runs on MRTD { var octetstring v_cvcaData; var octetstring v_cvca; var octetstring v_csvCertRefIds; var CvCertificate v_cvcaCvCertificate; var integer v_decodeResult; Loading @@ -617,26 +643,28 @@ f_deriveKeys(f_extractKseedFromMrz(vc_simu.mrz), vc_simu.kEnc, vc_simu.kMac); vc_simu.documentNumber := f_extractDocumentNumberFromMrz(vc_simu.mrz); // FIXME: Force initialization of vc_simu.securityStatus - Mandatory because it's used in altstep vc_simu.securityStatus := e_noApplication; // FIXME: Force initialization of vc_simu.securityStatus vc_simu.passportProtection := e_bac; vc_simu.activeAuthenticationPerformed := false; // Read trusted CHRs from EF.CVCA f_readFileData(c_fileCVCA, 0, -1, v_cvca); vc_simu.trustedCAs := f_decodeCvca(v_cvca); // FIXME: only in case of terminal authentication // FIXME: read from CVCA f_readFileData(c_fileCvcaCert01, 0, -1, v_cvcaData); f_readFileData(c_fileCvcaCert, 0, -1, v_cvcaData); if(v_cvcaData != ''O) { v_decodeResult := decvalue(oct2bit(v_cvcaData), v_cvcaCvCertificate); // FIXME check v_decodeREsiult + ispresent // TODO: check that trusted points correspond to trustedCAs => warning. f_addTrustedCertificate( oct2char(v_cvcaCvCertificate.tlvValue.cvCertificateBody.tlvValue.cvCertificateHolderReference.tlvValue), v_cvcaCvCertificate.tlvValue.cvCertificateBody.tlvValue.cvPublicKey.tlvValue); log("trusted certificate added: ", oct2char(v_cvcaCvCertificate.tlvValue.cvCertificateBody.tlvValue.cvCertificateHolderReference.tlvValue)) ; } else { log("certificate not loaded"); } // FIXME read from EF.CVCA vc_simu.trustedCAs := {"GO_CVCA_ECC192", "DETESTCVCA00001"}; // FIXME read c_fileCertRefIds f_readFileData(c_fileCertRefIds, 0, -1, v_csvCertRefIds); Loading
ePassport/ttcn/ePassport_Values.ttcn +1 −1 Original line number Diff line number Diff line Loading @@ -35,7 +35,7 @@ module ePassport_Values { const FileInfo c_noFileInfo := {filename := "", shortFileId := '00'O, longFileId := '0000'O}; const FileInfo c_fileMRZ := {filename := "MRZ", shortFileId := '00'O, longFileId := '0000'O}; const FileInfo c_fileCvcaCert01 := {filename := "CVCA.cert.01", shortFileId := '00'O, longFileId := '0000'O}; const FileInfo c_fileCvcaCert := {filename := "CVCA.Cert", shortFileId := '00'O, longFileId := '0000'O}; const FileInfo c_filePrAA := {filename := "DG15.sk", shortFileId := '00'O, longFileId := '0000'O}; const FileInfo c_filePrCA := {filename := "DG14.sk", shortFileId := '00'O, longFileId := '0000'O}; const FileInfo c_fileCertRefIds := {filename := "CertificateReferenceIDs", shortFileId := '00'O, longFileId := '0000'O}; Loading