Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
TS29509_Nausf_UEAuthentication.ttcn 4.50 KiB
/******************************************************************************
* Copyright (c) 2000-2023 Ericsson AB
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
*
* Contributors:
*   Gabor Szalai - initial implementation and initial documentation
******************************************************************************/
//
//  File:               TS29509_Nausf_UEAuthentication.ttcn
//  Description:	      Type definitions for 3GPP TS29509
/////////////////////////////////////////////// 
module TS29509_Nausf_UEAuthentication {

  import from TS29503_Nudm_UEAU all
  import from TS29571_CommonData all

  external function f_enc_AuthenticationInfo(in AuthenticationInfo pdu) return octetstring 
  with { extension "prototype(convert) encode(JSON)" }

  external function f_dec_AuthenticationInfo(in octetstring stream, out AuthenticationInfo pdu) return integer 
  with { extension "prototype(backtrack) decode(JSON)" }

  external function f_enc_UEAuthenticationCtx(in UEAuthenticationCtx pdu) return octetstring 
  with { extension "prototype(convert) encode(JSON)" }

  external function f_dec_UEAuthenticationCtx(in octetstring stream, out UEAuthenticationCtx pdu) return integer 
  with { extension "prototype(backtrack) decode(JSON)" }

  external function f_enc_ConfirmationData(in ConfirmationData pdu) return octetstring 
  with { extension "prototype(convert) encode(JSON)" }

  external function f_dec_ConfirmationData(in octetstring stream, out ConfirmationData pdu) return integer 
  with { extension "prototype(backtrack) decode(JSON)" }

  external function f_enc_ConfirmationDataResponse(in ConfirmationDataResponse pdu) return octetstring 
  with { extension "prototype(convert) encode(JSON)" }

  external function f_dec_ConfirmationDataResponse(in octetstring stream, out ConfirmationDataResponse pdu) return integer 
  with { extension "prototype(backtrack) decode(JSON)" }

  external function f_enc_EapSession(in EapSession pdu) return octetstring 
  with { extension "prototype(convert) encode(JSON)" }

  external function f_dec_EapSession(in octetstring stream, out EapSession pdu) return integer 
  with { extension "prototype(backtrack) decode(JSON)" }


  type set AuthenticationInfo {
    TS29503_Nudm_UEAU.SupiOrSuci    supiOrSuci,
    TS29503_Nudm_UEAU.ServingNetworkName    servingNetworkName,
    TS29503_Nudm_UEAU.ResynchronizationInfo    resynchronizationInfo optional,
    TS29571_CommonData.NfInstanceId    amfInstanceId,
    TS29571_CommonData.TraceData    traceData optional
  }

  type set UEAuthenticationCtx {
    AuthType    authType,
    union {
      Av5gAka    av5gAka,
      EapPayload   eapPayload 
    } fivegAuthData,
    set of record {
      universal charstring key,
      TS29571_CommonData.LinksValueSchema    additionalProperties
    } links,
    TS29503_Nudm_UEAU.ServingNetworkName    servingNetworkName optional
  } with {
    variant (fivegAuthData) "JSON: as value"
    variant (fivegAuthData) "name as '5gAuthData'"
    variant (links) "as map"
    variant (links) "name as '_links'"
  }
  

  type set Av5gAka {
    TS29503_Nudm_UEAU.Rand    rand,
    HxresStar    hxresStar,
    TS29503_Nudm_UEAU.Autn    autn,
    Kseaf    kSeaf
  }

  type set ConfirmationData {
    ResStar    resStar,
    TS29503_Nudm_UEAU.SupiOrSuci    supiOrSuci optional
  }

  type set ConfirmationDataResponse {
    AuthResult    authResult,
    TS29571_CommonData.Supi    supi optional
  }

  type set EapSession {
    EapPayload    eapPayload,
    Kseaf    kSeaf optional,
    set of record {
      universal charstring key,
      TS29571_CommonData.LinksValueSchema    additionalProperties
    } links optional
  } with {
    variant (links) "as map"
    variant (links) "name as '_links'"
  }


  type enumerated AuthResult { AUTHENTICATION_SUCCESS, AUTHENTICATION_FAILURE, AUTHENTICATION_ONGOING}


  type charstring EapPayload

  type charstring Kseaf // (pattern "[A-Fa-f0-9]{64}")

  type charstring ResStar // (pattern "[A-Fa-f0-9]{32}")

  type charstring HxresStar // (pattern "[A-Fa-f0-9]{32}")

  type enumerated AuthType_enum { FIVEG_AKA, EAP_AKA_PRIME, EAP_TLS}
  with {
    variant "text 'FIVEG_AKA' as '5G_AKA'"
    variant "text 'EAP_TLS' as 'EAP-TLS'"
  }

  type union AuthType {
    AuthType_enum  enum_val,
    charstring           other_val
  } with {
    variant "JSON: as value"
  }






} with {
  encode "JSON"
}