LibItsPki_Templates.ttcn 80.2 KB
Newer Older
YannGarcia's avatar
YannGarcia committed
/**
 *  @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 {
YannGarcia's avatar
YannGarcia committed
  // LibCommon
  import from LibCommon_BasicTypesAndValues all;
  import from LibCommon_DataStrings all;
YannGarcia's avatar
YannGarcia committed
  // LibItsCommon
  import from LibItsCommon_TypesAndValues all;
  import from LibItsCommon_Functions all;
  import from LibItsCommon_TypesAndValues all;
  import from LibItsCommon_ASN1_NamedNumbers all;
YannGarcia's avatar
YannGarcia committed
  // 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;

YannGarcia's avatar
YannGarcia committed
  // 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
YannGarcia's avatar
YannGarcia committed
  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

YannGarcia's avatar
YannGarcia committed
  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

YannGarcia's avatar
YannGarcia committed
  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 (present) EtsiTs102941Data mw_etsiTs102941Data_authorization_request(
                                                                             in template (present) InnerAtRequest p_inner_at_request := ?
                                                                             ) := {
    version := PkiProtocolVersion,
    content := {
      authorizationRequest := p_inner_at_request
    }
  } // End of template m_etsiTs102941Data_authorization_request

YannGarcia's avatar
YannGarcia committed
  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
YannGarcia's avatar
YannGarcia committed
  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
YannGarcia's avatar
YannGarcia committed
  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



YannGarcia's avatar
YannGarcia committed
  template (present) EtsiTs103097Data/*EnrolmentRequestMessage*/mw_enrolmentRequestMessage(
                                                                        template (present) EncryptedData p_encryptedData := ?
                                                                        ) modifies mw_etsiTs103097Data_encrypted := {
  } // End of template mw_enrolmentRequestMessage
YannGarcia's avatar
YannGarcia committed
  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
YannGarcia's avatar
YannGarcia committed
  template (present) EtsiTs103097Data mw_authorizationValidationResponseMessage(
                                                                                template (present) EncryptedData p_encryptedData := ?
                                                                                ) modifies mw_etsiTs103097Data_encrypted := {
  } // End of template mw_authorizationValidationResponseMessage
  template (value) EtsiTs103097Data m_authorizationRequestMessage(
                                                                  in template (value) EncryptedData p_encryptedData
                                                                  ) modifies m_etsiTs103097Data_encrypted := {
YannGarcia's avatar
YannGarcia committed
  } // End of template m_authorizationRequestMessage
  template (present) EtsiTs103097Data mw_authorizationRequestMessage(
                                                                     template (present) EncryptedData p_encryptedData := ?
                                                                     ) modifies mw_etsiTs103097Data_encrypted := {
YannGarcia's avatar
YannGarcia committed
  } // End of template mw_authorizationRequestMessage
  template (value) EtsiTs103097Data m_authorizationResponseMessage(
                                                                   in template (value) EncryptedData p_encryptedData
                                                                   ) modifies m_etsiTs103097Data_encrypted := {
YannGarcia's avatar
YannGarcia committed
  } // End of template m_authorizationResponseMessage
  template (present) EtsiTs103097Data mw_butterflyAuthorizationRequestMessage(
                                                                              template (present) EncryptedData p_encryptedData := ?
                                                                              ) modifies mw_etsiTs103097Data_encrypted := {
  } // End of template mw_butterflyAuthorizationRequestMessage
  template (present) EtsiTs103097Data mw_butterflyAuthorizationResponseMessage(
                                                                               template (present) SignedData p_signedData := ?
                                                                               ) modifies mw_etsiTs103097Data_signed := {
  } // End of template mw_butterflyAuthorizationResponseMessage

  template (value) EtsiTs103097Data m_butterflyCertRequestMessage(
                                                                  in template (value) EncryptedData p_encryptedData
                                                                  ) modifies m_etsiTs103097Data_encrypted := {
  } // End of template m_butterflyCertRequestMessage
  template (present) EtsiTs103097Data mw_butterflyCertRequestMessage(
                                                                     template (present) EncryptedData p_encryptedData := ?
                                                                     ) modifies mw_etsiTs103097Data_encrypted := {
  } // End of template mw_butterflyCertRequestMessage

  template (value) EtsiTs103097Data m_butterflyCertResponseMessage(
                                                                   in template (value) EncryptedData p_encryptedData
                                                                   ) modifies mw_etsiTs103097Data_encrypted := {
  } // End of template m_butterflyCertResponseMessage
  template (present) EtsiTs103097Data mw_butterflyCertResponseMessage(
                                                                      template (present) EncryptedData p_encryptedData := ?
                                                                      ) modifies mw_etsiTs103097Data_encrypted := {
  } // End of template mw_butterflyCertResponseMessage
YannGarcia's avatar
YannGarcia committed
  template (present) EtsiTs103097Data/*AuthorizationResponseMessage*/ mw_authorizationResponseMessage(
                                                                                  template (present) EncryptedData p_encryptedData := ?
                                                                                  ) modifies mw_etsiTs103097Data_encrypted := {
  } // End of template mw_authorizationResponseMessage
