ItsPki_Functions.ttcn 3.83 KB
Newer Older
/**
 *  @author   ETSI / STF544
 *  @version  $URL$
 *            $Id$
 *  @desc     Module containing functions for ITS PKI ATS
 *  @copyright   ETSI Copyright Notification
 *               No part may be reproduced except as authorized by written permission.
 *               The copyright and the foregoing restriction extend to reproduction in all media.
 *               All rights reserved.
 *
 */
module ItsPki_Functions {
    
    // LibCommon
    import from LibCommon_BasicTypesAndValues all;
    import from LibCommon_Time all;
    
    // LibIts
    import from IEEE1609dot2BaseTypes language "ASN.1:1997" all;
    import from IEEE1609dot2 language "ASN.1:1997" all;
    import from EtsiTs102941BaseTypes language "ASN.1:1997" all;
    import from EtsiTs102941TypesEnrolment language "ASN.1:1997" all;
    import from EtsiTs102941MessagesItss language "ASN.1:1997" all;
    import from EtsiTs103097Module language "ASN.1:1997" all;
    
    // LibItsCommon
    import from LibItsCommon_TestSystem all;
    import from LibItsCommon_Functions all;
    import from LibItsCommon_ASN1_NamedNumbers all;
    
    // LibItsDenm
    import from LibItsDenm_Templates all;
    import from LibItsDenm_Functions all;
    import from LibItsDenm_TestSystem all;
    
    // LibItsCam
    import from LibItsCam_Templates all;
    import from LibItsCam_Functions all;
    import from LibItsCam_TestSystem all;
    
    // LibItsGeoNetworking
    import from LibItsGeoNetworking_TestSystem all;
    import from LibItsGeoNetworking_Functions all;
    import from LibItsGeoNetworking_Templates all;
    import from LibItsGeoNetworking_TypesAndValues all;
    
    // LibItsSecurity
    import from LibItsSecurity_TypesAndValues all;
    import from LibItsSecurity_Templates all;
    import from LibItsSecurity_Functions all;
    
    function f_prepareEnrollmentRequest(
                                        in charstring p_configId,
                                        in template (value) InnerEcRequest p_innerEcRequest
        ) runs on ItsGeoNetworking return GeoNetworkingPdu {
            // Local variables
            var GnNonSecuredPacket v_gnNonSecuredPacket;
garciay's avatar
garciay committed
            var octetstring v_encMsg;
            var octetstring v_gnPayload;
            var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB
            var template (value) Ieee1609Dot2Data v_securedMessage := {};
            
garciay's avatar
garciay committed
            // Encode the unsecured payload
            v_encMsg := bit2oct(encvalue(valueof(p_innerEcRequest)));
            
            //f_buildGnSecuredOtherMessage(v_securedMessage,
            v_gnPayload := bit2oct(encvalue(valueof(p_innerEcRequest)));
            
            // Build signed Ieee1609Dot2Data
            v_gnNonSecuredPacket := valueof(
garciay's avatar
garciay committed
                m_geoNwUnicastPacket_with_payload(
                    v_longPosVectorNodeB,
                    f_getIutShortPosVector(),
garciay's avatar
garciay committed
                    vc_localSeqNumber,
                    c_defaultHopLimit,
                    m_trafficClass,
                    v_gnPayload
            ));
            
            // Encode it
            v_gnPayload := bit2oct(
                encvalue(
                    v_gnNonSecuredPacket
                )
            );
            /*f_buildGnSecuredOtherMessage(
                v_securedMessage,
                m_payload_signed(v_gnPayload),
                p_issuerIdentifier,
                valueof(m_threeDLocation(
                    v_longPosVectorNodeB.latitude,
                    v_longPosVectorNodeB.longitude,
                    0
                )),
                p_headerFields,
                p_configId,
                p_addMissingHeaders
            );*/
            
            // Return secured Gn packet
            return valueof(m_geoNwSecPdu(v_gnNonSecuredPacket, v_securedMessage));
    
    }
    
} // End of module ItsPki_Functions