Commit e9769e49 authored by garciay's avatar garciay
Browse files

Major bug fixed in f_acEnableSecurity()

parent dd9890b9
Loading
Loading
Loading
Loading
+30 −23
Original line number Original line Diff line number Diff line
@@ -1729,12 +1729,12 @@ module LibItsGeoNetworking_Functions {
            var template (value) ToBeSignedSecuredMessage v_toBeSignedSecuredMessageDigest;
            var template (value) ToBeSignedSecuredMessage v_toBeSignedSecuredMessageDigest;
            var template (value) ToBeSignedSecuredMessage v_toBeSignedSecuredMessageCertificate;
            var template (value) ToBeSignedSecuredMessage v_toBeSignedSecuredMessageCertificate;
            
            
            f_loadCertificates("cfg01");
            
            // Build the beacon template
            // Build the beacon template
            v_toBeSignedSecuredMessageDigest := f_buildSecuredMessagePayloadToBeSigned();
            v_toBeSignedSecuredMessageDigest := f_buildSecuredMessagePayloadToBeSigned();
            v_toBeSignedSecuredMessageCertificate := f_buildSecuredMessagePayloadToBeSigned(true);
            v_toBeSignedSecuredMessageCertificate := f_buildSecuredMessagePayloadToBeSigned(true);
            
            
            f_loadCertificates("cfg01");
            
            return f_acTriggerEvent(
            return f_acTriggerEvent(
                AcGnPrimitive:{ acEnableSecurity := m_enableSecurity(
                AcGnPrimitive:{ acEnableSecurity := m_enableSecurity(
                    vc_signingPrivateKey,
                    vc_signingPrivateKey,
@@ -2424,20 +2424,21 @@ module LibItsGeoNetworking_Functions {
         */
         */
        function f_waitForCertificate(
        function f_waitForCertificate(
                                      out Certificate p_cert
                                      out Certificate p_cert
        ) runs on ItsGeoNetworking
        ) runs on ItsGeoNetworking return boolean {
        return boolean {
            var SecuredMessage v_recv;
            var SecuredMessage v_recv;
            var boolean v_ret := false;
            var boolean v_ret := false;
            
            
            alt {
            alt {
                [] a_securedMessageWithCertificate(v_recv) {
                [] a_securedMessageWithCertificate(v_recv) {
                    var SignerInfo v_si;
                    var SignerInfo v_si;
                    
                    if (f_getMsgSignerInfo(v_recv, v_si) == true) { 
                    if (f_getMsgSignerInfo(v_recv, v_si) == true) { 
                        p_cert :=  v_si.signerInfo.certificate;
                        p_cert :=  v_si.signerInfo.certificate;
                        v_ret := true;
                        v_ret := true;
                    }
                    }
                }
                }
            }
            } // End of 'alt' statement
            
            return v_ret;
            return v_ret;
        } // End of function f_waitForCertificate
        } // End of function f_waitForCertificate
        
        
@@ -2450,6 +2451,7 @@ module LibItsGeoNetworking_Functions {
        return boolean {
        return boolean {
            var SecuredMessage v_recv;
            var SecuredMessage v_recv;
            var boolean v_ret := false;
            var boolean v_ret := false;
            
            alt {
            alt {
                [] a_securedMessageWithCertificateChain(v_recv) {
                [] a_securedMessageWithCertificateChain(v_recv) {
                    var SignerInfo v_si;
                    var SignerInfo v_si;
@@ -2493,12 +2495,15 @@ module LibItsGeoNetworking_Functions {
         * @desc  Ask for the certificate chain and wait for GN message with security containing certificate chain as a signer info
         * @desc  Ask for the certificate chain and wait for GN message with security containing certificate chain as a signer info
         * @return the certificate chain used for sign received message
         * @return the certificate chain used for sign received message
         */
         */
        function f_askAndWaitForCertificateChain (out CertificateChain p_chain, in template(value) octetstring p_CamPayload)
        function f_askAndWaitForCertificateChain(
        runs on ItsGeoNetworking
                                                 out CertificateChain p_chain, 
        return boolean {
                                                 in template(value) octetstring p_CamPayload
        ) runs on ItsGeoNetworking return boolean {
            // Local variables
            var SecuredMessage v_recv;
            var SecuredMessage v_recv;
            var SignerInfo     v_si;
            var SignerInfo     v_si;
            var boolean v_ret := false;
            var boolean v_ret := false;
            
            alt {
            alt {
                [] a_securedMessageWithCertificate(v_recv) {
                [] a_securedMessageWithCertificate(v_recv) {
                    if(f_getMsgSignerInfo(v_recv, v_si)) {
                    if(f_getMsgSignerInfo(v_recv, v_si)) {
@@ -2519,20 +2524,21 @@ module LibItsGeoNetworking_Functions {
                        v_ret := true;
                        v_ret := true;
                    } 
                    } 
                }
                }
            }
            } // End of 'alt' statement
            return v_ret;
        }
            
            
            return v_ret;
        } // End of function f_askAndWaitForCertificateChain
        
        
        /**
        /**
         * @desc  Wait for GN message with security containing digest as a signer info
         * @desc  Wait for GN message with security containing digest as a signer info
         * @return the digest of the certificate been used to sign received message
         * @return the digest of the certificate been used to sign received message
         */
         */
        function f_waitForDigest(out HashedId8 p_digest)
        function f_waitForDigest(out HashedId8 p_digest)
        runs on ItsGeoNetworking
        runs on ItsGeoNetworking return boolean {
        return boolean {
            // Local variables
            var SecuredMessage v_recv;
            var SecuredMessage v_recv;
            var boolean v_ret := false;
            var boolean v_ret := false;
            
            alt {
            alt {
                [] a_securedMessageWithDigest(v_recv) {
                [] a_securedMessageWithDigest(v_recv) {
                    var SignerInfo v_si;
                    var SignerInfo v_si;
@@ -2541,9 +2547,10 @@ module LibItsGeoNetworking_Functions {
                        v_ret := true;
                        v_ret := true;
                    }
                    }
                }
                }
            }
            } // End of 'alt' statement
            
            return v_ret;
            return v_ret;
        }
        } // End of function f_waitForDigest
        
        
    } // End of group waitingHelpers
    } // End of group waitingHelpers