Commit e99ed734 authored by garciay's avatar garciay
Browse files

Security support in the TA

parent be4cf8b9
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -148,6 +148,7 @@ module LibItsCommon_TypesAndValues {
		const integer c_its_aid_MAP   := 138; 
		const integer c_its_aid_IVI   := 139; 
    	const integer c_its_aid_TLC   := 140;
    	const integer c_its_aid_GN    := 141;
    }
}
with {
+8 −20
Original line number Diff line number Diff line
@@ -1530,30 +1530,18 @@ module LibItsSecurity_Functions {
            
            function f_getCertificateValidityRestriction(
                                                         in template (value) EtsiTs103097Certificate p_cert,
                                                         out ValidityPeriod p_return
                                                         out template (value) ValidityPeriod p_validityPeriod,
                                                         out template (omit) GeographicRegion p_geographicRegion
            ) return boolean {
                p_return := valueof(p_cert.toBeSigned.validityPeriod);
                p_validityPeriod := valueof(p_cert.toBeSigned.validityPeriod);
                if (ispresent(p_cert.toBeSigned.region)) {
                    p_geographicRegion := valueof(p_cert.toBeSigned.region);
                } else {
                    p_geographicRegion := omit;
                }
                return true;
            } // End of function f_getCertificateValidityRestriction
            
            function f_getCertificateSubjectAttribute(
                                                      in template (value) EtsiTs103097Certificate p_cert/* FIXME To be reviewed,
                                                      out SubjectAttribute p_return*/
            ) return boolean {
                /* FIXME To be reviewed tfor (var integer i := 0; i < lengthof(p_cert.subject_attributes); i := i + 1) {
//FIXME RGY Titan doesn't support dot notation after valueof at the moment
//                    if (valueof(p_cert).subject_attributes[i].type_ == p_type) {
//                        p_return := valueof(p_cert).subject_attributes[i];
                    if (valueof(p_cert.subject_attributes[i].type_) == p_type) {
                        p_return := valueof(p_cert.subject_attributes[i]);
                        return true;
                    }
                }
                
                log("f_getCertificateSubjectAttribute: Failed to retrieve ", p_type);*/
                return false;
            }
            
        }// End of group certificateGetters
        
        group certificatesCaching {
+1 −1
Original line number Diff line number Diff line
@@ -41,7 +41,7 @@ module LibItsSecurity_Pics {
    /**
     * Is the IUT support certificates pushing
     */
    modulepar boolean PICS_CERTIFICATE_SELECTION := true;
    modulepar boolean PICS_SEC_CERTIFICATE_SELECTION := true;
    
    /**
     * Is the IUT support circular region geographical restriction
+20 −5
Original line number Diff line number Diff line
@@ -828,20 +828,35 @@ module LibItsSecurity_Templates {
        template (omit) HeaderInfo m_headerInfo_denm(
                                                     in template (value) Psid p_psid := c_its_aid_DENM,
                                                     in template (value) Time64 p_generationTime,
                                                     in template (value) Time64 p_expiryTime,
                                                     in template (omit) ThreeDLocation p_generationLocation := omit
        ) modifies m_ieee1609Dot2_headerInfo := {
                                                     in template (value) ThreeDLocation p_generationLocation,
                                                     in template (omit) Time64 p_expiryTime := omit
        ) modifies mw_ieee1609Dot2_headerInfo := {
            generationTime     := p_generationTime,
            expiryTime         := p_expiryTime,
            generationLocation := p_generationLocation
        } // End of template m_headerInfo_denm
        
        /**
         * 
         * Clause 7.1.2 Security profile for DENMs
         */
        template (present) HeaderInfo mw_headerInfo_denm(
                                                         template (present) Psid p_psid := c_its_aid_DENM,
                                                         template (present) Time64 p_generationTime := ?,
                                                         template (present) ThreeDLocation p_generationLocation := ?,
                                                         template Time64 p_expiryTime := omit
        ) modifies m_ieee1609Dot2_headerInfo := {
            generationTime     := p_generationTime,
            expiryTime         := p_expiryTime,
            generationLocation := p_generationLocation
        } // End of template mw_headerInfo_denm
        
        /**
         * 
         * Clause 7.1.3 Generic security profile for other signed messages
         */
        template (omit) HeaderInfo m_headerInfo_gn(
                                                   in template (value) Psid p_psid := 141, // TODO ITS-AID for GN
                                                   in template (value) Psid p_psid := c_its_aid_GN,
                                                   in template (value) Time64 p_generationTime,
                                                   in template (value) Time64 p_expiryTime,
                                                   in template (omit) ThreeDLocation p_generationLocation := omit
@@ -1326,7 +1341,7 @@ module LibItsSecurity_Templates {
        template ToBeSignedCertificate mw_toBeSignedCertificate_at(
                                                                   template (present) SequenceOfPsidSsp p_appPermissions := ?,
                                                                   template (present) VerificationKeyIndicator p_verifyKeyIndicator := ?,
                                                                   template ValidityPeriod p_validityPeriod := *,
                                                                   template ValidityPeriod p_validityPeriod := ?,
                                                                   template GeographicRegion p_region := *,
                                                                   template SubjectAssurance p_assuranceLevel := *,
                                                                   template PublicEncryptionKey p_encryptionKey := *