Commit 5e39856a authored by filatov's avatar filatov
Browse files

f_waitForDigest

f_getCertificateSignerInfo
f_askForCertificateChain (TODO)
parent d4c9ebc3
Loading
Loading
Loading
Loading
+17 −0
Original line number Original line Diff line number Diff line
@@ -2316,6 +2316,23 @@ module LibItsGeoNetworking_Functions {
            }
            }
            return v_cert;
            return v_cert;
        }
        }
        /**
         * @desc  Wait for GN message with security containing digest as a signer info
         * @return the digest of the certificate been used to sign received message
         */
        function f_waitForDigest ()
        runs on ItsGeoNetworking
        return HashedId8 {
            var SecuredMessage v_recv;
            var HashedId8 v_digest;
            alt {
                [] a_securedMessageWithDigest(v_recv){
                    var SignerInfo v_si := f_getMsgSignerInfo(v_recv); 
                    v_digest :=  v_si.signerInfo.digest;
                }
            }
            return v_digest;
        }
    }
    }
            
            
    group messageGetters {
    group messageGetters {
+14 −0
Original line number Original line Diff line number Diff line
@@ -231,7 +231,21 @@ module LibItsSecurity_Functions {
                return v_return;
                return v_return;
            }
            }
            
            
            function f_getCertificateSignerInfo (in Certificate p_cert)
            return SignerInfo {
                var SignerInfo ret := null;
                if( lengthof(p_cert.signer_infos) > 0 ) {
                    ret := p_cert.signer_infos[0];
                }
                return ret;
            }
            
        }// End of group certificateGetters
        }// End of group certificateGetters
        group CertRequests{
            function f_askForCertificateChain (in HashedId3s p_digests) {
                
            }            
        } // End of group CertRequests 
    
    
    } // End of group helpersFunctions
    } // End of group helpersFunctions


+17 −12
Original line number Original line Diff line number Diff line
@@ -1075,13 +1075,15 @@ module LibItsSecurity_Templates {
                 *       containing certificate
                 *       containing certificate
                 * @see Draft ETSI TS 103 097 V1.1.6 Clause 5.4    HeaderField
                 * @see Draft ETSI TS 103 097 V1.1.6 Clause 5.4    HeaderField
                 */
                 */
                template (present) HeaderField mw_header_field_signer_info_certificate := {
                template (present) HeaderField mw_header_field_signer_info_certificate (
                    template (present) Certificate p_cert := ?
                ) := {
                    type_       := e_signer_info,
                    type_       := e_signer_info,
                    headerField := {
                    headerField := {
                        signer := {
                        signer := {
                            type_ := e_certificate,
                            type_ := e_certificate,
                            signerInfo := {
                            signerInfo := {
                                certificate := ?
                                certificate := p_cert
                            }
                            }
                        }
                        }
                    }
                    }
@@ -1092,13 +1094,16 @@ module LibItsSecurity_Templates {
                 *       containing certificate digest
                 *       containing certificate digest
                 * @see Draft ETSI TS 103 097 V1.1.6 Clause 5.4    HeaderField
                 * @see Draft ETSI TS 103 097 V1.1.6 Clause 5.4    HeaderField
                 */
                 */
                template (present) HeaderField mw_header_field_signer_info_digest := {
                template (present) HeaderField mw_header_field_signer_info_digest (
                    template (present) HashedId8 p_digest := ?
                
                ) := {
                    type_       := e_signer_info,
                    type_       := e_signer_info,
                    headerField := {
                    headerField := {
                        signer := {
                        signer := {
                            type_ := e_certificate_digest_with_ecdsap256,
                            type_ := e_certificate_digest_with_ecdsap256,
                            signerInfo := {
                            signerInfo := {
                                digest := ?
                                digest := p_digest
                            }
                            }
                        }
                        }
                    }
                    }
@@ -1515,11 +1520,11 @@ module LibItsSecurity_Templates {
         */
         */
        group certificatesRecv {
        group certificatesRecv {
            template (present) Certificate mw_certificate(
            template (present) Certificate mw_certificate(
                                                          in template (present) SignerInfo p_signer_info,
                                                          in template (present) SignerInfo p_signer_info :=?,
                                                          in template (present) SubjectInfo p_subject_info,
                                                          in template (present) SubjectInfo p_subject_info :=?,
                                                          in template (present) SubjectAttributes p_subject_attributes,
                                                          in template (present) SubjectAttributes p_subject_attributes :=?,
                                                          in template (present) ValidityRestrictions p_validity_restrictions,
                                                          in template (present) ValidityRestrictions p_validity_restrictions :=?,
                                                          in template (present) Signature p_signature
                                                          in template (present) Signature p_signature :=?
            ) := {
            ) := {
                version                 := c_certificate_version,
                version                 := c_certificate_version,
                signer_infos            := { p_signer_info },
                signer_infos            := { p_signer_info },
@@ -1761,7 +1766,7 @@ module LibItsSecurity_Templates {
                 */
                 */
                template (present) SecuredMessage mdw_securedMessageDENM(
                template (present) SecuredMessage mdw_securedMessageDENM(
                    template (present) HeaderFields    p_header := ?,
                    template (present) HeaderFields    p_header := ?,
                    template (present) SecPayloads     p_payloads := ?, 
                    template           SecPayloads     p_payloads := ?, 
                    template (present) TrailerFields   p_trailer := ? 
                    template (present) TrailerFields   p_trailer := ? 
                )
                )
                modifies mw_securedMessage := {
                modifies mw_securedMessage := {
@@ -1809,7 +1814,7 @@ module LibItsSecurity_Templates {
                 */
                 */
                template (present) SecuredMessage mdw_securedMessageOther(
                template (present) SecuredMessage mdw_securedMessageOther(
                    template (present) HeaderFields    p_header := ?,
                    template (present) HeaderFields    p_header := ?,
                    template (present) SecPayloads     p_payloads := ?, 
                    template           SecPayloads     p_payloads := *,
                    template (present) TrailerFields   p_trailer := ? 
                    template (present) TrailerFields   p_trailer := ? 
                )
                )
                modifies mw_securedMessage := {
                modifies mw_securedMessage := {