ItsPki_TestCases.ttcn 6.79 KB
Newer Older
/**
 *  @author   ETSI / STF545
 *  @version  $URL$
 *            $Id$
 *  @desc     Testcases  file for Security Protocol
 *  @reference   ETSI TS 103 097 v1.2.1
 *  @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_TestCases {
    // Libcommon
    import from LibCommon_Time all;
    import from LibCommon_VerdictControl all;
    import from LibCommon_Sync all;
    import from LibCommon_BasicTypesAndValues 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;
garciay's avatar
garciay committed
    import from ITS_Container language "ASN.1:1997" all;
    import from CAM_PDU_Descriptions language "ASN.1:1997" all;
    
    // LibItsCommon
    import from LibItsCommon_Functions all;
    import from LibItsCommon_ASN1_NamedNumbers all;
    
    // LibItsCam
    import from LibItsCam_TestSystem all;
garciay's avatar
garciay committed
    import from LibItsCam_Functions all;
    import from LibItsCam_Templates all;
    import from LibItsCam_TypesAndValues all;
    import from LibItsCam_Pics all;
    
    // LibItsSecurity
    import from LibItsSecurity_TypesAndValues all;
    import from LibItsSecurity_TestSystem all;
    import from LibItsSecurity_Templates all;
    import from LibItsSecurity_Functions all;
    import from LibItsSecurity_Pixits all;
    import from LibItsSecurity_Pics all;
    
    // LibItsHttp
    import from LibItsHttp_TypesAndValues all;
    import from LibItsHttp_Templates all;
    import from LibItsHttp_BinaryTemplates all;
    import from LibItsHttp_Functions all;
    
    // LibItsPki
    import from LibItsPki_Templates all;
    import from LibItsPki_TestSystem all;
    
    // AtsPki
    import from ItsPki_Functions all;
    
        testcase TC_SEC_PKI_SND_EA_01_BV() runs on ItsPki system ItsPkiSystem {
                
            // Local variables
            var EtsiTs103097Certificate v_certificate;
            var HeaderLines v_headers;
garciay's avatar
garciay committed
            var charstring vc_hashedId8ToBeUsed := "CERT_IUT_F_AT";
garciay's avatar
garciay committed
            if (not PICS_CAM_GENERATION or PICS_RSU) {
              log("*** " & testcasename() & ": PICS_CAM_GENERATION and not PICS_RSU required for executing the TC ***");
              setverdict(inconc);
              stop;
            }
            
            // Test component configuration
            vc_hashedId8ToBeUsed := "CERT_IUT_F_AT";
garciay's avatar
garciay committed
            f_cfUp(); // Initialise IUT with CERT_IUT_F_AT signed with CERT_IUT_F_AA
            
            // Test adapter configuration
            
            // Preamble
garciay's avatar
garciay committed
            f_prInitialState();
            f_readCertificate(vc_hashedId8ToBeUsed, v_certificate);
            f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
            
            // Test Body
            f_init_default_headers_list(v_headers);
            httpPort.send(
                          m_http_request(
                                         m_http_request_post(
                                                             "/", 
                                                             v_headers, 
                                                             m_http_message_body_binary(
                                                                                        m_binary_body_innerEcRequest(
                                                                                                                     m_innerEcRequest(
                                                                                                                                      "TODO",
                                                                                                                                      m_publicKeys(
                                                                                                                                                   v_certificate.toBeSigned.verifyKeyIndicator.verificationKey,
                                                                                                                                                   v_certificate.toBeSigned.encryptionKey
                                                                                                                                                  ),
                                                                                                                                      m_certificateSubjectAttributes(
                                                                                                                                                                     v_certificate.toBeSigned.appPermissions,
                                                                                                                                                                     v_certificate.toBeSigned.validityPeriod,
                                                                                                                                                                     v_certificate.toBeSigned.region,
                                                                                                                                                                     v_certificate.toBeSigned.assuranceLevel
            )))))));
            tc_ac.start;
            alt {
                [] httpPort.receive(
                    mw_http_response(
                        mw_http_response_ok(
                            mw_http_message_body_binary(
                                mw_binary_body_innerEcResponse(
                                                               mw_innerEcResponse_ok
                ))))) {
                    tc_ac.stop;
                    log("*** " & testcasename() & ": PASS: Security protocol version set to 3 ***");
                    f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
                }
                [] tc_ac.timeout {
                    log("*** " & testcasename() & ": INCONC: Expected message not received ***");
                    f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout);
                }
            } // End of 'alt' statement
            
            // Postamble
garciay's avatar
garciay committed
            f_cfDown();
            
        } // End of testcase TC_SEC_ITSS_SND_MSG_01_BV
    
garciay's avatar
garciay committed
} // End of module ItsPki_TestCases