Commit 05130921 authored by berge's avatar berge
Browse files

Bug fixes (Ispra#2)

parent 6c543a60
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -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. ****");
@@ -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 {
@@ -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);
		 		}
+19 −8
Original line number Diff line number Diff line
@@ -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);
@@ -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);
@@ -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