module ItsGenCert_Functions { // LibIts import from IEEE1609dot2BaseTypes language "ASN.1:1997" all; import from IEEE1609dot2 language "ASN.1:1997" all; import from EtsiTs103097Module language "ASN.1:1997" all; // LibItsSecurity import from LibItsSecurity_Templates all; // AtsGenCert import from ItsGenCert_TypeAndValues all; import from ItsGenCert_Templates all; import from ItsGenCert_Pics all; function f_fill_certificate( in certificate_params p_certificate_params, inout certificate_details p_certificate_details ) return integer { p_certificate_details.certificate := valueof( m_etsiTs103097Certificate( m_issuerIdentifier_self(p_certificate_params.hash_algorithm), m_toBeSignedCertificate( { name := p_certificate_params.certificate_id }, m_verificationKeyIndicator_verificationKey( m_publicVerificationKey_ecdsaNistP256( m_eccP256CurvePoint_uncompressed( p_certificate_details.public_key_x, p_certificate_details.public_key_y ))), p_certificate_params.validity_period, p_certificate_params.region, p_certificate_params.app_permissions ))); if (not(ispresent(p_certificate_params.issuing_permissions))) { // all required p_certificate_details.certificate.toBeSigned.certIssuePermissions := { valueof(m_psidGroupPermissions(m_subjectPermissions_all)) }; } else { // TODO } log("p_certificate_details.certificate = ", p_certificate_details.certificate); return 0; } // End of function f_fill_certificate function f_finalyse_certificate( in certificate_params p_certificate_params, inout certificate_details p_certificate_details ) return integer { return -1; } // End of function f_finalyse_certificate function f_get_certificate_params( in charstring p_certificate_id, out certificate_params p_certificate_params ) return integer { for (var integer v_counter := 0; v_counter < lengthof(PICS_CERTFICATES); v_counter := v_counter + 1) { if (PICS_CERTFICATES[v_counter].certificate_id == p_certificate_id) { p_certificate_params := PICS_CERTFICATES[v_counter]; return 0; } } // End of 'for' statement return -1; } // End of function f_get_certificate_params } // End of module ItsGenCert_Functions