Commit 3322fc51 authored by garciay's avatar garciay
Browse files

Add support of secured beacon with certificate in TA

parent 7e714d0e
Loading
Loading
Loading
Loading
+48 −24
Original line number Diff line number Diff line
@@ -123,12 +123,13 @@ module LibItsSecurity_Functions {
            /**
             * @desc Build a template of a secured beacon to be used for the Test Adapter secured beaconing processing
             */
            function f_buildSecuredMessagePayloadToBeSigned()
            function f_buildSecuredMessagePayloadToBeSigned(in boolean p_includeCertificate := false)
            return ToBeSignedSecuredMessage {
                // Local variables
                var template (value) ToBeSignedSecuredMessage v_toBeSignedSecuredMessage;
                
                // Build the beacon template
                if (p_includeCertificate == true) {
                    v_toBeSignedSecuredMessage := m_toBeSignedSecuredMessage(
                        c_security_profileOthers,
                        { // Field HeaderFields
@@ -137,7 +138,7 @@ module LibItsSecurity_Functions {
                                    PX_TA_CONFIGS[PX_CERTIFICATE_CONFIG_IDX].atCertificate
                                ) // End of template m_signerInfo_certificate
                            ), // End of template m_header_field_signer_info
                        m_header_field_generation_time(oct2int('BBBBBBBB'O)),   // To be replaced by TA with current time
                            m_header_field_generation_time(oct2int('BBBBBBBB'O)),   // To be replaced by TA with generation time
                            m_header_field_generation_location(
                                PX_TA_CONFIGS[PX_CERTIFICATE_CONFIG_IDX].location
                            )
@@ -149,6 +150,28 @@ module LibItsSecurity_Functions {
                        }, // End of field HeaderFields
                        e_signature
                    );
                } else {
                    v_toBeSignedSecuredMessage := m_toBeSignedSecuredMessage(
                        c_security_profileOthers,
                        { // Field HeaderFields
                            m_header_field_signer_info(
                                m_signerInfo_digest(
                                    PX_TA_CONFIGS[PX_CERTIFICATE_CONFIG_IDX].atCertificate.signer_infos[0].signerInfo.digest
                                ) // End of template m_signerInfo_certificate
                            ), // End of template m_header_field_signer_info
                            m_header_field_generation_time(oct2int('BBBBBBBB'O)),   // To be replaced by TA with generation time
                            m_header_field_generation_location(
                                PX_TA_CONFIGS[PX_CERTIFICATE_CONFIG_IDX].location
                            )
                        }, // End of field HeaderFields
                        {
                            m_payload_unsecured(
                                'AAAAAAAAAA'O                                       // To be replaced by TA with real payload
                            )
                        }, // End of field HeaderFields
                        e_signature
                    );
                }
                
                return valueof(v_toBeSignedSecuredMessage);
            }
@@ -656,11 +679,12 @@ module LibItsSecurity_Functions {
                                         out HeaderField p_return
            ) return boolean {
                var integer v_length := lengthof(p_securedMessage.header_fields);
                var SecuredMessage v_securedMessage := valueof(p_securedMessage);
                
                for (var integer i := 0; i < v_length; i := i + 1) {
                    if (valueof(p_securedMessage).header_fields[i].type_ == p_headerFieldType) {
                        p_return := valueof(p_securedMessage).header_fields[i];
//                        log("f_getMsgHeaderField: p_return=", p_return);
                    if (v_securedMessage.header_fields[i].type_ == p_headerFieldType) {
                        p_return := v_securedMessage.header_fields[i];
                        log("f_getMsgHeaderField: p_return=", p_return);
                        return true; 
                    }
                }
+10 −8
Original line number Diff line number Diff line
@@ -2040,7 +2040,8 @@ module LibItsSecurity_Templates {
                                                           in Oct32 p_encryptPrivateKey,
                                                           in Oct32 p_encryptPublicKeyX,
                                                           in Oct32 p_encryptPublicKeyY,
                                                           in octetstring p_ToBeSignedSecuredMessageTemplate
                                                           in octetstring p_toBeSignedSecuredMessageTemplateDigest,
                                                           in octetstring p_toBeSignedSecuredMessageTemplateCertificate
        ) := {
            signingPrivateKey                           := p_signingPrivateKey,
            signingPublicKeyX                           := p_signingPublicKeyX,
@@ -2048,7 +2049,8 @@ module LibItsSecurity_Templates {
            encryptPrivateKey                           := p_encryptPrivateKey,
            encryptPublicKeyX                           := p_encryptPublicKeyX,
            encryptPublicKeyY                           := p_encryptPublicKeyY,
            ToBeSignedSecuredMessageTemplate    := p_ToBeSignedSecuredMessageTemplate
            toBeSignedSecuredMessageTemplateDigest      := p_toBeSignedSecuredMessageTemplateDigest,
            toBeSignedSecuredMessageTemplateCertificate := p_toBeSignedSecuredMessageTemplateCertificate
        } // End of template m_enableSecurity
        
        /**
+2 −1
Original line number Diff line number Diff line
@@ -837,7 +837,8 @@ module LibItsSecurity_TypesAndValues {
            Oct32       encryptPrivateKey,
            Oct32       encryptPublicKeyX,
            Oct32       encryptPublicKeyY,
            octetstring ToBeSignedSecuredMessageTemplate
            octetstring toBeSignedSecuredMessageTemplateDigest,
            octetstring toBeSignedSecuredMessageTemplateCertificate
        } // End of type AcEnableSecurity
        
        /**