Loading ePassport/ttcn/ePassport_Altsteps.ttcn +4 −4 Original line number Diff line number Diff line Loading @@ -173,9 +173,7 @@ [] mrtdport.receive(mw_genericCommand) { log("**** a_default: Error: Unexpected message received. ****"); mrtdport.send(m_responseNOK(c_w1w2InstructionCodeNotSupportedOrInvalid)); setverdict(inconc); f_cleanUp(); stop; repeat; } [] mrtdport.receive { log("**** a_default: Error: Unexpected message received. ****"); Loading Loading @@ -406,6 +404,7 @@ if(f_isTrustedCertificate(oct2char(v_dstCAR))) { f_setDst(oct2char(v_dstCAR)); log("Setting DST: ", v_dstCAR); mrtdport.send(m_responseOK); } else { Loading Loading @@ -436,6 +435,7 @@ v_chr := oct2char(v_psoCommand.payload.performSecurityOperationData.psoVerifyCertificate .psoVerifyCertificateOverFullTemplate.cvCertificateBody.tlvValue.cvCertificateHolderReference.tlvValue); f_addTrustedCertificate(v_chr, v_publicKey); log("Adding trusted certificate: ", v_chr); mrtdport.send(m_responseOK); } Loading ePassport/ttcn/ePassport_Functions.ttcn +19 −8 Original line number Diff line number Diff line Loading @@ -652,6 +652,7 @@ f_loadPassportConfiguration(p_configurationId); // Prepare basic access keys // FIXME: Read DG1 instead of optical MRZ f_readFileData(c_fileMRZ, 0, -1, vc_simu.mrz); f_deriveKeys(f_extractKseedFromMrz(vc_simu.mrz), vc_simu.kEnc, vc_simu.kMac); vc_simu.documentNumber := f_extractDocumentNumberFromMrz(vc_simu.mrz); Loading @@ -666,14 +667,23 @@ // FIXME: only in case of terminal authentication f_readFileData(c_fileCvcaCert, 0, -1, v_cvcaData); if(sizeof(vc_simu.trustedCAs) > 0) { 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. if(oct2char(v_cvcaCvCertificate.tlvValue.cvCertificateBody.tlvValue.cvCertificateHolderReference.tlvValue) == vc_simu.trustedCAs[0]) { f_addTrustedCertificate( oct2char(v_cvcaCvCertificate.tlvValue.cvCertificateBody.tlvValue.cvCertificateHolderReference.tlvValue), vc_simu.trustedCAs[0], v_cvcaCvCertificate.tlvValue.cvCertificateBody.tlvValue.cvPublicKey.tlvValue); } else { log("**** f_initializeMRTD: WARNING: " & c_fileCVCA.filename & " does not match trust points ****"); } } } else { log("**** f_initializeMRTD: WARNING: " & c_fileCVCA.filename & " is empty ****"); } // FIXME read c_fileCertRefIds f_readFileData(c_fileCertRefIds, 0, -1, v_csvCertRefIds); Loading Loading @@ -796,6 +806,7 @@ // ECDSA domain parameters are only contained in CVCA certificates if(f_isTrustPoint(p_chr)) { f_setSignatureVerificationParameters(f_getDstPublickey()); log("setting sigverifparams"); } } // end f_setDst Loading Loading
ePassport/ttcn/ePassport_Altsteps.ttcn +4 −4 Original line number Diff line number Diff line Loading @@ -173,9 +173,7 @@ [] mrtdport.receive(mw_genericCommand) { log("**** a_default: Error: Unexpected message received. ****"); mrtdport.send(m_responseNOK(c_w1w2InstructionCodeNotSupportedOrInvalid)); setverdict(inconc); f_cleanUp(); stop; repeat; } [] mrtdport.receive { log("**** a_default: Error: Unexpected message received. ****"); Loading Loading @@ -406,6 +404,7 @@ if(f_isTrustedCertificate(oct2char(v_dstCAR))) { f_setDst(oct2char(v_dstCAR)); log("Setting DST: ", v_dstCAR); mrtdport.send(m_responseOK); } else { Loading Loading @@ -436,6 +435,7 @@ v_chr := oct2char(v_psoCommand.payload.performSecurityOperationData.psoVerifyCertificate .psoVerifyCertificateOverFullTemplate.cvCertificateBody.tlvValue.cvCertificateHolderReference.tlvValue); f_addTrustedCertificate(v_chr, v_publicKey); log("Adding trusted certificate: ", v_chr); mrtdport.send(m_responseOK); } Loading
ePassport/ttcn/ePassport_Functions.ttcn +19 −8 Original line number Diff line number Diff line Loading @@ -652,6 +652,7 @@ f_loadPassportConfiguration(p_configurationId); // Prepare basic access keys // FIXME: Read DG1 instead of optical MRZ f_readFileData(c_fileMRZ, 0, -1, vc_simu.mrz); f_deriveKeys(f_extractKseedFromMrz(vc_simu.mrz), vc_simu.kEnc, vc_simu.kMac); vc_simu.documentNumber := f_extractDocumentNumberFromMrz(vc_simu.mrz); Loading @@ -666,14 +667,23 @@ // FIXME: only in case of terminal authentication f_readFileData(c_fileCvcaCert, 0, -1, v_cvcaData); if(sizeof(vc_simu.trustedCAs) > 0) { 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. if(oct2char(v_cvcaCvCertificate.tlvValue.cvCertificateBody.tlvValue.cvCertificateHolderReference.tlvValue) == vc_simu.trustedCAs[0]) { f_addTrustedCertificate( oct2char(v_cvcaCvCertificate.tlvValue.cvCertificateBody.tlvValue.cvCertificateHolderReference.tlvValue), vc_simu.trustedCAs[0], v_cvcaCvCertificate.tlvValue.cvCertificateBody.tlvValue.cvPublicKey.tlvValue); } else { log("**** f_initializeMRTD: WARNING: " & c_fileCVCA.filename & " does not match trust points ****"); } } } else { log("**** f_initializeMRTD: WARNING: " & c_fileCVCA.filename & " is empty ****"); } // FIXME read c_fileCertRefIds f_readFileData(c_fileCertRefIds, 0, -1, v_csvCertRefIds); Loading Loading @@ -796,6 +806,7 @@ // ECDSA domain parameters are only contained in CVCA certificates if(f_isTrustPoint(p_chr)) { f_setSignatureVerificationParameters(f_getDstPublickey()); log("setting sigverifparams"); } } // end f_setDst Loading