ItsGenCert_TypeAndValues.ttcn 1.93 KB
Newer Older
module ItsGenCert_TypeAndValues {
    
    // LibIts
    import from IEEE1609dot2BaseTypes language "ASN.1:1997" all;
    import from IEEE1609dot2 language "ASN.1:1997" all;
    import from EtsiTs103097Module language "ASN.1:1997" all;
    
    const Time64 c_its_epoch := 1072911600000;
    /**
     * @desc Start date/time in milliseconds
     * @remark See https://www/epochconverter.com/
     */
    const Time32 c_2018_01_01_gmt_paris := 1514764800;
    const Time32 c_2020_01_01_gmt_paris := 1577836800;
    const Time32 c_2010_01_01_gmt_paris := 1262304000;
    /**
     * @desc Six months duration
     */
    const Duration c_six_months := { hours := 6 * 30 * 24 };
    /**
     * @desc One year duration
     */
    const Duration c_one_year := { years := 1 };
    
    /**
     * @desc This record contains, for each certificate, the parameters to generate it
     */
    type record certificate_params {
        charstring              certificate_id,
        GeographicRegion        region optional,
        ValidityPeriod          validity_period,
        SequenceOfPsidSsp       app_permissions optional,
        SequenceOfPsidSspRange  issuing_permissions optional,
        HashAlgorithm           hash_algorithm,
        Curve                   curve,
        charstring              signed_by
    } // End of type certificate_params
    type record of certificate_params certificate_params_list;
    
    type enumerated Curve {
      e_nist_p256,
      e_brainpool_p256,
      e_brainpool_p384
    } // End of type Curve
    
    type record certificate_details {
      EtsiTs103097Certificate   certificate,
      octetstring               enc_cert,
      octetstring               private_key,
      octetstring               public_key_x,
      octetstring               public_key_y,
      HashedId8                 hashid8,
      HashedId8                 issuer
    } // End of type certificate_details
    
} // End of module ItsGenCert_TypeAndValues