From baac437baf820f74b2a65fa0ef65cdbcc03b049d Mon Sep 17 00:00:00 2001
From: Lionel Gauthier <lionel.gauthier@eurecom.fr>
Date: Tue, 5 Aug 2014 11:19:08 +0000
Subject: [PATCH] security algorithms

git-svn-id: http://svn.eurecom.fr/openair4G/trunk@5660 818b1a75-f10b-46b9-bf7c-635c3b92a50f
---
 .../NAS/EURECOM-NAS/src/emm/sap/emm_as.c      | 27 ++++++++++++++++---
 1 file changed, 24 insertions(+), 3 deletions(-)

diff --git a/openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_as.c b/openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_as.c
index 2c6d5ba5cfb..f8788815ffa 100644
--- a/openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_as.c
+++ b/openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_as.c
@@ -1264,14 +1264,20 @@ static int _emm_as_send(const emm_as_t *msg)
                     LOG_FUNC_RETURN (RETURNok);
                 } else {
                     LOG_TRACE(DEBUG, "EMMAS-SAP - "
-                              "Sending nas_itti_establish_cnf to S1AP UE ID %d",
-                              as_msg.msg.nas_establish_rsp.UEid);
+                              "Sending nas_itti_establish_cnf to S1AP UE ID %d"
+                            " selected_encryption_algorithm 0x%04X",
+                            " selected_integrity_algorithm 0x%04X",
+                              as_msg.msg.nas_establish_rsp.UEid,
+                              as_msg.msg.nas_establish_rsp.selected_encryption_algorithm,
+                              as_msg.msg.nas_establish_rsp.selected_integrity_algorithm);
                     /* Handle success case */
                     nas_itti_establish_cnf(
                         as_msg.msg.nas_establish_rsp.UEid,
                         as_msg.msg.nas_establish_rsp.errCode,
                         as_msg.msg.nas_establish_rsp.nasMsg.data,
-                        as_msg.msg.nas_establish_rsp.nasMsg.length);
+                        as_msg.msg.nas_establish_rsp.nasMsg.length,
+                        as_msg.msg.nas_establish_rsp.selected_encryption_algorithm,
+                        as_msg.msg.nas_establish_rsp.selected_integrity_algorithm);
                     LOG_FUNC_RETURN (RETURNok);
                 }
             } break;
@@ -2028,6 +2034,21 @@ static int _emm_as_establish_cnf(const emm_as_establish_t *msg,
             LOG_TRACE(DEBUG,
                 "Set nas_msg.header.sequence_number -> %u",
                 nas_msg.header.sequence_number);
+
+            as_msg->selected_encryption_algorithm = htons(0x8000 >> emm_security_context->selected_algorithms.encryption);
+            as_msg->selected_integrity_algorithm = htons(0x8000 >> emm_security_context->selected_algorithms.integrity);
+            //as_msg->selected_encryption_algorithm = htons(0x8000 >> emm_security_context->capability.encryption);
+            //as_msg->selected_integrity_algorithm = htons(0x8000 >> emm_security_context->capability.integrity);
+
+            LOG_TRACE(DEBUG,
+                "Set nas_msg.selected_encryption_algorithm -> NBO: 0x%04X (%u)",
+                as_msg->selected_encryption_algorithm,
+                emm_security_context->selected_algorithms.encryption);
+            LOG_TRACE(DEBUG,
+                "Set nas_msg.selected_integrity_algorithm -> NBO: 0x%04X (%u)",
+                as_msg->selected_integrity_algorithm,
+                emm_security_context->selected_algorithms.integrity);
+
         }
 
         /* Encode the initial NAS information message */
-- 
GitLab