YannGarcia's avatar
YannGarcia committed
  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

YannGarcia's avatar
YannGarcia committed
  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
YannGarcia's avatar
YannGarcia committed
    }
  } // 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
YannGarcia's avatar
YannGarcia committed
  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
YannGarcia's avatar
YannGarcia committed
  template (present) EtsiTs102941DataContent mw_enrolmentResponse(
                                                                  template (present) InnerEcResponse p_enrolmentResponse := ?
                                                                  ) := {
    enrolmentResponse := p_enrolmentResponse
  } // End of template mw_enrolmentResponse
YannGarcia's avatar
YannGarcia committed
  template (value) EtsiTs102941DataContent m_authorizationRequest(
                                                                  in template (value) InnerAtRequest p_authorizationRequest
                                                                  ) := {
    authorizationRequest := p_authorizationRequest
  } // End of template m_authorizationRequest
YannGarcia's avatar
YannGarcia committed
  template (present) EtsiTs102941DataContent mw_authorizationRequest(
                                                                     in template (present) InnerAtRequest p_authorizationRequest := ?
                                                                     ) := {
    authorizationRequest := p_authorizationRequest
  } // End of template mw_authorizationRequest
YannGarcia's avatar
YannGarcia committed
  template (present) EtsiTs102941DataContent mw_authorizationResponse(
                                                                      template (present) InnerAtResponse p_authorizationResponse := ?
                                                                      ) := {
    authorizationResponse := p_authorizationResponse
  } // End of template mw_authorizationResponse
YannGarcia's avatar
YannGarcia committed
  template (present) EtsiTs102941DataContent mw_authorizationValidationRequest(
                                                                               template (present) AuthorizationValidationRequest p_authorization_validation_request := ?
                                                                               ) := {
    authorizationValidationRequest := p_authorization_validation_request
  } // End of template mw_authorizationValidationRequest
YannGarcia's avatar
YannGarcia committed
  template (present) EtsiTs102941DataContent mw_authorizationValidationResponse(
                                                                                template (present) AuthorizationValidationResponse p_authorization_validation_response := ?
                                                                                ) := {
    authorizationValidationResponse := p_authorization_validation_response
  } // End of template mw_authorizationValidationResponse
  template (value) EtsiTs102941DataContent m_butterflyAuthorizationRequest(
                                                                           in template (value) EeRaCertRequest p_butterfly_authorization_request
                                                                           ) := {
    butterflyAuthorizationRequest := p_butterfly_authorization_request
  } // End of template m_butterflyAuthorizationRequest

  template (present) EtsiTs102941DataContent mw_butterflyAuthorizationRequest(
                                                                              template (present) EeRaCertRequest p_butterfly_authorization_request := ?
                                                                              ) := {
    butterflyAuthorizationRequest := p_butterfly_authorization_request
  } // End of template mw_butterflyAuthorizationRequest

  template (value) EtsiTs102941DataContent m_butterflyAuthorizationResponse(
                                                                            in template (value) RaEeCertInfo p_butterfly_authorization_response
                                                                            ) := {
    butterflyAuthorizationResponse := p_butterfly_authorization_response
  } // End of template m_butterflyAuthorizationResponse

  template (present) EtsiTs102941DataContent mw_butterflyAuthorizationResponse(
                                                                               template (present) RaEeCertInfo p_butterfly_authorization_response := ?
                                                                               ) := {
    butterflyAuthorizationResponse := p_butterfly_authorization_response
  } // End of template mw_butterflyAuthorizationResponse




  // //::= EtsiTs103097Data-SignedAndEncrypted-Unicast {EtsiTs102941Data (WITH COMPONENTS{..., content (WITH COMPONENTS{butterflyAuthorizationRequest PRESENT})})}
  // template (value) ButterflyAuthorizationRequestMessage m_ee_ra_cert_request_message(
  //                                                                                                 in template (value) EncryptedData p_encryptedData
  //                                                                                                 ) modifies m_etsiTs103097Data_encrypted := {
  // } // End of template m_ee_ra_cert_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



















YannGarcia's avatar
YannGarcia committed
  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
YannGarcia's avatar
YannGarcia committed
  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
YannGarcia's avatar
YannGarcia committed
  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
YannGarcia's avatar
YannGarcia committed
  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
YannGarcia's avatar
YannGarcia committed
  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
YannGarcia's avatar
YannGarcia committed
  template PublicKeys mw_publicKeys(
                                    template (present) PublicVerificationKey p_verificationKey := ?,
                                    template PublicEncryptionKey p_encryptionKey := *
                                    ) := {
    verificationKey := p_verificationKey,
    encryptionKey   := p_encryptionKey
  } // End of template mw_publicKeys
