Commit a6b6b61b authored by Robert Schmidt's avatar Robert Schmidt

Merge remote-tracking branch 'origin/oai_crypt_rm' into integration_2023_w29

parents 0325b15c 08069035
...@@ -300,10 +300,6 @@ target_link_libraries(lte_rrc PRIVATE nr_rrc) ...@@ -300,10 +300,6 @@ target_link_libraries(lte_rrc PRIVATE nr_rrc)
add_library(nr_rrc ${OPENAIR2_DIR}/RRC/NR/MESSAGES/asn1_msg.c) add_library(nr_rrc ${OPENAIR2_DIR}/RRC/NR/MESSAGES/asn1_msg.c)
target_link_libraries(nr_rrc PUBLIC asn1_nr_rrc asn1_lte_rrc) target_link_libraries(nr_rrc PUBLIC asn1_nr_rrc asn1_lte_rrc)
# S1AP and NGAP need crypt library
pkg_check_modules(libcrypt REQUIRED libcrypt)
# S1AP # S1AP
############## ##############
set(S1AP_DIR ${OPENAIR3_DIR}/S1AP) set(S1AP_DIR ${OPENAIR3_DIR}/S1AP)
...@@ -325,8 +321,6 @@ add_library(s1ap ...@@ -325,8 +321,6 @@ add_library(s1ap
) )
target_link_libraries(s1ap PUBLIC asn1_s1ap) target_link_libraries(s1ap PUBLIC asn1_s1ap)
target_link_libraries(s1ap PRIVATE nr_rrc asn1_nr_rrc_hdrs lte_rrc) target_link_libraries(s1ap PRIVATE nr_rrc asn1_nr_rrc_hdrs lte_rrc)
target_include_directories(s1ap PRIVATE ${libcrypt_INCLUDE_DIRS})
target_link_libraries(s1ap PUBLIC ${libcrypt_LIBRARIES})
# NGAP # NGAP
############## ##############
...@@ -348,8 +342,6 @@ add_library(ngap ...@@ -348,8 +342,6 @@ add_library(ngap
) )
target_link_libraries(ngap PUBLIC asn1_ngap) target_link_libraries(ngap PUBLIC asn1_ngap)
target_link_libraries(ngap PRIVATE asn1_lte_rrc_hdrs asn1_nr_rrc_hdrs) target_link_libraries(ngap PRIVATE asn1_lte_rrc_hdrs asn1_nr_rrc_hdrs)
target_include_directories(ngap PRIVATE ${libcrypt_INCLUDE_DIRS})
target_link_libraries(ngap PRIVATE ${libcrypt_LIBRARIES})
#M2AP #M2AP
############## ##############
...@@ -1446,7 +1438,7 @@ add_library(e1_if ...@@ -1446,7 +1438,7 @@ add_library(e1_if
${NR_RRC_DIR}/cucp_cuup_e1ap.c ${NR_RRC_DIR}/cucp_cuup_e1ap.c
) )
target_link_libraries(e1_if PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs asn1_f1ap SECURITY ${OPENSSL_LIBRARIES} crypt e1ap GTPV1U) target_link_libraries(e1_if PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs asn1_f1ap SECURITY ${OPENSSL_LIBRARIES} e1ap GTPV1U)
add_library(e1_pdcp_if add_library(e1_pdcp_if
${OPENAIR2_DIR}/LAYER2/nr_pdcp/nr_pdcp_e1_api.c ${OPENAIR2_DIR}/LAYER2/nr_pdcp/nr_pdcp_e1_api.c
......
# - Find gnutls
# Find the native GCRYPT includes and library
#
# GCRYPT_FOUND - True if gnutls found.
# GCRYPT_INCLUDE_DIR - where to find gnutls.h, etc.
# GCRYPT_LIBRARIES - List of libraries when using gnutls.
if (GCRYPT_INCLUDE_DIR AND GCRYPT_LIBRARIES)
set(GCRYPT_FIND_QUIETLY TRUE)
endif (GCRYPT_INCLUDE_DIR AND GCRYPT_LIBRARIES)
# Include dir
find_path(GCRYPT_INCLUDE_DIR
NAMES
gcrypt.h
)
# Library
find_library(GCRYPT_LIBRARY
NAMES gcrypt
)
# handle the QUIETLY and REQUIRED arguments and set GCRYPT_FOUND to TRUE if
# all listed variables are TRUE
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GCRYPT DEFAULT_MSG GCRYPT_LIBRARY GCRYPT_INCLUDE_DIR)
IF(GCRYPT_FOUND)
SET( GCRYPT_LIBRARIES ${GCRYPT_LIBRARY} )
ELSE(GCRYPT_FOUND)
SET( GCRYPT_LIBRARIES )
ENDIF(GCRYPT_FOUND)
# Lastly make it so that the GCRYPT_LIBRARY and GCRYPT_INCLUDE_DIR variables
# only show up under the advanced options in the gui cmake applications.
MARK_AS_ADVANCED( GCRYPT_LIBRARY GCRYPT_INCLUDE_DIR )
...@@ -554,28 +554,22 @@ check_install_additional_tools (){ ...@@ -554,28 +554,22 @@ check_install_additional_tools (){
;; ;;
esac esac
PACKAGE_LIST="\ PACKAGE_LIST="\
doxygen \ doxygen \
libpthread-stubs0-dev \ libgnutls28-dev \
libqt5charts5-dev \ libpthread-stubs0-dev \
tshark \ libqt5charts5-dev \
uml-utilities \ tshark \
uml-utilities \
iperf3 \ iperf3 \
libforms-bin \ libforms-bin \
libforms-dev \ libforms-dev \
xmlstarlet" xmlstarlet"
elif [[ "$OS_DISTRO" == "rhel" ]] || [[ "$OS_DISTRO" == "centos" ]] || [[ "$OS_DISTRO" == "rocky" ]]; then elif [[ "$OS_DISTRO" == "rhel" ]] || [[ "$OS_DISTRO" == "centos" ]] || [[ "$OS_DISTRO" == "rocky" ]] || [[ "$OS_DISTRO" == "fedora" ]]; then
PACKAGE_LIST="\ PACKAGE_LIST="\
doxygen \ doxygen \
ctags \ ctags \
iperf3 \ iperf3 \
xforms \ gnutls-devel \
xforms-devel \
xmlstarlet"
elif [[ "$OS_DISTRO" == "fedora" ]]; then
PACKAGE_LIST=" \
doxygen \
ctags \
iperf3 \
xforms \ xforms \
xforms-devel \ xforms-devel \
xmlstarlet" xmlstarlet"
...@@ -595,7 +589,7 @@ check_install_oai_software() { ...@@ -595,7 +589,7 @@ check_install_oai_software() {
case "$(get_distribution_release)" in case "$(get_distribution_release)" in
"ubuntu18.04") "ubuntu18.04")
add_cmake_repo add_cmake_repo
specific_packages="libgcrypt11-dev" specific_packages=""
;; ;;
"debian11") "debian11")
specific_packages="libz-dev" specific_packages="libz-dev"
...@@ -614,7 +608,6 @@ check_install_oai_software() { ...@@ -614,7 +608,6 @@ check_install_oai_software() {
liblapack-dev \ liblapack-dev \
liblapacke-dev \ liblapacke-dev \
libreadline-dev \ libreadline-dev \
libgnutls28-dev \
libconfig-dev \ libconfig-dev \
libsctp-dev \ libsctp-dev \
libssl-dev \ libssl-dev \
...@@ -645,7 +638,6 @@ check_install_oai_software() { ...@@ -645,7 +638,6 @@ check_install_oai_software() {
pkgconfig \ pkgconfig \
libconfig-devel \ libconfig-devel \
libffi-devel \ libffi-devel \
libgcrypt-devel \
lksctp-tools \ lksctp-tools \
lksctp-tools-devel \ lksctp-tools-devel \
libtool \ libtool \
...@@ -656,7 +648,6 @@ check_install_oai_software() { ...@@ -656,7 +648,6 @@ check_install_oai_software() {
openssl-devel \ openssl-devel \
patch \ patch \
readline-devel \ readline-devel \
gnutls-devel \
lapack \ lapack \
lapack-devel \ lapack-devel \
blas \ blas \
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdint.h> #include <stdint.h>
#include <crypt.h> #include "openair3/SECU/kdf.h"
#include "tree.h" #include "tree.h"
#include "queue.h" #include "queue.h"
...@@ -71,17 +71,20 @@ void ngap_gNB_handle_register_gNB(instance_t instance, ngap_register_gnb_req_t * ...@@ -71,17 +71,20 @@ void ngap_gNB_handle_register_gNB(instance_t instance, ngap_register_gnb_req_t *
void ngap_gNB_handle_sctp_association_resp(instance_t instance, sctp_new_association_resp_t *sctp_new_association_resp); void ngap_gNB_handle_sctp_association_resp(instance_t instance, sctp_new_association_resp_t *sctp_new_association_resp);
uint32_t ngap_generate_gNB_id(void) { uint32_t ngap_generate_gNB_id(void)
char *out; {
char hostname[50];
int ret;
uint32_t gNB_id;
/* Retrieve the host name */ /* Retrieve the host name */
ret = gethostname(hostname, sizeof(hostname)); char hostname[32] = {0};
int const ret = gethostname(hostname, sizeof(hostname));
DevAssert(ret == 0); DevAssert(ret == 0);
out = crypt(hostname, "eurecom");
DevAssert(out != NULL); uint8_t key[32] = {"eurecom"};
gNB_id = ((out[0] << 24) | (out[1] << 16) | (out[2] << 8) | out[3]); byte_array_t data = {.len = 32, .buf = (uint8_t *)hostname};
uint8_t out[32] = {0};
kdf(key, data, 32, out);
uint32_t const gNB_id = ((out[0] << 24) | (out[1] << 16) | (out[2] << 8) | out[3]);
return gNB_id; return gNB_id;
} }
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdint.h> #include <stdint.h>
#include <crypt.h> #include "openair3/SECU/kdf.h"
#include "tree.h" #include "tree.h"
#include "queue.h" #include "queue.h"
...@@ -108,17 +108,20 @@ int s1ap_timer_remove(long timer_id) ...@@ -108,17 +108,20 @@ int s1ap_timer_remove(long timer_id)
return ret; return ret;
} }
uint32_t s1ap_generate_eNB_id(void) { uint32_t s1ap_generate_eNB_id(void)
char *out; {
char hostname[50];
int ret;
uint32_t eNB_id;
/* Retrieve the host name */ /* Retrieve the host name */
ret = gethostname(hostname, sizeof(hostname)); char hostname[32] = {0};
int const ret = gethostname(hostname, sizeof(hostname));
DevAssert(ret == 0); DevAssert(ret == 0);
out = crypt(hostname, "eurecom");
DevAssert(out != NULL); uint8_t key[32] = {"eurecom"};
eNB_id = ((out[0] << 24) | (out[1] << 16) | (out[2] << 8) | out[3]); byte_array_t data = {.len = 32, .buf = (uint8_t *)hostname};
uint8_t out[32] = {0};
kdf(key, data, 32, out);
uint32_t const eNB_id = ((out[0] << 24) | (out[1] << 16) | (out[2] << 8) | out[3]);
return eNB_id; return eNB_id;
} }
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
#include <stdint.h> #include <stdint.h>
#include <stdlib.h> #include <stdlib.h>
#include "byte_array.h" #include "common/utils/ds/byte_array.h"
void kdf(const uint8_t key[32], byte_array_t data, size_t len, uint8_t out[len]); void kdf(const uint8_t key[32], byte_array_t data, size_t len, uint8_t out[len]);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment