LibItsPki_TypesAndValues.ttcn 4.3 KB
Newer Older
Yann Garcia's avatar
Yann Garcia committed
/**
 *  @author   ETSI / STF545
Yann Garcia's avatar
Yann Garcia committed
 *  @version  $Url$
Yann Garcia's avatar
Yann Garcia committed
 *            $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_TypesAndValues {
  // LibCommon
  import from LibCommon_BasicTypesAndValues all;
  import from LibCommon_DataStrings all;
  
  // LibIts
  import from IEEE1609dot2BaseTypes language "ASN.1:1997" all;
  import from EtsiTs103097Module language "ASN.1:1997" all;
  import from EtsiTs102941TrustLists language "ASN.1:1997" all;
  group constants {

    const integer PkiProtocolVersion := 1;
Yann Garcia's avatar
Yann Garcia committed
  
  type enumerated SecurityAlg {
    e_nist_p256 (0),
    e_brainpool_p256_r1 (1),
    e_brainpool_p384_r1 (2)
  } // End of type SecurityAlg

  type set of PublicVerificationKey ListOfPublicVerificationKey;
  group utPrimitives {

    /**
     * @desc Upper Tester message to initialize ITS-S IUT 
     * @member hashedId8 In case of secured mode set, hashedId8 indicate which certificate the IUT shall use
     */
    type record UtPkiInitialize {
      Oct8 hashedId8 
    } with {
      variant "FIELDORDER(msb)"
Yann Garcia's avatar
Yann Garcia committed
    }

    /**
     * @desc Upper Tester results message of the PKI ITS-S IUT
     */
    type union UtPkiResults {
      boolean utPkiInitializeResult,
      boolean utPkiTriggerResult
    } with {
      variant ""
    } // End of type UtPkiResults

    /**
     * @desc    UT primitives for PKI ITS-S IUT
     * @member  triggerEnrolmentRequest Request to trigger an EnrolmentRequest
     */
    type union UtPkiTrigger {
      TriggerEnrolmentRequest     triggerEnrolmentRequest,
      TriggerAuthorizationRequest triggerAuthorizationRequest
    } with {
      variant ""
    } // End of type UtPkiTrigger
    
    /**
     * @desc Request to trigger an EnrolmentRequest
     * @member cannonicalId The canonical identifier of the ITS-S
     * @member encAlgorithm The encrypion algorithm to be used (Nist P256 or Brainpool P256)
     * @member privateKey The private key to be used for signature of the requested EA certificate
     * @member compressedPublickey The compressed public key to be used for signature of the requested EA certificate (format: [02|03]<compressed public key>
     */
    type record TriggerEnrolmentRequest {
      octetstring cannonicalId,
      octetstring privateKey,
      octetstring compressedPublickey
    } with {
      variant "FIELDORDER(msb)"
    } // End of type TriggerEnrolmentRequest
    
    type record TriggerAuthorizationRequest {
      octetstring cannonicalId,
      Oct1 encAlgorithm,
      octetstring privateKey,
      octetstring compressedPublickey
    } with {
      variant "FIELDORDER(msb)"
    } // End of type TriggerAuthorizationRequest
    
  } with {
    encode "UpperTester"
    variant ""
  } // End of group utPrimitives
  
  group acPrimitives {
        
    /**
     * @desc    TA primitives for Pki
     */
    type union AcPkiPrimitive {
      AcSetSecurityData acSetSecurityData
    } with {
      variant ""
    }
        
    /**
     * @desc    Primitive for receiveing response from TA
     */
    type union AcPkiResponse {
      boolean     result
    } with {
      variant ""
    }
    
    type record AcSetSecurityData {
      charstring  certificateId,
      charstring  peer_certificateId,
      octetstring private_key,
      octetstring public_key_compressed,
      integer     public_key_compressed_mode
    } with {
      variant ""
      encode "LibItsPki"
    } // AcSetSecurityData
    
  } with {
    variant ""
    encode "AdapterControl"
  } // End of group acPrimitives
  
  type record InfoPortData {
    octetstring hashed_id8,
    EtsiTs103097Certificate at_certificate
  } // End of type InfoPortData

  type record of CrlEntry CrlEntries;

  type record of CtlCommand CtlCommands;

  type record of octetstring PrivateEcKeys;
  type record of octetstring PublicCompressedEcKeys;
  type record of integer EcCompressedModes;
  type record of HashedId8 EcHashedId8;
  type record of EtsiTs103097Certificate EcCertificates;
Yann Garcia's avatar
Yann Garcia committed
}
with {
  variant ""
  encode "LibItsPki"
}   // End of module LibItsPki_TypesAndValues