mirror of
https://github.com/open5gs/open5gs.git
synced 2026-05-05 23:37:22 +00:00
NAS MAC verified
This commit is contained in:
parent
bcb275dadc
commit
d64fed59d2
4 changed files with 14 additions and 16 deletions
|
|
@ -3,6 +3,7 @@
|
|||
#include "core_sha2_hmac.h"
|
||||
|
||||
#define FC_VALUE 0x15
|
||||
#include "core_debug.h"
|
||||
|
||||
void mme_kdf_nas(c_uint8_t algorithm_type_distinguishers,
|
||||
c_uint8_t algorithm_identity, c_uint8_t *kasme, c_uint8_t *knas)
|
||||
|
|
@ -16,9 +17,9 @@ void mme_kdf_nas(c_uint8_t algorithm_type_distinguishers,
|
|||
s[2] = 0x00;
|
||||
s[3] = 0x01;
|
||||
|
||||
s[1] = algorithm_identity;
|
||||
s[2] = 0x00;
|
||||
s[3] = 0x01;
|
||||
s[4] = algorithm_identity;
|
||||
s[5] = 0x00;
|
||||
s[6] = 0x01;
|
||||
|
||||
hmac_sha256(kasme, 32, s, 7, out, 32);
|
||||
memcpy(knas, out+16, 16);
|
||||
|
|
|
|||
|
|
@ -46,7 +46,6 @@ status_t nas_security_encode(pkbuf_t **pkbuf,
|
|||
nas_mac_calculate(mme_self()->selected_int_algorithm,
|
||||
ue->knas_int, ue->dl_count, NAS_SECURITY_BEARER,
|
||||
NAS_SECURITY_DOWNLINK_DIRECTION, new, mac);
|
||||
d_print_hex(mac, 4);
|
||||
|
||||
d_assert(CORE_OK == pkbuf_header(new,
|
||||
sizeof(nas_security_header_t) - sizeof(h.sequence_number)),
|
||||
|
|
|
|||
|
|
@ -59,7 +59,6 @@ static void nas_sm_test1(abts_case *tc, void *data)
|
|||
rc = tests1ap_enb_read(sock, recvbuf);
|
||||
ABTS_INT_NEQUAL(tc, 0, rc);
|
||||
recvbuf->len = 63;
|
||||
|
||||
ABTS_TRUE(tc, memcmp(recvbuf->payload,
|
||||
core_ascii_to_hex(_authentication_request,
|
||||
strlen(_authentication_request), tmp, sizeof(tmp)),
|
||||
|
|
@ -77,12 +76,10 @@ static void nas_sm_test1(abts_case *tc, void *data)
|
|||
recvbuf = pkbuf_alloc(0, MESSAGE_SDU_SIZE);
|
||||
rc = tests1ap_enb_read(sock, recvbuf);
|
||||
recvbuf->len = 43;
|
||||
|
||||
core_ascii_to_hex(_security_mode_command,
|
||||
strlen(_security_mode_command), tmp, sizeof(tmp));
|
||||
d_print_hex(tmp, recvbuf->len);
|
||||
d_print_hex(recvbuf->payload, recvbuf->len);
|
||||
|
||||
ABTS_TRUE(tc, memcmp(recvbuf->payload,
|
||||
core_ascii_to_hex(_security_mode_command,
|
||||
strlen(_security_mode_command), tmp, sizeof(tmp)),
|
||||
recvbuf->len) == 0);
|
||||
ABTS_INT_NEQUAL(tc, 0, rc);
|
||||
pkbuf_free(recvbuf);
|
||||
|
||||
|
|
|
|||
|
|
@ -97,12 +97,13 @@ static void security_test2(abts_case *tc, void *data)
|
|||
|
||||
static void security_test3(abts_case *tc, void *data)
|
||||
{
|
||||
char *_ck = "B40BA9A3C58B2A05BBF0D987B21BF8CB";
|
||||
char *_ik = "F769BCD751044604127672711C6D3441";
|
||||
char *_ck = "b40ba9a3c58b2a05 bbf0d987b21bf8cb";
|
||||
char *_ik = "f769bcd751044604 127672711c6d3441";
|
||||
char *_plmn_id = "024830";
|
||||
char *_sqn = "FD8EEF40DF7D";
|
||||
char *_ak = "AA689C648370";
|
||||
char *_kasme = "238E457E0F758BADBCA8D34BB2612C10428D426757CB5553B2B184FA64BFC549";
|
||||
char *_sqn = "fd8eef40df7d";
|
||||
char *_ak = "aa689c648370";
|
||||
char *_kasme =
|
||||
"238e457e0f758bad bca8d34bb2612c10 428d426757cb5553 b2b184fa64bfc549";
|
||||
c_uint8_t ck[16];
|
||||
c_uint8_t ik[16];
|
||||
c_uint8_t plmn_id[3];
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue