mirror of https://github.com/PentHertz/srsLTE.git
Minor fixes and code clean up
This commit is contained in:
parent
e547883a8f
commit
e5e091b0c9
|
@ -547,22 +547,6 @@ s1ap_nas_transport::handle_nas_guti_attach_request( uint32_t enb_ue_s1ap_id,
|
|||
bool* reply_flag,
|
||||
struct sctp_sndrcvinfo *enb_sri)
|
||||
{
|
||||
//Parse the message security header
|
||||
uint8 pd = 0;
|
||||
uint8 sec_hdr_type = 0;
|
||||
liblte_mme_parse_msg_sec_header((LIBLTE_BYTE_MSG_STRUCT*)nas_msg, &pd, &sec_hdr_type);
|
||||
|
||||
bool integrity_valid = false;
|
||||
if(sec_hdr_type != LIBLTE_MME_SECURITY_HDR_TYPE_INTEGRITY)
|
||||
{
|
||||
m_s1ap_log->info("Attach request -- GUTI-stlye attach request is not integrity protected\n");
|
||||
m_s1ap_log->console("Attach request -- GUTI-stlye attach request is not integrity protected\n");
|
||||
}
|
||||
else{
|
||||
m_s1ap_log->info("Attach request -- GUTI-stlye attach request is integrity protected\n");
|
||||
m_s1ap_log->console("Attach request -- GUTI-stlye attach request is integrity protected\n");
|
||||
}
|
||||
|
||||
|
||||
//GUTI style attach
|
||||
uint32_t m_tmsi = attach_req.eps_mobile_id.guti.m_tmsi;
|
||||
|
@ -657,6 +641,7 @@ s1ap_nas_transport::handle_nas_guti_attach_request( uint32_t enb_ue_s1ap_id,
|
|||
ue_ecm_ctx_t *ecm_ctx = &ue_ctx->ecm_ctx;
|
||||
m_s1ap_log->console("Found UE context. IMSI: %015lu, old eNB UE S1ap Id %d, old MME UE S1AP Id %d\n",emm_ctx->imsi, ecm_ctx->enb_ue_s1ap_id, ecm_ctx->mme_ue_s1ap_id);
|
||||
//Check NAS integrity
|
||||
// Initial GUTI attach request should be always unencrypted and therefore no problem
|
||||
bool msg_valid = false;
|
||||
emm_ctx->security_ctxt.ul_nas_count++;
|
||||
msg_valid = integrity_check(&emm_ctx->security_ctxt, nas_msg);
|
||||
|
@ -1224,7 +1209,7 @@ s1ap_nas_transport::handle_identity_response(srslte::byte_buffer_t *nas_msg, ue_
|
|||
m_s1ap_log->console("ID Response -- IMSI: %015lu\n", imsi);
|
||||
|
||||
//Set UE's context IMSI
|
||||
emm_ctx->imsi=imsi;
|
||||
emm_ctx->imsi = imsi;
|
||||
ecm_ctx->imsi = imsi;
|
||||
|
||||
//Get Authentication Vectors from HSS
|
||||
|
@ -1677,8 +1662,8 @@ s1ap_nas_transport::pack_security_mode_command(srslte::byte_buffer_t *reply_msg,
|
|||
sm_cmd.nonce_ue_present=false;
|
||||
sm_cmd.nonce_mme_present=false;
|
||||
|
||||
uint8_t sec_hdr_type=3;
|
||||
LIBLTE_ERROR_ENUM err = liblte_mme_pack_security_mode_command_msg(&sm_cmd,sec_hdr_type, ue_emm_ctx->security_ctxt.dl_nas_count,(LIBLTE_BYTE_MSG_STRUCT *) nas_buffer);
|
||||
uint8_t sec_hdr_type = LIBLTE_MME_SECURITY_HDR_TYPE_INTEGRITY_WITH_NEW_EPS_SECURITY_CONTEXT;
|
||||
LIBLTE_ERROR_ENUM err = liblte_mme_pack_security_mode_command_msg(&sm_cmd, sec_hdr_type, ue_emm_ctx->security_ctxt.dl_nas_count,(LIBLTE_BYTE_MSG_STRUCT *) nas_buffer);
|
||||
if(err != LIBLTE_SUCCESS)
|
||||
{
|
||||
m_s1ap_log->console("Error packing Security Mode Command\n");
|
||||
|
@ -1686,7 +1671,7 @@ s1ap_nas_transport::pack_security_mode_command(srslte::byte_buffer_t *reply_msg,
|
|||
}
|
||||
|
||||
//Generate EPS security context
|
||||
uint8_t mac[4];
|
||||
|
||||
srslte::security_generate_k_nas( ue_emm_ctx->security_ctxt.k_asme,
|
||||
ue_emm_ctx->security_ctxt.cipher_algo,
|
||||
ue_emm_ctx->security_ctxt.integ_algo,
|
||||
|
@ -1704,9 +1689,10 @@ s1ap_nas_transport::pack_security_mode_command(srslte::byte_buffer_t *reply_msg,
|
|||
m_s1ap_log->info_hex(ue_emm_ctx->security_ctxt.k_enb, 32, "Key eNodeB (k_enb)\n");
|
||||
|
||||
//Generate MAC for integrity protection
|
||||
uint8_t mac[4];
|
||||
integrity_generate(&ue_emm_ctx->security_ctxt, nas_buffer, mac);
|
||||
|
||||
memcpy(&nas_buffer->msg[1],mac,4);
|
||||
|
||||
//Copy NAS PDU to Downlink NAS Trasport message buffer
|
||||
memcpy(dw_nas->NAS_PDU.buffer, nas_buffer->msg, nas_buffer->N_bytes);
|
||||
dw_nas->NAS_PDU.n_octets = nas_buffer->N_bytes;
|
||||
|
@ -1902,16 +1888,19 @@ s1ap_nas_transport::pack_attach_accept(ue_emm_ctx_t *ue_emm_ctx, ue_ecm_ctx_t *u
|
|||
act_def_eps_bearer_context_req.esm_cause_present = false;
|
||||
act_def_eps_bearer_context_req.connectivity_type_present = false;
|
||||
|
||||
uint8_t sec_hdr_type =2;
|
||||
uint8_t sec_hdr_type = LIBLTE_MME_SECURITY_HDR_TYPE_INTEGRITY_AND_CIPHERED;
|
||||
ue_emm_ctx->security_ctxt.dl_nas_count++;
|
||||
liblte_mme_pack_activate_default_eps_bearer_context_request_msg(&act_def_eps_bearer_context_req, &attach_accept.esm_msg);
|
||||
liblte_mme_pack_attach_accept_msg(&attach_accept, sec_hdr_type, ue_emm_ctx->security_ctxt.dl_nas_count, (LIBLTE_BYTE_MSG_STRUCT *) nas_buffer);
|
||||
//Integrity protect NAS message
|
||||
|
||||
// Encrypt NAS message
|
||||
cipher_encrypt(&ue_emm_ctx->security_ctxt, nas_buffer);
|
||||
|
||||
// Integrity protect NAS message
|
||||
uint8_t mac[4];
|
||||
integrity_generate(&ue_emm_ctx->security_ctxt, nas_buffer, mac);
|
||||
|
||||
memcpy(&nas_buffer->msg[1],mac,4);
|
||||
m_s1ap_log->info("Packed Attach Complete\n");
|
||||
m_s1ap_log->info("Packed Attach Accept\n");
|
||||
|
||||
//Add nas message to context setup request
|
||||
erab_ctxt->nAS_PDU_present = true;
|
||||
|
@ -2010,7 +1999,7 @@ s1ap_nas_transport::pack_emm_information( ue_ctx_t *ue_ctx, srslte::byte_buffer_
|
|||
emm_info.utc_and_local_time_zone_present = false;
|
||||
emm_info.net_dst_present = false;
|
||||
|
||||
uint8_t sec_hdr_type =2;
|
||||
uint8_t sec_hdr_type = LIBLTE_MME_SECURITY_HDR_TYPE_INTEGRITY_AND_CIPHERED;
|
||||
emm_ctx->security_ctxt.dl_nas_count++;
|
||||
LIBLTE_ERROR_ENUM err = liblte_mme_pack_emm_information_msg(&emm_info, sec_hdr_type, emm_ctx->security_ctxt.dl_nas_count, (LIBLTE_BYTE_MSG_STRUCT *) nas_buffer);
|
||||
if(err != LIBLTE_SUCCESS)
|
||||
|
|
Loading…
Reference in New Issue