/******************************************************************************/
// @copyright   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.
//   (c) 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
//   All rights reserved.
// @version: IWD_23wk37
// $Date: 2018-12-01 16:37:27 +0100 (Sat, 01 Dec 2018) $
// $Rev: 23218 $
/******************************************************************************/

module NG_SecurityDefinitionsAndExternalFunctions {

  import from CommonDefs all;

  //============================================================================
  external function fx_NG_NasIntegrityAlgorithm(octetstring   p_EncodedNasPdu,
                                             B4_Type       p_IntegrityAlgorithm,
                                             B128_Key_Type p_KNASint,
                                             NasCount_Type p_NasCount,
                                             B5_Type       p_BearerId,
                                             MAC_Direction_Type p_Direction) return MessageAuthenticationCode;

  external function fx_NG_NasCiphering(octetstring p_EncodedNasPdu,
                                    B4_Type       p_CipheringAlgorithm,
                                    B128_Key_Type p_KNASenc,
                                    NasCount_Type p_NasCount,
                                    B5_Type p_BearerId) return octetstring;

  external function fx_NG_NasDeciphering(octetstring p_CipheredNasMsg,
                                      B4_Type       p_CipheringAlgorithm,
                                      B128_Key_Type p_KNASenc,
                                      NasCount_Type p_NasCount,
                                      B5_Type p_BearerId) return octetstring;

  //----------------------------------------------------------------------------
}