YannGarcia's avatar
YannGarcia committed
  template (omit) CertificateSubjectAttributes m_certificateSubjectAttributes_id_none(
                                                                                      in template (omit) SequenceOfPsidSsp p_appPermissions := omit,
YannGarcia's avatar
YannGarcia committed
                                                                                      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
YannGarcia's avatar
YannGarcia committed
  template (omit) CertificateSubjectAttributes m_certificateSubjectAttributes_id_omit(
                                                                                      in template (omit) SequenceOfPsidSsp p_appPermissions := omit,
YannGarcia's avatar
YannGarcia committed
                                                                                      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
YannGarcia's avatar
YannGarcia committed
  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
YannGarcia's avatar
YannGarcia committed
  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
YannGarcia's avatar
YannGarcia committed
  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
YannGarcia's avatar
YannGarcia committed
  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
YannGarcia's avatar
YannGarcia committed
  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
YannGarcia's avatar
YannGarcia committed
  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
YannGarcia's avatar
YannGarcia committed
  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
YannGarcia's avatar
YannGarcia committed
  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
YannGarcia's avatar
YannGarcia committed
  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
YannGarcia's avatar
YannGarcia committed
  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
YannGarcia's avatar
YannGarcia committed
  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
YannGarcia's avatar
YannGarcia committed
  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
YannGarcia's avatar
YannGarcia committed
  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
YannGarcia's avatar
YannGarcia committed
  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
YannGarcia's avatar
YannGarcia committed
  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
YannGarcia's avatar
YannGarcia committed
  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
YannGarcia's avatar
YannGarcia committed
  template (present) EcSignature mw_ec_signature_ext_payload(
                                                             template (present) EtsiTs103097Data p_ecSignature := ?
                                                             ) := {
    ecSignature := p_ecSignature
  } // End of template mw_ec_signature_ext_payload
YannGarcia's avatar
YannGarcia committed
  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
YannGarcia's avatar
YannGarcia committed
  template CertificateSubjectAttributes mw_certificate_subject_attributes(
                                                                          template (present) SequenceOfPsidSsp p_appPermissions := ?,
                                                                          template CertificateId p_id := *,
                                                                          template ValidityPeriod p_validityPeriod := *,
YannGarcia's avatar
YannGarcia committed
                                                                          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
YannGarcia's avatar
YannGarcia committed
  template CertificateSubjectAttributes mw_certificate_subject_attributes_optional_assuranceLevel(
                                                                                                  template (present) SequenceOfPsidSsp p_appPermissions := ?,
                                                                                                  template (present) CertificateId p_id := ?,
                                                                                                  template ValidityPeriod p_validityPeriod := *,
YannGarcia's avatar
YannGarcia committed
                                                                                                  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

  template (value) EeRaCertRequest m_ee_ra_cert_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_ee_ra_cert_request
  template (present) EeRaCertRequest mw_ee_ra_cert_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_ee_ra_cert_request
  template (value) AdditionalParams m_additional_params_original(
                                                                 in template (value) ButterflyParamsOriginal p_original
                                                                  ) := {
    original := p_original
  } // End of template m_additional_params_original

  template (present) AdditionalParams mw_additional_params_original(
                                                                    template (present) ButterflyParamsOriginal p_original := ?
                                                                    ) := {
    original := p_original
  } // End of template mw_additional_params_original

  template (value) AdditionalParams m_additional_params_unified(
                                                                in template (value) ButterflyExpansion p_unified
                                                                ) := {
    unified := p_unified
  } // End of template m_additional_params_unified

  template (present) AdditionalParams mw_additional_params_unified(
                                                                   template (present) ButterflyExpansion p_unified := ?
                                                                   ) := {
    unified := p_unified
  } // End of template mw_additional_params_unified

  template (value) ButterflyParamsOriginal m_butterfly_params_original(
                                                                       in template (value) ButterflyExpansion p_signingExpansion,
                                                                       in template (value) PublicEncryptionKey p_encryptionKey,
                                                                       in template (value) ButterflyExpansion p_encryptionExpansion  
                                                                       ):= {
    signingExpansion    := p_signingExpansion,
    encryptionKey       := p_encryptionKey,
    encryptionExpansion := p_encryptionExpansion
  } // End of template m_butterfly_params_original

  template (present) ButterflyParamsOriginal mw_butterfly_params_original(
                                                                          template (present) ButterflyExpansion p_signingExpansion := ?,
                                                                          template (present) PublicEncryptionKey p_encryptionKey := ?,
                                                                          template (present) ButterflyExpansion p_encryptionExpansion := ?  
                                                                          ):= {
    signingExpansion    := p_signingExpansion,
    encryptionKey       := p_encryptionKey,
    encryptionExpansion := p_encryptionExpansion
  } // End of template mw_butterfly_params_original

  template (value) ButterflyExpansion m_butterfly_expansion_aes128(
                                                                   in Oct16 p_aes128
                                                                   ) := {
    aes128 := p_aes128
  } // End of template m_butterfly_expansion_aes128

  template (present) ButterflyExpansion mw_butterfly_expansion_aes128(
                                                                      template (present) Oct16 p_aes128 := ?
                                                                      ) := {
    aes128 := p_aes128
  } // End of template mw_butterfly_expansion_aes128

  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