mirror of
https://gitlab.eurecom.fr/oai/openairinterface5g.git
synced 2026-07-20 08:00:31 +00:00
e1: change security settings only if parameters present
If the Bearer Context Modification Request does not contain security information, the PDCP entity shall keep the currently configured security settings. Passing -1 for ciphering_algorithm and integrity_algorithm is the way to implement this logic.
This commit is contained in:
@@ -274,10 +274,16 @@ void e1_bearer_context_modif(const e1ap_bearer_mod_req_t *req)
|
||||
|
||||
if (to_modif->pdcp_config.pDCP_Reestablishment) {
|
||||
nr_pdcp_entity_security_keys_and_algos_t security_parameters;
|
||||
security_parameters.ciphering_algorithm = req->cipheringAlgorithm;
|
||||
security_parameters.integrity_algorithm = req->integrityProtectionAlgorithm;
|
||||
memcpy(security_parameters.ciphering_key, req->encryptionKey, NR_K_KEY_SIZE);
|
||||
memcpy(security_parameters.integrity_key, req->integrityProtectionKey, NR_K_KEY_SIZE);
|
||||
if (req->has_security_information) {
|
||||
security_parameters.ciphering_algorithm = req->cipheringAlgorithm;
|
||||
security_parameters.integrity_algorithm = req->integrityProtectionAlgorithm;
|
||||
memcpy(security_parameters.ciphering_key, req->encryptionKey, NR_K_KEY_SIZE);
|
||||
memcpy(security_parameters.integrity_key, req->integrityProtectionKey, NR_K_KEY_SIZE);
|
||||
} else {
|
||||
/* don't change security settings if not present in the Bearer Context Modification Request */
|
||||
security_parameters.ciphering_algorithm = -1;
|
||||
security_parameters.integrity_algorithm = -1;
|
||||
}
|
||||
nr_pdcp_reestablishment(req->gNB_cu_up_ue_id,
|
||||
to_modif->id,
|
||||
false,
|
||||
|
||||
Reference in New Issue
Block a user