/** * @author ETSI / STF545 * @version $Url$ * $Id$ * @desc Module containing templates for IT PKI Protocol * @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 LibItsPki_Templates { // LibCommon import from LibCommon_BasicTypesAndValues all; import from LibCommon_DataStrings all; // LibItsCommon import from LibItsCommon_TypesAndValues all; import from LibItsCommon_Functions all; import from LibItsCommon_TypesAndValues all; import from LibItsCommon_ASN1_NamedNumbers 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 EtsiTs102941TypesAuthorization language "ASN.1:1997" all; import from EtsiTs102941TypesAuthorizationValidation language "ASN.1:1997" all; import from EtsiTs102941MessagesCa language "ASN.1:1997" all; import from EtsiTs102941TrustLists language "ASN.1:1997" all; import from EtsiTs103097Module language "ASN.1:1997" all; import from Ieee1609Dot2Dot1EeRaInterface language "ASN.1:1997" all; import from Ieee1609Dot2Dot1AcaRaInterface language "ASN.1:1997" all; import from Ieee1609Dot2Dot1AcaEeInterface language "ASN.1:1997" all; import from Ieee1609Dot2Dot1Acpc language "ASN.1:1997" all; import from Ieee1609Dot2Dot1Protocol language "ASN.1:1997" all; // LibItsSecurity import from LibItsSecurity_TypesAndValues all; import from LibItsSecurity_Templates all; // LibItsPki import from LibItsPki_TypesAndValues all; template (value) EtsiTs102941Data m_etsiTs102941Data_inner_ec_request_signed_for_pop( in template (value) InnerEcRequestSignedForPop p_inner_ec_request_signed_for_pop ) := { version := PkiProtocolVersion, content := { enrolmentRequest := p_inner_ec_request_signed_for_pop } } // End of template m_etsiTs102941Data_inner_ec_request_signed_for_pop template (value) EtsiTs102941Data m_etsiTs102941Data_inner_ec_response( in template (value) InnerEcResponse p_inner_ec_response ) := { version := PkiProtocolVersion, content := { enrolmentResponse := p_inner_ec_response } } // End of template m_etsiTs102941Data_inner_ec_response template (value) EtsiTs102941Data m_etsiTs102941Data_inner_at_response( in template (value) InnerAtResponse p_inner_at_response ) := { version := PkiProtocolVersion, content := { authorizationResponse := p_inner_at_response } } // End of template m_etsiTs102941Data_inner_at_response template (value) EtsiTs102941Data m_etsiTs102941Data_ee_ra_cert_request( in template (value) EeRaCertRequest p_ee_ra_cert_request ) := { version := PkiProtocolVersion, content := { butterflyAuthorizationRequest := p_ee_ra_cert_request } } // End of template m_etsiTs102941Data_ee_ra_cert_request template (value) EtsiTs102941Data m_etsiTs102941Data_ra_ee_cert_info( in template (value) RaEeCertInfo p_ra_ee_cert_info ) := { version := PkiProtocolVersion, content := { butterflyAuthorizationResponse := p_ra_ee_cert_info } } // End of template m_etsiTs102941Data_ra_ee_cert_info template (value) EtsiTs102941Data m_etsiTs102941Data_ra_aca_cert_request( in template (value) RaAcaCertRequest p_ra_aca_cert_request ) := { version := PkiProtocolVersion, content := { butterflyCertificateRequest := p_ra_aca_cert_request } } // End of template m_etsiTs102941Data_ra_aca_cert_request template (value) EtsiTs102941Data m_etsiTs102941Data_aca_ra_cert_response( in template (value) AcaRaCertResponse p_aca_ra_cert_response ) := { version := PkiProtocolVersion, content := { butterflyCertificateResponse := p_aca_ra_cert_response } } // End of template m_etsiTs102941Data_aca_ra_cert_response template (present) EtsiTs102941Data mw_etsiTs102941Data_inner_ec_response( template (present) InnerEcResponse p_inner_ec_response := ? ) := { version := PkiProtocolVersion, content := { enrolmentResponse := p_inner_ec_response } } // End of template mw_etsiTs102941Data_inner_ec_response template (present) EtsiTs102941Data mw_etsiTs102941Data_ee_ra_cert_request( template (present) EeRaCertRequest p_ee_ra_cert_request := ? ) := { version := PkiProtocolVersion, content := { butterflyAuthorizationRequest := p_ee_ra_cert_request } } // End of template mw_etsiTs102941Data_ee_ra_cert_request template (present) EtsiTs102941Data mw_etsiTs102941Data_ra_ee_cert_info( template (present) RaEeCertInfo p_ra_ee_cert_info := ? ) := { version := PkiProtocolVersion, content := { butterflyAuthorizationResponse := p_ra_ee_cert_info } } // End of template mw_etsiTs102941Data_ra_ee_cert_info template (present) EtsiTs102941Data mw_etsiTs102941Data_ra_aca_cert_request( template (present) RaAcaCertRequest p_ra_aca_cert_request := ? ) := { version := PkiProtocolVersion, content := { butterflyCertificateRequest := p_ra_aca_cert_request } } // End of template mw_etsiTs102941Data_ra_aca_cert_request template (present) EtsiTs102941Data mw_etsiTs102941Data_ra_aca_cert_response( template (present) AcaRaCertResponse p_aca_ra_cert_response := ? ) := { version := PkiProtocolVersion, content := { butterflyCertificateResponse := p_aca_ra_cert_response } } // End of template mw_etsiTs102941Data_ra_aca_cert_response template (value) EtsiTs102941Data m_etsiTs102941Data_authorization_request( in template (value) InnerAtRequest p_inner_at_request ) := { version := PkiProtocolVersion, content := { authorizationRequest := p_inner_at_request } } // End of template m_etsiTs102941Data_authorization_request template (value) EtsiTs102941Data m_etsiTs102941Data_authorization_response( in template (value) InnerAtResponse p_inner_at_response ) := { version := PkiProtocolVersion, content := { authorizationResponse := p_inner_at_response } } // End of template m_etsiTs102941Data_authorization_response template (value) EtsiTs102941Data m_etsiTs102941Data_authorization_validation_request( in template (value) AuthorizationValidationRequest p_authorization_validation_request ) := { version := PkiProtocolVersion, content := { authorizationValidationRequest := p_authorization_validation_request } } // End of template m_etsiTs102941Data_authorization_validation_request template (value) EtsiTs102941Data m_etsiTs102941Data_authorization_validation_response( in template (value) AuthorizationValidationResponse p_authorization_validation_response ) := { version := PkiProtocolVersion, content := { authorizationValidationResponse := p_authorization_validation_response } } // End of template m_etsiTs102941Data_authorization_validation_response template (value) EtsiTs102941Data m_etsiTs102941Data_ee_ra_download_request( in template (value) EeRaDownloadRequest p_ee_ra_download_request ) := { version := PkiProtocolVersion, content := { butterflyAtDownloadRequest := p_ee_ra_download_request } } // End of template m_etsiTs102941Data_ee_ra_download_request template (present) EtsiTs102941Data mw_etsiTs102941Data_ee_ra_download_request( template (present) EeRaDownloadRequest p_ee_ra_download_request := ? ) := { version := PkiProtocolVersion, content := { butterflyAtDownloadRequest := p_ee_ra_download_request } } // End of template mw_etsiTs102941Data_ee_ra_download_request template (present) EtsiTs103097Data/*EnrolmentRequestMessage*/mw_enrolmentRequestMessage( template (present) EncryptedData p_encryptedData := ? ) modifies mw_etsiTs103097Data_encrypted := { } // End of template mw_enrolmentRequestMessage template (present) EtsiTs103097Data/*EnrolmentResponseMessage*/mw_enrolmentResponseMessage( template (present) EncryptedData p_encryptedData := ? ) modifies mw_etsiTs103097Data_encrypted := { } // End of template mw_enrolmentResponseMessage template (value) EtsiTs103097Data m_authorizationValidationRequestMessage( in template (value) EncryptedData p_encryptedData ) modifies m_etsiTs103097Data_encrypted := { } // End of template m_authorizationValidationRequestMessage template (present) EtsiTs103097Data mw_authorizationValidationResponseMessage( template (present) EncryptedData p_encryptedData := ? ) modifies mw_etsiTs103097Data_encrypted := { } // End of template mw_authorizationValidationResponseMessage template (value) EtsiTs103097Data/*AuthorizationRequestMessage*/ m_authorizationRequestMessage( in template (value) EncryptedData p_encryptedData ) modifies m_etsiTs103097Data_encrypted := { } // End of template m_authorizationRequestMessage template (present) EtsiTs103097Data/*AuthorizationRequestMessage*/ mw_authorizationRequestMessage( template (present) EncryptedData p_encryptedData := ? ) modifies mw_etsiTs103097Data_encrypted := { } // End of template mw_authorizationRequestMessage template (value) EtsiTs103097Data/*AuthorizationResponseMessage*/ m_authorizationResponseMessage( in template (value) EncryptedData p_encryptedData ) modifies m_etsiTs103097Data_encrypted := { } // End of template m_authorizationResponseMessage template (present) EtsiTs103097Data/*EnrolmentResponseMessage*/mw_butterflyAuthorizationRequest( template (present) EncryptedData p_encryptedData := ? ) modifies mw_etsiTs103097Data_encrypted := { } // End of template mw_butterflyAuthorizationRequest template (present) EtsiTs103097Data/*EnrolmentResponseMessage*/mw_butterflyAuthorizationResponse( template (present) EncryptedData p_encryptedData := ? ) modifies mw_etsiTs103097Data_encrypted := { } // End of template mw_butterflyAuthorizationResponse template (present) EtsiTs103097Data/*EnrolmentResponseMessage*/mw_butterfly_cert_request( template (present) EncryptedData p_encryptedData := ? ) modifies mw_etsiTs103097Data_encrypted := { } // End of template mw_butterfly_cert_request template (present) EtsiTs103097Data/*EnrolmentResponseMessage*/mw_butterfly_cert_response( template (present) EncryptedData p_encryptedData := ? ) modifies mw_etsiTs103097Data_encrypted := { } // End of template mw_butterfly_cert_response template (present) EtsiTs103097Data/*AuthorizationResponseMessage*/ mw_authorizationResponseMessage( template (present) EncryptedData p_encryptedData := ? ) modifies mw_etsiTs103097Data_encrypted := { } // End of template mw_authorizationResponseMessage template (value) EtsiTs102941Data m_etsiTs102941Data_to_be_signed_rca_ctl( in template (value) ToBeSignedRcaCtl p_to_be_signed_rca_ctl ) := { version := PkiProtocolVersion, content := { certificateTrustListRca := p_to_be_signed_rca_ctl } } // End of template m_etsiTs102941Data_to_be_signed_rca_ctl template (present) EtsiTs102941Data mw_etsiTs102941Data_to_be_signed_rca_ctl( template (present) ToBeSignedRcaCtl p_to_be_signed_rca_ctl := ? ) := { version := PkiProtocolVersion, content := { certificateTrustListRca := p_to_be_signed_rca_ctl } } // End of template mw_etsiTs102941Data_to_be_signed_rca_ctl template (value) EtsiTs102941Data m_etsiTs102941Data_to_be_signed_crl( in template (value) ToBeSignedCrl p_to_be_signed_crl ) := { version := PkiProtocolVersion, content := { certificateRevocationList := p_to_be_signed_crl } } // End of template m_etsiTs102941Data_to_be_signed_crl template (present) EtsiTs102941Data mw_etsiTs102941Data_to_be_signed_crl( template (present) ToBeSignedCrl p_to_be_signed_crl := ? ) := { version := PkiProtocolVersion, content := { certificateRevocationList := p_to_be_signed_crl } } // End of template mw_etsiTs102941Data_to_be_signed_crl template (present) EtsiTs102941Data mw_etsiTs102941Data_to_be_signed_tlm_ctl( template (present) ToBeSignedTlmCtl p_to_be_signed_tlm := ? ) := { version := PkiProtocolVersion, content := { certificateTrustListTlm := p_to_be_signed_tlm } } // End of template mw_etsiTs102941Data_to_be_signed_crl template (value) EtsiTs102941DataContent m_enrolmentRequest( in template (value) InnerEcRequestSignedForPop p_enrolmentRequest ) := { enrolmentRequest := p_enrolmentRequest } // End of template m_enrolmentRequest template (present) EtsiTs102941DataContent mw_enrolmentRequest( template (present) InnerEcRequestSignedForPop p_enrolmentRequest := ? ) := { enrolmentRequest := p_enrolmentRequest } // End of template mw_enrolmentRequest template (present) InnerEcRequestSignedForPop mw_innerEcRequestSignedForPop( template (present) SignedData p_signedData := ? ) modifies mw_etsiTs103097Data_signed := { } // End of template mw_innerEcRequestSignedForPop template (present) EtsiTs102941DataContent mw_enrolmentResponse( template (present) InnerEcResponse p_enrolmentResponse := ? ) := { enrolmentResponse := p_enrolmentResponse } // End of template mw_enrolmentResponse template (value) EtsiTs102941DataContent m_authorizationRequest( in template (value) InnerAtRequest p_authorizationRequest ) := { authorizationRequest := p_authorizationRequest } // End of template m_authorizationRequest template (present) EtsiTs102941DataContent mw_authorizationRequest( in template (present) InnerAtRequest p_authorizationRequest := ? ) := { authorizationRequest := p_authorizationRequest } // End of template mw_authorizationRequest template (present) EtsiTs102941DataContent mw_authorizationResponse( template (present) InnerAtResponse p_authorizationResponse := ? ) := { authorizationResponse := p_authorizationResponse } // End of template mw_authorizationResponse template (present) EtsiTs102941DataContent mw_authorizationValidationRequest( template (present) AuthorizationValidationRequest p_authorization_validation_request := ? ) := { authorizationValidationRequest := p_authorization_validation_request } // End of template mw_authorizationValidationRequest template (present) EtsiTs102941DataContent mw_authorizationValidationResponse( template (present) AuthorizationValidationResponse p_authorization_validation_response := ? ) := { authorizationValidationResponse := p_authorization_validation_response } // End of template mw_authorizationValidationResponse template (value) InnerEcRequest m_innerEcRequest( in template (value) octetstring p_itsId, in template (value) PublicKeys p_publicKeys, in template (value) CertificateSubjectAttributes p_requestedSubjectAttributes ) := { itsId := p_itsId, certificateFormat := 1, publicKeys := p_publicKeys, requestedSubjectAttributes := p_requestedSubjectAttributes } // End of template m_innerEcRequest template (present) InnerEcRequest mw_innerEcRequest( template (present) octetstring p_itsId := ?, template (present) PublicKeys p_publicKeys := ?, template (present) CertificateSubjectAttributes p_requestedSubjectAttributes := ? ) := { itsId := p_itsId, certificateFormat := 1, publicKeys := p_publicKeys, requestedSubjectAttributes := p_requestedSubjectAttributes } // End of template mw_innerEcRequest template (value) InnerAtRequest m_innerAtRequest( in template (value) PublicKeys p_publicKeys, in template (value) Oct32 p_hmacKey, in template (value) SharedAtRequest p_sharedAtRequest, in template (value) EcSignature p_ecSignature ) := { publicKeys := p_publicKeys, hmacKey := p_hmacKey, sharedAtRequest := p_sharedAtRequest, ecSignature := p_ecSignature } // End of template m_innerAtRequest template (present) InnerAtRequest mw_innerAtRequest( template (present) PublicKeys p_publicKeys := ?, template (present) Oct32 p_hmacKey := ?, template (present) SharedAtRequest p_sharedAtRequest := ?, template (present) EcSignature p_ecSignature := ? ) := { publicKeys := p_publicKeys, hmacKey := p_hmacKey, sharedAtRequest := p_sharedAtRequest, ecSignature := p_ecSignature } // End of template mw_innerAtRequest template (omit) PublicKeys m_publicKeys( in template (value) PublicVerificationKey p_verificationKey, in template (omit) PublicEncryptionKey p_encryptionKey := omit ) := { verificationKey := p_verificationKey, encryptionKey := p_encryptionKey } // End of template m_publicKeys template PublicKeys mw_publicKeys( template (present) PublicVerificationKey p_verificationKey := ?, template PublicEncryptionKey p_encryptionKey := * ) := { verificationKey := p_verificationKey, encryptionKey := p_encryptionKey } // End of template mw_publicKeys template (omit) CertificateSubjectAttributes m_certificateSubjectAttributes_id_none( in template (value) SequenceOfPsidSsp p_appPermissions, in template (omit) ValidityPeriod p_validityPeriod := omit, in template (omit) GeographicRegion p_region := omit, in template (omit) SubjectAssurance p_assuranceLevel := omit ) := { id := { none_ := NULL }, validityPeriod := p_validityPeriod, region := p_region, assuranceLevel := p_assuranceLevel, appPermissions := p_appPermissions, certIssuePermissions := omit } // End of template m_certificateSubjectAttributes_id_none template (omit) CertificateSubjectAttributes m_certificateSubjectAttributes_id_omit( in template (value) SequenceOfPsidSsp p_appPermissions, in template (omit) ValidityPeriod p_validityPeriod := omit, in template (omit) GeographicRegion p_region := omit, in template (omit) SubjectAssurance p_assuranceLevel := omit ) modifies m_certificateSubjectAttributes_id_none := { id := omit } // End of template m_certificateSubjectAttributes_id_omit template (omit) CertificateSubjectAttributes m_certificateSubjectAttributes_id_name( in template (value) Hostname p_name, in template (value) SequenceOfPsidSsp p_appPermissions, in template (omit) ValidityPeriod p_validityPeriod := omit, in template (omit) GeographicRegion p_region := omit, in template (omit) SubjectAssurance p_assuranceLevel := omit ) := { id := { name := p_name }, validityPeriod := p_validityPeriod, region := p_region, assuranceLevel := p_assuranceLevel, appPermissions := p_appPermissions, certIssuePermissions := omit } // End of template m_certificateSubjectAttributes_id_name template (value) InnerEcResponse m_innerEcResponse_ok( in template (value) Oct16 p_requestHash, in template (value) EtsiTs103097Certificate p_certificate ) := { requestHash := p_requestHash, responseCode := ok, certificate := p_certificate } // End of template m_innerEcResponse_ok template (present) InnerEcResponse mw_innerEcResponse_ok( template (present) Oct16 p_requestHash := ?, template (present) EtsiTs103097Certificate p_certificate := ? ) := { requestHash := p_requestHash, responseCode := ok, certificate := p_certificate } // End of template mw_innerEcResponse_ok template (value) InnerEcResponse m_innerEcResponse_ko( in template (value) Oct16 p_requestHash, in template (value) EnrolmentResponseCode p_responseCode ) := { requestHash := p_requestHash, responseCode := p_responseCode, certificate := omit } // End of template m_innerEcResponse_ko template (present) InnerEcResponse mw_innerEcResponse_ko( template (present) Oct16 p_requestHash := ?, template EnrolmentResponseCode p_responseCode := complement(ok) ) := { requestHash := p_requestHash, responseCode := p_responseCode, certificate := omit } // End of template mw_innerEcResponse_ko template (value) InnerAtResponse m_innerAtResponse_ok( in template (value) Oct16 p_requestHash, in template (value) EtsiTs103097Certificate p_certificate ) := { requestHash := p_requestHash, responseCode := ok, certificate := p_certificate } // End of template m_innerAtResponse_ok template (present) InnerAtResponse mw_innerAtResponse_ok( template (present) Oct16 p_requestHash := ?, template (present) EtsiTs103097Certificate p_certificate := ? ) := { requestHash := p_requestHash, responseCode := ok, certificate := p_certificate } // End of template mw_innerAtResponse_ok template (value) InnerAtResponse m_innerAtResponse_ko( in template (value) Oct16 p_requestHash, in template (value) AuthorizationResponseCode p_responseCode ) := { requestHash := p_requestHash, responseCode := p_responseCode, certificate := omit } // End of template m_innerAtResponse_ko template (present) InnerAtResponse mw_innerAtResponse_ko( template (present) Oct16 p_requestHash := ?, template AuthorizationResponseCode p_responseCode := complement(ok) ) := { requestHash := p_requestHash, responseCode := p_responseCode, certificate := omit } // End of template mw_innerAtResponse_ko template (value) AuthorizationValidationRequest m_authorization_validation_request( in template (value) SharedAtRequest p_sharedAtRequest, in template (value) EcSignature p_ecSignature ) := { sharedAtRequest := p_sharedAtRequest, ecSignature := p_ecSignature } // End of template m_authorization_validation_request template (present) AuthorizationValidationRequest mw_authorization_validation_request( template (present) SharedAtRequest p_sharedAtRequest := ?, template (present) EcSignature p_ecSignature := ? ) := { sharedAtRequest := p_sharedAtRequest, ecSignature := p_ecSignature } // End of template mw_authorization_validation_request template (value) AuthorizationValidationResponse m_authorizationValidationResponse_ok( template (value) Oct16 p_requestHash, template (value) CertificateSubjectAttributes p_confirmedSubjectAttributes ) := { requestHash := p_requestHash, responseCode := ok, confirmedSubjectAttributes := p_confirmedSubjectAttributes } // End of template m_authorizationValidationResponse_ok template (present) AuthorizationValidationResponse mw_authorizationValidationResponse_ok( template (present) Oct16 p_requestHash := ?, template (present) CertificateSubjectAttributes p_confirmedSubjectAttributes := ? ) := { requestHash := p_requestHash, responseCode := ok, confirmedSubjectAttributes := p_confirmedSubjectAttributes } // End of template mw_authorizationValidationResponse_ok template (value) AuthorizationValidationResponse m_authorizationValidationResponse_ko( in template (value) Oct16 p_requestHash, in template (value) AuthorizationValidationResponseCode p_responseCode ) := { requestHash := p_requestHash, responseCode := p_responseCode, confirmedSubjectAttributes := omit } // End of template m_authorizationValidationResponse_ko template (present) AuthorizationValidationResponse mw_authorizationValidationResponse_ko( template (present) Oct16 p_requestHash := ? ) := { requestHash := p_requestHash, responseCode := complement(ok), confirmedSubjectAttributes := omit } // End of template mw_authorizationValidationResponse_ko template (value) SharedAtRequest m_shared_at_request( in template (value) HashedId8 p_eaId, in template (value) Oct16 p_keyTag, in template (value) CertificateSubjectAttributes p_requestedSubjectAttributes ) := { eaId := p_eaId, keyTag := p_keyTag, certificateFormat := 1, requestedSubjectAttributes := p_requestedSubjectAttributes } // End of template m_shared_at_request template (present) SharedAtRequest mw_shared_at_request( template (present) HashedId8 p_eaId := ?, template (present) Oct16 p_keyTag := ?, template (present) CertificateSubjectAttributes p_requestedSubjectAttributes := ? ) := { eaId := p_eaId, keyTag := p_keyTag, certificateFormat := 1, requestedSubjectAttributes := p_requestedSubjectAttributes } // End of template mw_shared_at_request template (value) EcSignature m_ec_signature( in template (value) EtsiTs103097Data p_encryptedEcSignature ) := { encryptedEcSignature := p_encryptedEcSignature } // End of template m_ec_signature template (present) EcSignature mw_ec_signature( template (present) EtsiTs103097Data p_encryptedEcSignature := ? ) := { encryptedEcSignature := p_encryptedEcSignature } // End of template mw_ec_signature template (value) EcSignature m_ec_signature_ext_payload( in template (value) EtsiTs103097Data p_ecSignature ) := { ecSignature := p_ecSignature } // End of template m_ec_signature_ext_payload template (present) EcSignature mw_ec_signature_ext_payload( template (present) EtsiTs103097Data p_ecSignature := ? ) := { ecSignature := p_ecSignature } // End of template mw_ec_signature_ext_payload template (omit) CertificateSubjectAttributes m_certificate_subject_attributes( in template (value) SequenceOfPsidSsp p_appPermissions, in template (value) SequenceOfPsidGroupPermissions p_certIssuePermissions, in template (omit) CertificateId p_id := omit, in template (omit) ValidityPeriod p_validityPeriod := omit, in template (omit) GeographicRegion p_region := omit, in template (omit) SubjectAssurance p_assuranceLevel := omit ) := { id := p_id, validityPeriod := p_validityPeriod, region := p_region, assuranceLevel := p_assuranceLevel, appPermissions := p_appPermissions, certIssuePermissions := p_certIssuePermissions } // End of template m_certificate_subject_attributes template CertificateSubjectAttributes mw_certificate_subject_attributes( template (present) SequenceOfPsidSsp p_appPermissions := ?, template CertificateId p_id := *, template (present) ValidityPeriod p_validityPeriod := ?, template SubjectAssurance p_assuranceLevel := *, template GeographicRegion p_region := *, template SequenceOfPsidGroupPermissions p_certIssuePermissions := omit ) := { id := p_id ifpresent, validityPeriod := p_validityPeriod, region := p_region, assuranceLevel := p_assuranceLevel, appPermissions := p_appPermissions, certIssuePermissions := p_certIssuePermissions } // End of template mw_certificate_subject_attributes template CertificateSubjectAttributes mw_certificate_subject_attributes_optional_assuranceLevel( template (present) SequenceOfPsidSsp p_appPermissions := ?, template (present) CertificateId p_id := ?, template (present) ValidityPeriod p_validityPeriod := ?, template SubjectAssurance p_assuranceLevel := *, template GeographicRegion p_region := *, template SequenceOfPsidGroupPermissions p_certIssuePermissions := omit ) := { id := p_id, validityPeriod := p_validityPeriod, region := p_region, assuranceLevel := p_assuranceLevel, appPermissions := p_appPermissions, certIssuePermissions := p_certIssuePermissions } // End of template mw_certificate_subject_attributes //::= EtsiTs103097Data-SignedAndEncrypted-Unicast {EtsiTs102941Data (WITH COMPONENTS{..., content (WITH COMPONENTS{butterflyAuthorizationRequest PRESENT})})} template (value) ButterflyAuthorizationRequestMessage m_butterfly_authorization_request_message( in template (value) EncryptedData p_encryptedData ) modifies m_etsiTs103097Data_encrypted := { } // End of template m_butterfly_authorization_request template (present) ButterflyAuthorizationRequestMessage mw_butterfly_authorization_request_message( template (present) EncryptedData p_encryptedData := ? ) modifies mw_etsiTs103097Data_encrypted := { } // End of template mw_butterfly_authorization_request //::= EtsiTs103097Data-Encrypted-Unicast {EtsiTs102941ButterflyAuthorizationRequest-X509Signed} template (value) X509SignedButterflyAuthorizationRequestMessage m_x509_signed_butterfly_authorization_request_message( in template (value) EncryptedData p_encryptedData ) modifies m_etsiTs103097Data_encrypted := { } // End of template m_x509_signed_butterfly_authorization_request_message template (present) X509SignedButterflyAuthorizationRequestMessage mw_x509_signed_butterfly_authorization_request_message( template (present) EncryptedData p_encryptedData := ? ) modifies mw_etsiTs103097Data_encrypted := { } // End of template mw_x509_signed_butterfly_authorization_request_message //::= EtsiTs103097Data-Signed {EtsiTs102941Data (WITH COMPONENTS{..., content (WITH COMPONENTS{butterflyAuthorizationResponse PRESENT})})} template (value) ButterflyAuthorizationResponseMessage m_butterfly_authorization_response_message( in template (value) EncryptedData p_encryptedData ) modifies m_etsiTs103097Data_encrypted := { } // End of template m_butterfly_authorization_response_message template (present) ButterflyAuthorizationResponseMessage mw_butterfly_authorization_response_message( template (present) EncryptedData p_encryptedData := ? ) modifies mw_etsiTs103097Data_encrypted := { } // End of template mw_butterfly_authorization_response_message template (value) ButterflyAtDownloadRequestMessage m_butterfly_at_download_request_message( in template (value) EncryptedData p_encryptedData ) modifies m_etsiTs103097Data_encrypted := { } // End of template m_butterfly_at_download_request_message template (present) ButterflyAtDownloadRequestMessage mw_butterfly_at_download_request_message( template (present) EncryptedData p_encryptedData := ? ) modifies mw_etsiTs103097Data_encrypted := { } // End of template mw_butterfly_at_download_request_message template (value) EeRaCertRequest m_butterfly_authorization_request( in Time32 p_generationTime, in CertificateType p_type, in template (value) ToBeSignedCertificate p_tbsCert, in template (omit) AdditionalParams p_additionalParams := omit ) := { version := 2, generationTime := p_generationTime, type_ := p_type, tbsCert := p_tbsCert, additionalParams:= p_additionalParams } // End of template m_butterfly_authorization_request template (present) EeRaCertRequest mw_butterfly_authorization_request( template (present) Time32 p_generationTime := ?, template (present) CertificateType p_type := ?, template (present) ToBeSignedCertificate p_tbsCert := ?, template AdditionalParams p_additionalParams := * ) := { version := 2, generationTime := p_generationTime, type_ := p_type, tbsCert := p_tbsCert, additionalParams:= p_additionalParams } // End of template mw_butterfly_authorization_request template (omit) ToBeSignedCertificate m_bfk_to_be_signed_certificate( in template (value) CertificateId p_id, in template (value) SequenceOfPsidSsp p_appPermissions, in template (value) VerificationKeyIndicator p_verifyKeyIndicator, in template (omit) ValidityPeriod p_validityPeriod := omit, in template (omit) GeographicRegion p_region := 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, flags := omit, appExtensions := omit, certIssueExtensions := omit, certRequestExtension := omit } // End of template m_bfk_to_be_signed_certificate template (present) ToBeSignedCertificate mw_bfk_to_be_signed_certificate( template (present) CertificateId p_id := ?, template (present) SequenceOfPsidSsp p_appPermissions := ?, template (present) VerificationKeyIndicator p_verifyKeyIndicator := ?, template ValidityPeriod p_validityPeriod := *, template GeographicRegion p_region := *, template SubjectAssurance p_assuranceLevel := *, template PublicEncryptionKey p_encryptionKey := * ) := { 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, flags := omit, appExtensions := omit, certIssueExtensions := omit, certRequestExtension := omit } // End of template mw_bfk_to_be_signed_certificate template (omit) RaEeCertInfo m_ra_ee_cert_info( in Time32 p_generationTime, in IValue p_currentI, in HashedId8 p_requestHash, in Time32 p_nextDlTime, in template (omit) AcpcTreeId p_acpcTreeId := omit ) := { version := 2, generationTime := p_generationTime, currentI := p_currentI, requestHash := p_requestHash, nextDlTime := p_nextDlTime, acpcTreeId := p_acpcTreeId } // End of template m_ra_ee_cert_info template (present) RaEeCertInfo mw_ra_ee_cert_info( template (present) Time32 p_generationTime := ?, template (present) IValue p_currentI := ?, template (present) HashedId8 p_requestHash := ?, template (present) Time32 p_nextDlTime := ?, template AcpcTreeId p_acpcTreeId := * ) := { version := 2, generationTime := p_generationTime, currentI := p_currentI, requestHash := p_requestHash, nextDlTime := p_nextDlTime, acpcTreeId := p_acpcTreeId } // End of template mw_ra_ee_cert_info template (omit) RaEeCertAck m_ra_ee_cert_ack( in Time32 p_generationTime, in HashedId8 p_requestHash, in Time32 p_nextDlTime, in template (omit) IValue p_firstI := omit ) := { version := 2, generationTime := p_generationTime, requestHash := p_requestHash, firstI := p_firstI, nextDlTime := p_nextDlTime } // End of template m_ra_ee_cert_ack template (present) RaEeCertAck mw_ra_ee_cert_ack( template (present) Time32 p_generationTime := ?, template (present) HashedId8 p_requestHash := ?, template (present) Time32 p_nextDlTime := ?, template IValue p_firstI := * ) := { version := 2, generationTime := p_generationTime, requestHash := p_requestHash, firstI := p_firstI, nextDlTime := p_nextDlTime } // End of template mw_ra_ee_cert_ack template (omit) RaAcaCertRequest m_ra_aca_cert_request( in template (value) Time32 p_generationTime, in template (value) CertificateType p_certificateType, in template (value) RaAcaCertRequestFlags p_flags, in template (value) ToBeSignedCertificate p_tbsCert, in template (omit) LinkageInfo p_linkageInfo := omit, in template (omit) PublicEncryptionKey p_certEncKey := omit ) := { version := 2, generationTime := p_generationTime, type_ := p_certificateType, flags := p_flags, linkageInfo := p_linkageInfo, certEncKey := p_certEncKey, tbsCert := p_tbsCert } // End of template m_ra_aca_cert_request template (present) RaAcaCertRequest mw_ra_aca_cert_request( template (present) Time32 p_generationTime := ?, template (present) CertificateType p_certificateType := ?, template (present) RaAcaCertRequestFlags p_flags := ?, template (present) ToBeSignedCertificate p_tbsCert := ?, template LinkageInfo p_linkageInfo := omit, template PublicEncryptionKey p_certEncKey := omit ) := { version := 2, generationTime := p_generationTime, type_ := p_certificateType, flags := p_flags, linkageInfo := p_linkageInfo, certEncKey := p_certEncKey, tbsCert := p_tbsCert } // End of template mw_ra_aca_cert_request template (value) AcaRaCertResponse m_ra_aca_cert_response( in template (value) Time32 p_generationTime, in template (value) HashedId8 p_requestHash, in template (value) AcaResponse p_acaResponse ) := { version := 2, generationTime := p_generationTime, requestHash := p_requestHash, acaResponse := p_acaResponse } // End of template m_ra_aca_cert_response template (present) AcaRaCertResponse mw_ra_aca_cert_response( template (present) Time32 p_generationTime := ?, template (present) HashedId8 p_requestHash := ?, template (present) AcaResponse p_acaResponse := ? ) := { version := 2, generationTime := p_generationTime, requestHash := p_requestHash, acaResponse := p_acaResponse } // End of template mw_ra_aca_cert_response template (value) AcaResponse m_aca_response_plain( in template (value) AcaEeCertResponsePlainSpdu p_plain ) := { plain := p_plain } // End of template m_aca_response_plain template (present) AcaResponse mw_aca_response_plain( template (present) AcaEeCertResponsePlainSpdu p_plain := ? ) := { plain := p_plain } // End of template mw_aca_response_plain template (value) AcaResponse m_aca_response_cubk( in template (value) AcaEeCertResponseCubkSpdu p_cubk ) := { cubk := p_cubk } // End of template m_aca_response_cubk template (present) AcaResponse mw_aca_response_cubk( template (present) AcaEeCertResponseCubkSpdu p_cubk := ? ) := { cubk := p_cubk } // End of template mw_aca_response_cubk /* ScmsPdu-Scoped { AcaEeInterfacePdu (WITH COMPONENTS { acaEeCertResponse }) } */ template (value) AcaEeCertResponsePlainSpdu m_plain_spdu := { // TODO FSCOM } // End of template m_plain_spdu template (present) AcaEeCertResponsePlainSpdu mw_plain_spdu := { // TODO FSCOM } // End of template mw_plain_spdu template (value) AcaEeInterfacePdu m_aca_ee_interface_pdu( in template (value) AcaEeCertResponse p_aca_ee_cert_response ) := { acaEeCertResponse := p_aca_ee_cert_response } // End of template m_aca_ee_interface_pdu template (present) AcaEeInterfacePdu mw_aca_ee_interface_pdu( template (present) AcaEeCertResponse p_aca_ee_cert_response := ? ) := { acaEeCertResponse := p_aca_ee_cert_response } // End of template mw_aca_ee_interface_pdu template (omit) AcaEeCertResponse m_aca_ee_cert_response( in template (value) Time32 p_generationTime, in template (value) Certificate p_certificate, in template (omit) Oct32 p_privateKeyInfo := omit ) := { version := 2, generationTime := p_generationTime, certificate := p_certificate, privateKeyInfo := p_privateKeyInfo } // End of template m_aca_ee_cert_response template (present) AcaEeCertResponse mw_aca_ee_cert_response( template (present) Time32 p_generationTime := ?, template (present) Certificate p_certificate := ?, template Oct32 p_privateKeyInfo := * ) := { version := 2, generationTime := p_generationTime, certificate := p_certificate, privateKeyInfo := p_privateKeyInfo } // End of template mw_aca_ee_cert_response template (value) EeRaDownloadRequest m_ee_ra_download_request( in Time32 p_generationTime, in charstring p_filename ) := { generationTime := p_generationTime, filename := p_filename } // End of template m_ee_ra_download_request template (present) EeRaDownloadRequest mw_ee_ra_download_request( template (present) Time32 p_generationTime := ?, template (present) charstring p_filename := ? ) := { generationTime := p_generationTime, filename := p_filename } // End of template mw_ee_ra_download_request template (value) ToBeSignedRcaCtl m_to_be_signed_rca_full_ctl( in Time32 p_next_update, in UInt8 p_ctl_sequence, in template (value) CtlCommands p_ctl_commands ) := { version := 1, nextUpdate := p_next_update, isFullCtl := true, ctlSequence := p_ctl_sequence, ctlCommands := p_ctl_commands } // End of template m_to_be_signed_rca_full_ctl template (present) ToBeSignedRcaCtl mw_to_be_signed_rca_full_ctl := { version := 1, nextUpdate := ?, isFullCtl := true, ctlSequence := ?, ctlCommands := ? } // End of template mw_to_be_signed_rca_full_ctl template (present) ToBeSignedRcaCtl mw_to_be_signed_rca_delta_ctl := { version := 1, nextUpdate := ?, isFullCtl := false, ctlSequence := ?, ctlCommands := ? } // End of template mw_to_be_signed_rca_delta_ctl template (value) ToBeSignedTlmCtl m_to_be_signed_tlm_full_ctl( in Time32 p_next_update, in UInt8 p_ctl_sequence, in template (value) CtlCommands p_ctl_commands ) := { version := 1, nextUpdate := p_next_update, isFullCtl := true, ctlSequence := p_ctl_sequence, ctlCommands := p_ctl_commands } // End of template m_to_be_signed_tlm_full_ctl template (value) ToBeSignedTlmCtl m_to_be_signed_tlm_delta_ctl( in Time32 p_next_update, in UInt8 p_ctl_sequence, in template (value) CtlCommands p_ctl_commands ) modifies m_to_be_signed_tlm_full_ctl := { isFullCtl := false } // End of template m_to_be_signed_tlm_delta_ctl template (present) ToBeSignedTlmCtl mw_to_be_signed_tlm_full_ctl( template (present) Time32 p_next_update := ?, template (present) UInt8 p_ctl_sequence := ?, template (present) CtlCommands p_ctl_commands := ? ) := { version := 1, nextUpdate := p_next_update, isFullCtl := true, ctlSequence := p_ctl_sequence, ctlCommands := p_ctl_commands } // End of template mw_to_be_signed_tlm_full_ctl template (present) ToBeSignedTlmCtl mw_to_be_signed_tlm_delta_ctl( template (present) Time32 p_next_update := ?, template (present) UInt8 p_ctl_sequence := ?, template (present) CtlCommands p_ctl_commands := ? ) modifies mw_to_be_signed_tlm_full_ctl := { isFullCtl := false } // End of template mw_to_be_signed_tlm_delta_ctl template (value) ToBeSignedCrl m_to_be_signed_crl( in Time32 p_this_update, in Time32 p_next_update, in CrlEntries p_entries ) := { version := 1, thisUpdate := p_this_update, nextUpdate := p_next_update, entries := p_entries } // End of template m_to_be_signed_crl template (present) ToBeSignedCrl mw_to_be_signed_crl := { version := 1, thisUpdate := ?, nextUpdate := ?, entries := ? } // End of template mw_to_be_signed_crl template (value) CtlCommand m_ctrl_command_add( in template (value) CtlEntry p_add ) := { add := p_add } // End of template m_ctrl_command_add template (value) CtlCommand m_ctrl_command_delete( in template (value) CtlDelete p_delete ) := { delete := p_delete } // End of template m_ctrl_command_delete template (value) CtlEntry m_ctl_entry_rca( in template (value) RootCaEntry p_rca ) := { rca := p_rca } // End of template m_ctl_entry_rca template (present) CtlEntry mw_ctl_entry_rca( template (present) RootCaEntry p_rca := ? ) := { rca := p_rca } // End of template mw_ctl_entry_rca template (value) CtlEntry m_ctl_entry_aa( in template (value) AaEntry p_aa ) := { aa := p_aa } // End of template m_ctl_entry_aa template (present) CtlEntry mw_ctl_entry_aa( template (present) AaEntry p_aa := ? ) := { aa := p_aa } // End of template mw_ctl_entry_aa template (value) TlmEntry m_tlm_entry( in template (value) EtsiTs103097Certificate p_selfSignedTLMCertificate, in template (value) Url p_accessPoint ) := { selfSignedTLMCertificate := p_selfSignedTLMCertificate, successorTo := omit, accessPoint := p_accessPoint } // End of template m_tlm_entry template (present) TlmEntry mw_tlm_entry( template (present) EtsiTs103097Certificate p_selfSignedTLMCertificate := ?, template (present) Url p_accessPoint := ? ) := { selfSignedTLMCertificate := p_selfSignedTLMCertificate, successorTo := *, accessPoint := p_accessPoint } // End of template mw_tlm_entry template (value) RootCaEntry m_root_ca_entry( in template (value) EtsiTs103097Certificate p_selfsignedRootCa ) := { selfsignedRootCa := p_selfsignedRootCa, successorTo := omit } // End of template m_root_ca_entry template (present) RootCaEntry mw_root_ca_entry( template (present) EtsiTs103097Certificate p_selfsignedRootCa := ? ) := { selfsignedRootCa := p_selfsignedRootCa, successorTo := * } // End of template mw_root_ca_entry template (value) AaEntry m_aa_entry( in template (value) EtsiTs103097Certificate p_aaCertificate, in template (value) Url p_accessPoint ) := { aaCertificate := p_aaCertificate, accessPoint := p_accessPoint } // End of template m_aa_entry template (present) AaEntry mw_aa_entry( template (present) EtsiTs103097Certificate p_aaCertificate := ?, template (present) Url p_accessPoint := ? ) := { aaCertificate := p_aaCertificate, accessPoint := p_accessPoint } // End of template mw_aa_entry template (value) EaEntry m_ea_entry( in template (value) EtsiTs103097Certificate p_eaCertificate, in template (value) Url p_aaAccessPoint ) := { eaCertificate := p_eaCertificate, aaAccessPoint := p_aaAccessPoint, itsAccessPoint := omit } // End of template m_ea_entry template (present) EaEntry mw_ea_entry( template (present) EtsiTs103097Certificate p_eaCertificate := ?, template (present) Url p_aaAccessPoint := ? ) := { eaCertificate := p_eaCertificate, aaAccessPoint := p_aaAccessPoint, itsAccessPoint := * } // End of template mw_ea_entry template (value) DcEntry m_dc_entry( in template (value) Url p_url, in template (value) HashedId8s p_cert ) := { url := p_url, cert := p_cert } // End of template m_dc_entry template (present) DcEntry mw_dc_entry( template (present) Url p_url := ?, template (present) HashedId8s p_cert := ? ) := { url := p_url, cert := p_cert } // End of template mw_dc_entry } // End of module LibItsPki_Templates