module ItsGenCert_Templates {
    
  // LibIts
  import from IEEE1609dot2BaseTypes language "ASN.1:1997" all;
  import from IEEE1609dot2 language "ASN.1:1997" all;
  import from EtsiTs103097Module language "ASN.1:1997" all;
    
  // LibItsSecurity
  import from LibItsSecurity_Templates all;
    
  // AtsGenCert
  import from ItsGenCert_TypeAndValues all;
  import from ItsGenCert_Pics all;
    
  template (omit) ToBeSignedCertificate m_toBeSignedCertificate(
                                                                in template (value) CertificateId p_id,
                                                                in template (value) VerificationKeyIndicator p_verifyKeyIndicator,
                                                                in template (value) ValidityPeriod p_validityPeriod,
                                                                in template (omit) GeographicRegion p_region := omit,
                                                                in template (omit) SequenceOfPsidSsp p_appPermissions := omit,
                                                                in template (omit) SubjectAssurance p_assuranceLevel := omit,
                                                                in template (omit) PublicEncryptionKey p_encryptionKey := omit
                                                                ) := { 
  id                     := p_id,
  cracaId                := '000000'O, // ETSI TS 103 097 V1.3.1 Clause 6 Bullet 2
  crlSeries              := 0, // ETSI TS 103 097 V1.3.1 Clause 6 Bullet 3
  validityPeriod         := p_validityPeriod,
  region                 := p_region,
  assuranceLevel         := p_assuranceLevel,
  appPermissions         := p_appPermissions,
  certIssuePermissions   := omit,
  certRequestPermissions := omit, 
  canRequestRollover     := omit,
  encryptionKey          := p_encryptionKey,
  verifyKeyIndicator     := p_verifyKeyIndicator
  } // End of template m_toBeSignedCertificate_aa
    
} // End of module ItsGenCert_Templates 
