Apply security to Deregistration Request (UE Originating)

This commit is contained in:
Bedran Karakoc 2021-10-22 17:27:25 +02:00 committed by Bedran Karakoc
parent f1385640c4
commit 4e60475200
1 changed files with 11 additions and 2 deletions

View File

@ -622,6 +622,8 @@ int nas_5g::send_deregistration_request_ue_originating(bool switch_off)
nas_5gs_msg nas_msg;
deregistration_request_ue_originating_t& deregistration_request = nas_msg.set_deregistration_request_ue_originating();
nas_msg.hdr.security_header_type = nas_5gs_hdr::security_header_type_opts::integrity_protected_and_ciphered;
nas_msg.hdr.sequence_number = ctxt_base.tx_count;
// Note 5.5.2.2.2 : AMF does not send a Deregistration Accept NAS message if De-registration type IE indicates "switch
// off"
@ -655,10 +657,17 @@ int nas_5g::send_deregistration_request_ue_originating(bool switch_off)
}
logger.info("Sending Deregistration Request (UE Originating)");
cipher_encrypt(pdu.get());
integrity_generate(&ctxt_base.k_nas_int[16],
ctxt_base.tx_count,
SECURITY_DIRECTION_UPLINK,
&pdu->msg[SEQ_5G_OFFSET],
pdu->N_bytes - SEQ_5G_OFFSET,
&pdu->msg[MAC_5G_OFFSET]);
rrc_nr->write_sdu(std::move(pdu));
ctxt_base.tx_count++;
reset_pdu_sessions();
// TODO: Delete / Reset context (ctxt & ctxt_5g)
return SRSASN_SUCCESS;