Commit 4f8d8d44 authored by garciay's avatar garciay
Browse files

Align LibIts source code with Draft ETSI TS 103 097 V1.1.9

parent 737b8f32
Loading
Loading
Loading
Loading
+5 −7
Original line number Diff line number Diff line
@@ -721,7 +721,7 @@ module LibItsGeoNetworking_Functions {
            vc_areaTable := p_areaTable;
            vc_componentName := p_componentName;
            
            f_setGenerationLocation( // TODO To be checked
            f_setGenerationLocation(
                f_getTsLatitude(),
                f_getTsLongitude()
            );
@@ -1143,7 +1143,7 @@ module LibItsGeoNetworking_Functions {
            [] geoNetworkingPort.receive(
                mw_geoNwInd(
                    mw_geoNwSecPdu(
                        mdw_secureMessageCAMs_dummy, 
                        mdw_securedMessage_CAMs,
                        ?
            ))) {
                // Skip CAM messages
@@ -2486,7 +2486,7 @@ module LibItsGeoNetworking_Functions {
                [] a_securedMessageWithCertificate(v_recv) {
                    if(f_getMsgSignerInfo(v_recv, v_si)) {
                        if(f_getCertificateSignerInfo(v_si.signerInfo.certificate, v_si)) {
                            if(match (v_si.type_, e_certificate_digest_with_ecdsap256)) {
                            if(match (v_si.type_, e_certificate_digest_with_sha256)) {
                                f_sendCertificateRequest(v_si.signerInfo.digest, p_CamPayload);
                                if(tc_ac.running) {
                                    tc_ac.stop;tc_ac.start;
@@ -2516,7 +2516,7 @@ module LibItsGeoNetworking_Functions {
                [] a_securedMessageWithCertificate(v_recv) {
                    if(f_getMsgSignerInfo(v_recv, v_si)) {
                        if(f_getCertificateSignerInfo(v_si.signerInfo.certificate, v_si)) {
                            if(match (v_si.type_, e_certificate_digest_with_ecdsap256)) {
                            if(match (v_si.type_, e_certificate_digest_with_sha256)) {
                                f_sendCertificateRequest(v_si.signerInfo.digest, p_CamPayload);
                                if(tc_ac.running) {
                                    tc_ac.stop;tc_ac.start;
@@ -2584,9 +2584,7 @@ module LibItsGeoNetworking_Functions {
            
            f_buildGnSecuredCam(
                v_securedMessage,
                {
                    m_payload_signed(bit2oct(encvalue(v_gnNonSecuredPacket)))
                },
                m_payload_signed(bit2oct(encvalue(v_gnNonSecuredPacket))),
                e_certificate,
                { 
                    m_header_field_unrecognised_certificate(
+16 −14
Original line number Diff line number Diff line
@@ -121,6 +121,11 @@ module LibItsSecurity_Functions {
        
        group hostSignatureHelpers {
            
            /**
             * @desc 2004/01/01 00:00:00 epoch in milliseconds
             */
            const Time64 c_offsetGnTime := 1072915200;
            
            /**
            * @desc Build a template of a secured beacon to be used for the Test Adapter secured beaconing processing
            */
@@ -361,8 +366,7 @@ module LibItsSecurity_Functions {
                    }
                    v_mandatoryHeaders := {
                        v_signerInfo,
                        valueof(m_header_field_generation_time(f_getCurrentTime())),
                        valueof(m_header_field_verification_advice_recommended),
                        valueof(m_header_field_generation_time(1000 * (f_getCurrentTime() - c_offsetGnTime))), // In us
                        valueof(m_header_field_its_aid(c_its_aid_CAM))
                    }
                }
@@ -440,9 +444,8 @@ module LibItsSecurity_Functions {
                    }
                    v_mandatoryHeaders := {
                        v_signerInfo,
                        valueof(m_header_field_generation_time(f_getCurrentTime())),
                        valueof(m_header_field_generation_time(1000 * (f_getCurrentTime() - c_offsetGnTime))), // In us
                        valueof(m_header_field_generation_location(p_threeDLocation)),
                        valueof(m_header_field_verification_advice_recommended),
                        valueof(m_header_field_its_aid(c_its_aid_DENM))
                    }
                }
@@ -521,9 +524,8 @@ module LibItsSecurity_Functions {
                    }
                    v_mandatoryHeaders := {
                        v_signerInfo,
                        valueof(m_header_field_generation_time(f_getCurrentTime())),
                        valueof(m_header_field_generation_location(p_threeDLocation)),
                        valueof(m_header_field_verification_advice_recommended)
                        valueof(m_header_field_generation_time(1000 * (f_getCurrentTime() - c_offsetGnTime))), // In us
                        valueof(m_header_field_generation_location(p_threeDLocation))
                    }
                }
                
@@ -740,10 +742,10 @@ module LibItsSecurity_Functions {
        group certificateGetters {
            
            /**
            * @desc Set the gneration location ase defined in Draft ETSI TS 103 097 V1.1.9
            * @param p_latitude    The latitude value
            * @param p_longitude   The longitude value
            * @param p_elevation   The elevation value
            * @desc Set the generation location as defined in Draft ETSI TS 103 097 V1.1.9 Clause 7.2 Security profile for DENMs
            * @param p_latitude    The latitude value of the ITS-S position
            * @param p_longitude   The longitude value of the ITS-S position
            * @param p_elevation   The elevation value of the ITS-S position
            * @verdict Unchanged
            */
            function f_setGenerationLocation(
+140 −68
Original line number Diff line number Diff line
@@ -722,7 +722,7 @@ module LibItsSecurity_Templates {
                        m_signerInfo_self
                    )
                },
                payload_field        := m_payload_unsecured,
                payload_field        := m_payload_signed_external,
                trailer_fields       := { }
            } // End of template m_secureMessage_dummy
            
@@ -827,13 +827,51 @@ module LibItsSecurity_Templates {
                                                                in template (present) HeaderFields p_header := ?,
                                                                in template (present) SecPayload p_payload := ?, 
                                                                in template (present) TrailerFields p_trailer := ? 
            ) := {
                protocol_version    := c_protocol_version, 
            ) modifies mw_securedMessage_dummy := {
                header_fields       := p_header,
                payload_field       := p_payload,
                trailer_fields      := p_trailer
            } // End of template mw_securedMessage
            
            template (present) SecuredMessage mdw_securedMessage_CAMs(
                                                                      in template (present) HeaderField p_header := ?,
                                                                      in template (present) SecPayload p_payload := ?, 
                                                                      in template (present) TrailerFields p_trailer := ? 
            ) modifies mw_securedMessage_dummy := {
                header_fields       := superset(mw_header_field_its_aid_CAM, p_header),
                payload_field       := p_payload,
                trailer_fields      := p_trailer
            } // End of template mdw_securedMessage_CAMs
            
            template (present) SecuredMessage mdw_securedMessage_DENMs(
                                                                       in template (present) HeaderField p_header := ?,
                                                                       in template (present) SecPayload p_payload := ?, 
                                                                       in template (present) TrailerFields p_trailer := ? 
            ) modifies mw_securedMessage_dummy := {
                header_fields       := superset(mw_header_field_its_aid_DENM, p_header),
                payload_field       := p_payload,
                trailer_fields      := p_trailer
            } // End of template mdw_securedMessage_DENMs
            
            template SecuredMessage mdw_securedMessage_Others(
                                                              in template (present) HeaderField p_header := ?,
                                                              in template (present) SecPayload p_payload := ?, 
                                                              in template (present) TrailerFields p_trailer := ? 
            ) := {
                protocol_version    := c_protocol_version, 
                header_fields       := superset(
                        complement(
                            mw_header_field_its_aid_CAM
                        ),
                        complement(
                            mw_header_field_its_aid_DENM
                        ),
                        p_header
                ),
                payload_field       := p_payload,
                trailer_fields      := p_trailer
            } // End of template mdw_securedMessage_Others
            
        } // End of group messagesRecv 
        
        /**
@@ -853,7 +891,7 @@ module LibItsSecurity_Templates {
                 * @see Draft ETSI TS 103 097 V1.1.9 Clause 5.2 Payload
                 */
                template (value) SecPayload m_payload_unsecured(
                                                            in template (omit) octetstring p_data := omit
                                                                in template (value) octetstring p_data
                ) := {
                    type_   := e_unsecured,
                    data    := p_data
@@ -874,11 +912,9 @@ module LibItsSecurity_Templates {
                 * @desc Send template for 'signed_external' Payload 
                 * @see Draft ETSI TS 103 097 V1.1.9 Clause 5.2 Payload
                 */
            template (value) SecPayload m_payload_signed_external(
                                                                  in template (omit) octetstring p_data := omit
            ) := {
                template (value) SecPayload m_payload_signed_external := {
                    type_   := e_signed_external,
                data    := p_data
                    data    := omit
                } // End of template m_payload_signed_external
                
                /**
@@ -903,14 +939,6 @@ module LibItsSecurity_Templates {
                    data    := p_data
                } // End of template m_payload_signed_and_encrypted
                
            template (value) SecPayload m_data_payload(
                                                       in template (value) SecPayloadType p_type,
                                                       in template (value) octetstring p_data
            ) := {
                type_   := p_type,
                data    := p_data
            } // End of template m_data_payload
            
            } // End of group payloadsSend 
            
            /**
@@ -1060,6 +1088,28 @@ module LibItsSecurity_Templates {
                    }
                } // End of template m_header_field_its_aid
                
                /**
                 * @desc Send template for HeaderField with CAM ItsAid identifier
                 * @see Draft ETSI TS 103 097 V1.1.9 Clause 5.4    HeaderField
                 */
                template (value) HeaderField m_header_field_its_aid_CAM := {
                    type_       := e_its_aid,
                    headerField := {
                        its_aid := c_its_aid_CAM
                    }
                } // End of template m_header_field_its_aid_CAM
                
                /**
                 * @desc Send template for HeaderField with CAM ItsAid identifier
                 * @see Draft ETSI TS 103 097 V1.1.9 Clause 5.4    HeaderField
                 */
                template (value) HeaderField m_header_field_its_aid_DENM := {
                    type_       := e_its_aid,
                    headerField := {
                        its_aid := c_its_aid_DENM
                    }
                } // End of template m_header_field_its_aid_DENM
                
                /**
                 * @desc Send template for HeaderField with signer information
                 * @see Draft ETSI TS 103 097 V1.1.9 Clause 5.4    HeaderField
@@ -1314,10 +1364,10 @@ module LibItsSecurity_Templates {
                } // End of template mw_header_field_verification_advice_required
                
                /**
                 * @desc Receive template for HeaderField with ItsAid information
                 * @desc Receive template for HeaderField with ItsAid identifier
                 * @see Draft ETSI TS 103 097 V1.1.9 Clause 5.4    HeaderField
                 */
                template (value) HeaderField mw_header_field_its_aid(
                template (present) HeaderField mw_header_field_its_aid(
                                                                     in template (present) IntX p_its_aid := ?
                ) := {
                    type_       := e_its_aid,
@@ -1326,6 +1376,28 @@ module LibItsSecurity_Templates {
                    }
                } // End of template mw_header_field_its_aid
                
                /**
                 * @desc Receive template for HeaderField with CAM ItsAid identifier
                 * @see Draft ETSI TS 103 097 V1.1.9 Clause 5.4    HeaderField
                 */
                template (value) HeaderField mw_header_field_its_aid_CAM := {
                    type_       := e_its_aid,
                    headerField := {
                        its_aid := c_its_aid_CAM
                    }
                } // End of template mw_header_field_its_aid_CAM
                
                /**
                 * @desc Receive template for HeaderField with CAM ItsAid identifier
                 * @see Draft ETSI TS 103 097 V1.1.9 Clause 5.4    HeaderField
                 */
                template (value) HeaderField mw_header_field_its_aid_DENM := {
                    type_       := e_its_aid,
                    headerField := {
                        its_aid := c_its_aid_DENM
                    }
                } // End of template mw_header_field_its_aid_DENM
                
            } // End of group headerFieldsRecv
            
        } // End of group headerFields