Commit a0b60712 authored by garciay's avatar garciay
Browse files

Cleanup Security templates & Types

parent 14f9b1e9
Loading
Loading
Loading
Loading
+72 −72
Original line number Diff line number Diff line
@@ -51,23 +51,23 @@ module ItsSecurity_Functions {
        /**
        * @desc   Prepare a secured CAM
        * @param  p_configId            The configuration identifier to be used
        * @param  p_headerFields        HeaderFields to be inserted in the message
        * @param  p_signerInfoType      Add digest or AT certificate or certificate chain
        * @param  p_headerFields        HeaderInfo to be inserted in the message
        * @param  p_issuerIdentifier      Add digest or AT certificate or certificate chain
        * @param  p_addMissingHeaders   Whether to add mandatory headers not present in p_headerFields
        * @return Secured GeoNetworking packet containing a CAM
        */
        function f_prepareSecuredCam(
                                     in charstring p_configId,
                                     in template (omit) HeaderFields p_headerFields := omit,
                                     in SignerInfoType p_signerInfoType := e_certificate_digest_with_sha256,
                                     in template (omit) HeaderInfo p_headerFields := omit,
                                     in SignerIdentifier p_issuerIdentifier := e_certificate_digest_with_sha256,
                                     in boolean p_addMissingHeaders := true
        ) runs on ItsGeoNetworking return GeoNetworkingPdu {
            // Local variables
            var GnNonSecuredPacket v_gnNonSecuredPacket;
            var octetstring v_gnPayload;
            var template (value) SecuredMessage v_securedMessage;
            var template (value) Ieee1609Dot2Data v_securedMessage;
            
            // Build signed SecuredMessage
            // Build signed Ieee1609Dot2Data
            v_gnNonSecuredPacket := valueof(m_geoNwShbPacket(
                f_getPosition(c_compNodeC)
            ));
@@ -93,7 +93,7 @@ module ItsSecurity_Functions {
            f_buildGnSecuredCam(
                v_securedMessage,
                m_payload_signed(v_gnPayload),
                p_signerInfoType,
                p_issuerIdentifier,
                p_headerFields,
                p_configId,
                p_addMissingHeaders
@@ -111,8 +111,8 @@ module ItsSecurity_Functions {
         *                                      <li>0 for no trailer</li>
         *                                      <li>1 for invalid trailer</li>
         *                                      <li>2 for duplicated trailer</li>
         * @param  p_headerFields               HeaderFields to be inserted in the message
         * @param  p_signerInfoType             Add digest or AT certificate or certificate chain
         * @param  p_headerFields               HeaderInfo to be inserted in the message
         * @param  p_issuerIdentifier             Add digest or AT certificate or certificate chain
         * @param  p_addMissingHeaders          Whether to add mandatory headers not present in p_headerFields
         * @param p_alterATCertificateSignature Set to true to alter the AT certificate signature
         * @param p_alterAACertificateSignature Set to true to alter the AA certificate signature
@@ -122,8 +122,8 @@ module ItsSecurity_Functions {
                                        in charstring p_configId,
                                        in UInt8 p_protocolVersion := c_protocol_version,
                                        in integer p_trailerStatus := 0,
                                        in template (omit) HeaderFields p_headerFields := omit,
                                        in SignerInfoType p_signerInfoType := e_certificate_digest_with_sha256,
                                        in template (omit) HeaderInfo p_headerFields := omit,
                                        in SignerIdentifier p_issuerIdentifier := e_certificate_digest_with_sha256,
                                        in boolean p_addMissingHeaders := true,
                                        in boolean p_alterATCertificateSignature := false,
                                        in boolean p_alterAACertificateSignature := false
@@ -131,9 +131,9 @@ module ItsSecurity_Functions {
            // Local variables
            var GnNonSecuredPacket v_gnNonSecuredPacket;
            var octetstring v_gnPayload;
            var template (value) SecuredMessage v_securedMessage;
            var template (value) Ieee1609Dot2Data v_securedMessage;
            
            // Build signed SecuredMessage
            // Build signed Ieee1609Dot2Data
            v_gnNonSecuredPacket := valueof(m_geoNwShbPacket(
                f_getPosition(c_compNodeC)
            ));
@@ -161,7 +161,7 @@ module ItsSecurity_Functions {
                p_protocolVersion,
                p_trailerStatus,
                m_payload_signed(v_gnPayload),
                p_signerInfoType,
                p_issuerIdentifier,
                p_headerFields,
                p_configId,
                p_addMissingHeaders,
@@ -177,18 +177,18 @@ module ItsSecurity_Functions {
        /**
        * @desc   Sends a secured CAM
        * @param  p_configId        The configuration identifier to be used
        * @param  p_headerFields    Additional HeaderFields
        * @param  p_signerInfoType  Add digest or AT certificate or certificate chain
        * @param  p_headerFields    Additional HeaderInfo
        * @param  p_issuerIdentifier  Add digest or AT certificate or certificate chain
        * @return GeoNetworking payload
        */
        function f_sendSecuredCam(
                                  in charstring p_configId,
                                  in template (omit) HeaderFields p_headerFields := omit,
                                  in SignerInfoType p_signerInfoType := e_certificate_digest_with_sha256
                                  in template (omit) HeaderInfo p_headerFields := omit,
                                  in SignerIdentifier p_issuerIdentifier := e_certificate_digest_with_sha256
        ) runs on ItsGeoNetworking return GeoNetworkingPdu {
            
            // Local variables
            var GeoNetworkingPdu v_securedGnPdu := f_prepareSecuredCam(p_configId, p_headerFields, p_signerInfoType);
            var GeoNetworkingPdu v_securedGnPdu := f_prepareSecuredCam(p_configId, p_headerFields, p_issuerIdentifier);
                   
            f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu)));
                        
@@ -204,20 +204,20 @@ module ItsSecurity_Functions {
         *                               <li>0 for no trailer</li>
         *                               <li>1 for invalid trailer</li>
         *                               <li>2 for duplicated trailer</li>
        * @param  p_headerFields    Additional HeaderFields
        * @param  p_signerInfoType  Add digest or AT certificate or certificate chain
        * @param  p_headerFields    Additional HeaderInfo
        * @param  p_issuerIdentifier  Add digest or AT certificate or certificate chain
        * @return GeoNetworking payload
        */
        function f_sendSecuredCam_Bo(
                                     in charstring p_configId,
                                     in UInt8 p_protocolVersion := c_protocol_version,
                                     in integer p_trailerStatus := 1,
                                     in template (omit) HeaderFields p_headerFields := omit,
                                     in SignerInfoType p_signerInfoType := e_certificate_digest_with_sha256
                                     in template (omit) HeaderInfo p_headerFields := omit,
                                     in SignerIdentifier p_issuerIdentifier := e_certificate_digest_with_sha256
        ) runs on ItsGeoNetworking return GeoNetworkingPdu {
            
            // Local variables
            var GeoNetworkingPdu v_securedGnPdu := f_prepareSecuredCam_Bo(p_configId, p_protocolVersion, p_trailerStatus, p_headerFields, p_signerInfoType);
            var GeoNetworkingPdu v_securedGnPdu := f_prepareSecuredCam_Bo(p_configId, p_protocolVersion, p_trailerStatus, p_headerFields, p_issuerIdentifier);
            
//            log("v_securedGnPdu = ", v_securedGnPdu);
            f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu)));
@@ -233,25 +233,25 @@ module ItsSecurity_Functions {
        /**
        * @desc   Prepare a secured DENM
        * @param  p_configId            The configuration identifier to be used
        * @param  p_headerFields        HeaderFields to be inserted in the message
        * @param  p_signerInfoType      Add digest or AT certificate or certificate chain
        * @param  p_headerFields        HeaderInfo to be inserted in the message
        * @param  p_issuerIdentifier      Add digest or AT certificate or certificate chain
        * @param  p_addMissingHeaders   Whether to add mandatory headers not present in p_headerFields
        * @return Secured GeoNetworking packet containing a CAM
        */
        function f_prepareSecuredDenm(
                                      in charstring p_configId,
                                      in template (omit) HeaderFields p_headerFields := omit,
                                      in SignerInfoType p_signerInfoType := e_certificate,
                                      in template (omit) HeaderInfo p_headerFields := omit,
                                      in SignerIdentifier p_issuerIdentifier := e_certificate,
                                      in boolean p_addMissingHeaders := true
        ) runs on ItsGeoNetworking return GeoNetworkingPdu {
            // Local variables
            var GnNonSecuredPacket v_gnNonSecuredPacket;
            var octetstring v_gnPayload;
            var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB
            var template (value) SecuredMessage v_securedMessage;
            var template (value) Ieee1609Dot2Data v_securedMessage;
            var template (value) SituationContainer v_situation := m_situation(LibItsCommon_ASN1_NamedNumbers.CauseCodeType_vehicleBreakdown_, LibItsCommon_ASN1_NamedNumbers.VehicleBreakdownSubCauseCode_unavailable_);
            
            // Build signed SecuredMessage
            // Build signed Ieee1609Dot2Data
            v_gnNonSecuredPacket := valueof(
                m_geoNwBroadcastPacket(
                    v_longPosVectorNodeB,
@@ -284,7 +284,7 @@ module ItsSecurity_Functions {
            f_buildGnSecuredDenm(
                v_securedMessage,
                m_payload_signed(v_gnPayload),
                p_signerInfoType,
                p_issuerIdentifier,
                valueof(m_threeDLocation(
                    v_longPosVectorNodeB.latitude,
                    v_longPosVectorNodeB.longitude,
@@ -307,8 +307,8 @@ module ItsSecurity_Functions {
         *                               <li>0 for no trailer</li>
         *                               <li>1 for invalid trailer</li>
         *                               <li>2 for duplicated trailer</li>
         * @param  p_headerFields        HeaderFields to be inserted in the message
         * @param  p_signerInfoType      Add digest or AT certificate or certificate chain
         * @param  p_headerFields        HeaderInfo to be inserted in the message
         * @param  p_issuerIdentifier      Add digest or AT certificate or certificate chain
         * @param  p_addMissingHeaders   Whether to add mandatory headers not present in p_headerFields
         * @return Secured GeoNetworking packet containing a CAM
         */
@@ -316,18 +316,18 @@ module ItsSecurity_Functions {
                                         in charstring p_configId,
                                         in UInt8 p_protocolVersion := c_protocol_version,
                                         in integer p_trailerStatus := 0,
                                         in template (omit) HeaderFields p_headerFields := omit,
                                         in SignerInfoType p_signerInfoType := e_certificate,
                                         in template (omit) HeaderInfo p_headerFields := omit,
                                         in SignerIdentifier p_issuerIdentifier := e_certificate,
                                         in boolean p_addMissingHeaders := true
        ) runs on ItsGeoNetworking return GeoNetworkingPdu {
            // Local variables
            var GnNonSecuredPacket v_gnNonSecuredPacket;
            var octetstring v_gnPayload;
            var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB
            var template (value) SecuredMessage v_securedMessage;
            var template (value) Ieee1609Dot2Data v_securedMessage;
            var template (value) SituationContainer v_situation := m_situation(LibItsCommon_ASN1_NamedNumbers.CauseCodeType_vehicleBreakdown_, LibItsCommon_ASN1_NamedNumbers.VehicleBreakdownSubCauseCode_unavailable_);
            
            // Build signed SecuredMessage
            // Build signed Ieee1609Dot2Data
            v_gnNonSecuredPacket := valueof(
                m_geoNwBroadcastPacket(
                    v_longPosVectorNodeB,
@@ -362,7 +362,7 @@ module ItsSecurity_Functions {
                p_protocolVersion,
                p_trailerStatus,
                m_payload_signed(v_gnPayload),
                p_signerInfoType,
                p_issuerIdentifier,
                valueof(m_threeDLocation(
                    v_longPosVectorNodeB.latitude,
                    v_longPosVectorNodeB.longitude,
@@ -380,17 +380,17 @@ module ItsSecurity_Functions {
        /**
         * @desc   Sends a secured DENM
         * @param  p_configId        The configuration identifier to be used
         * @param  p_headerFields    Additional HeaderFields
         * @param  p_signerInfoType  Add digest or AT certificate or certificate chain
         * @param  p_headerFields    Additional HeaderInfo
         * @param  p_issuerIdentifier  Add digest or AT certificate or certificate chain
         * @return GeoNetworking payload
         */
        function f_sendSecuredDenm(
                                  in charstring p_configId,
                                  in template (omit) HeaderFields p_headerFields := omit,
                                  in SignerInfoType p_signerInfoType := e_certificate_digest_with_sha256
                                  in template (omit) HeaderInfo p_headerFields := omit,
                                  in SignerIdentifier p_issuerIdentifier
        ) runs on ItsGeoNetworking return GeoNetworkingPdu {
            // Local variables
            var GeoNetworkingPdu v_securedGnPdu := f_prepareSecuredDenm(p_configId, p_headerFields, p_signerInfoType);
            var GeoNetworkingPdu v_securedGnPdu := f_prepareSecuredDenm(p_configId, p_headerFields, p_issuerIdentifier);
                   
            f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu)));
                        
@@ -406,19 +406,19 @@ module ItsSecurity_Functions {
         *                               <li>0 for no trailer</li>
         *                               <li>1 for invalid trailer</li>
         *                               <li>2 for duplicated trailer</li>
         * @param  p_headerFields    Additional HeaderFields
         * @param  p_signerInfoType  Add digest or AT certificate or certificate chain
         * @param  p_headerFields    Additional HeaderInfo
         * @param  p_issuerIdentifier  Add digest or AT certificate or certificate chain
         * @return GeoNetworking payload
         */
        function f_sendSecuredDenm_Bo(
                                      in charstring p_configId,
                                      in UInt8 p_protocolVersion := c_protocol_version,
                                      in integer p_trailerStatus := 1,
                                      in template (omit) HeaderFields p_headerFields := omit,
                                      in SignerInfoType p_signerInfoType := e_certificate_digest_with_sha256
                                      in template (omit) HeaderInfo p_headerFields := omit,
                                      in SignerIdentifier p_issuerIdentifier := e_certificate_digest_with_sha256
        ) runs on ItsGeoNetworking return GeoNetworkingPdu {
            // Local variables
            var GeoNetworkingPdu v_securedGnPdu := f_prepareSecuredDenm_Bo(p_configId, p_protocolVersion, p_trailerStatus, p_headerFields, p_signerInfoType);
            var GeoNetworkingPdu v_securedGnPdu := f_prepareSecuredDenm_Bo(p_configId, p_protocolVersion, p_trailerStatus, p_headerFields, p_issuerIdentifier);
                   
            f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu)));
                        
@@ -433,24 +433,24 @@ module ItsSecurity_Functions {
        /**
        * @desc   Prepare a secured Beacon
        * @param  p_configId            The configuration identifier to be used
        * @param  p_headerFields        HeaderFields to be inserted in the message
        * @param  p_signerInfoType      Add digest or AT certificate or certificate chain
        * @param  p_headerFields        HeaderInfo to be inserted in the message
        * @param  p_issuerIdentifier      Add digest or AT certificate or certificate chain
        * @param  p_addMissingHeaders   Whether to add mandatory headers not present in p_headerFields
        * @return Secured GeoNetworking packet containing a CAM
        */
        function f_prepareSecuredBeacon(
                                      in charstring p_configId,
                                      in template (omit) HeaderFields p_headerFields := omit,
                                      in SignerInfoType p_signerInfoType := e_certificate,
                                      in template (omit) HeaderInfo p_headerFields := omit,
                                      in SignerIdentifier p_issuerIdentifier := e_certificate,
                                      in boolean p_addMissingHeaders := true
        ) runs on ItsGeoNetworking return GeoNetworkingPdu {
            // Local variables
            var GnNonSecuredPacket v_gnNonSecuredPacket;
            var octetstring v_gnPayload;
            var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB
            var template (value) SecuredMessage v_securedMessage;
            var template (value) Ieee1609Dot2Data v_securedMessage;
            
            // Build signed SecuredMessage
            // Build signed Ieee1609Dot2Data
            v_gnNonSecuredPacket := valueof(
                m_geoNwBroadcastPacket(
                    v_longPosVectorNodeB,
@@ -468,7 +468,7 @@ module ItsSecurity_Functions {
            f_buildGnSecuredOtherMessage(
                v_securedMessage,
                m_payload_signed(v_gnPayload),
                p_signerInfoType,
                p_issuerIdentifier,
                valueof(m_threeDLocation(
                    v_longPosVectorNodeB.latitude,
                    v_longPosVectorNodeB.longitude,
@@ -491,8 +491,8 @@ module ItsSecurity_Functions {
         *                               <li>0 for no trailer</li>
         *                               <li>1 for invalid trailer</li>
         *                               <li>2 for duplicated trailer</li>
         * @param  p_headerFields        HeaderFields to be inserted in the message
         * @param  p_signerInfoType      Add digest or AT certificate or certificate chain
         * @param  p_headerFields        HeaderInfo to be inserted in the message
         * @param  p_issuerIdentifier      Add digest or AT certificate or certificate chain
         * @param  p_addMissingHeaders   Whether to add mandatory headers not present in p_headerFields
         * @return Secured GeoNetworking packet containing a CAM
         */
@@ -500,17 +500,17 @@ module ItsSecurity_Functions {
                                         in charstring p_configId,
                                         in UInt8 p_protocolVersion := c_protocol_version,
                                         in integer p_trailerStatus := 0,
                                         in template (omit) HeaderFields p_headerFields := omit,
                                         in SignerInfoType p_signerInfoType := e_certificate,
                                         in template (omit) HeaderInfo p_headerFields := omit,
                                         in SignerIdentifier p_issuerIdentifier := e_certificate,
                                         in boolean p_addMissingHeaders := true
        ) runs on ItsGeoNetworking return GeoNetworkingPdu {
            // Local variables
            var GnNonSecuredPacket v_gnNonSecuredPacket;
            var octetstring v_gnPayload;
            var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB
            var template (value) SecuredMessage v_securedMessage;
            var template (value) Ieee1609Dot2Data v_securedMessage;
            
            // Build signed SecuredMessage
            // Build signed Ieee1609Dot2Data
            v_gnNonSecuredPacket := valueof(
                m_geoNwBroadcastPacket(
                    v_longPosVectorNodeB,
@@ -530,7 +530,7 @@ module ItsSecurity_Functions {
                p_protocolVersion,
                p_trailerStatus,
                m_payload_signed(v_gnPayload),
                p_signerInfoType,
                p_issuerIdentifier,
                valueof(m_threeDLocation(
                    v_longPosVectorNodeB.latitude,
                    v_longPosVectorNodeB.longitude,
@@ -548,17 +548,17 @@ module ItsSecurity_Functions {
        /**
         * @desc   Sends a secured Beacon
         * @param  p_configId        The configuration identifier to be used
         * @param  p_headerFields    Additional HeaderFields
         * @param  p_signerInfoType  Add digest or AT certificate or certificate chain
         * @param  p_headerFields    Additional HeaderInfo
         * @param  p_issuerIdentifier  Add digest or AT certificate or certificate chain
         * @return GeoNetworking payload
         */
        function f_sendSecuredBeacon(
                                     in charstring p_configId,
                                     in template (omit) HeaderFields p_headerFields := omit,
                                     in SignerInfoType p_signerInfoType := e_certificate_digest_with_sha256
                                     in template (omit) HeaderInfo p_headerFields := omit,
                                     in SignerIdentifier p_issuerIdentifier := e_certificate_digest_with_sha256
        ) runs on ItsGeoNetworking return GeoNetworkingPdu {
            // Local variables
            var GeoNetworkingPdu v_securedGnPdu := f_prepareSecuredBeacon(p_configId, p_headerFields, p_signerInfoType);
            var GeoNetworkingPdu v_securedGnPdu := f_prepareSecuredBeacon(p_configId, p_headerFields, p_issuerIdentifier);
                   
            f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu)));
                        
@@ -574,19 +574,19 @@ module ItsSecurity_Functions {
         *                               <li>0 for no trailer</li>
         *                               <li>1 for invalid trailer</li>
         *                               <li>2 for duplicated trailer</li>
         * @param  p_headerFields    Additional HeaderFields
         * @param  p_signerInfoType  Add digest or AT certificate or certificate chain
         * @param  p_headerFields    Additional HeaderInfo
         * @param  p_issuerIdentifier  Add digest or AT certificate or certificate chain
         * @return GeoNetworking payload
         */
        function f_sendSecuredBeacon_Bo(
                                        in charstring p_configId,
                                        in UInt8 p_protocolVersion := c_protocol_version,
                                        in integer p_trailerStatus := 1,
                                        in template (omit) HeaderFields p_headerFields := omit,
                                        in SignerInfoType p_signerInfoType := e_certificate_digest_with_sha256
                                        in template (omit) HeaderInfo p_headerFields := omit,
                                        in SignerIdentifier p_issuerIdentifier := e_certificate_digest_with_sha256
        ) runs on ItsGeoNetworking return GeoNetworkingPdu {
            // Local variables
            var GeoNetworkingPdu v_securedGnPdu := f_prepareSecuredBeacon_Bo(p_configId, p_protocolVersion, p_trailerStatus, p_headerFields, p_signerInfoType);
            var GeoNetworkingPdu v_securedGnPdu := f_prepareSecuredBeacon_Bo(p_configId, p_protocolVersion, p_trailerStatus, p_headerFields, p_issuerIdentifier);
                   
            f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu)));