From 4f83de4fa3f1aca986ca2762f8dc4a996d5487b8 Mon Sep 17 00:00:00 2001 From: free5gc-org Date: Tue, 21 Jul 2020 04:49:53 +0000 Subject: [PATCH] v2020-07-21-01 --- AMF/TestAmf/Init.go | 26 +- AMF/TestAmf/TestNeaNia/nea1_test_data.go | 121 ++++++++ AMF/TestAmf/TestNeaNia/nia1_test_data.go | 267 ++++++++++++++++++ AMF/TestAmf/gen_nas_security_data.go | 163 +++++++++++ AMF/TestAmf/testAmfCfg.conf | 4 +- AMF/TestComm/AMFStatusSubscription.go | 4 +- .../PolicyAuthorizationCreate.go | 35 +++ SMF/TestPDUSession/SMContextCreate.go | 10 +- .../RegistrationProcedure.go | 2 +- 9 files changed, 610 insertions(+), 22 deletions(-) create mode 100644 AMF/TestAmf/TestNeaNia/nea1_test_data.go create mode 100644 AMF/TestAmf/TestNeaNia/nia1_test_data.go create mode 100644 AMF/TestAmf/gen_nas_security_data.go diff --git a/AMF/TestAmf/Init.go b/AMF/TestAmf/Init.go index 7f15c5b..427995b 100644 --- a/AMF/TestAmf/Init.go +++ b/AMF/TestAmf/Init.go @@ -1,23 +1,23 @@ package TestAmf import ( - "free5gc/lib/path_util" - "free5gc/src/amf/factory" - "free5gc/src/amf/gmm" - "free5gc/src/amf/logger" - amf_ngap_sctp "free5gc/src/amf/ngap/sctp" - "free5gc/src/amf/util" "log" "net" "strings" "time" "git.cs.nctu.edu.tw/calee/sctp" - "github.com/davecgh/go-spew/spew" + "free5gc/lib/nas/security" "free5gc/lib/openapi/models" + "free5gc/lib/path_util" "free5gc/src/amf/context" + "free5gc/src/amf/factory" + "free5gc/src/amf/gmm" + "free5gc/src/amf/logger" + amf_ngap_sctp "free5gc/src/amf/ngap/sctp" + "free5gc/src/amf/util" ) var TestAmf = context.AMF_Self() @@ -102,8 +102,8 @@ func AmfInit() { ue.Kamf = strings.Repeat("1", 64) ue.SecurityCapabilities.NRIntegrityProtectionAlgorithms = [2]byte{0x40, 0x00} ue.SecurityCapabilities.NREncryptionAlgorithms = [2]byte{0x40, 0x00} - ue.CipheringAlg = context.ALG_CIPHERING_128_NEA2 - ue.IntegrityAlg = context.ALG_INTEGRITY_128_NIA2 + ue.CipheringAlg = security.AlgCiphering128NEA2 + ue.IntegrityAlg = security.AlgIntegrity128NIA2 ue.DerivateAnKey(models.AccessType__3_GPP_ACCESS) ue.DerivateNH(ue.Kgnb) ue.DerivateAlgKey() @@ -217,19 +217,21 @@ func UeAttach(anType models.AccessType) { if Conn == nil { ran = TestAmf.NewAmfRan(testConn) } else { - ran = TestAmf.AmfRanPool[Laddr.String()] + value, _ := TestAmf.AmfRanPool.Load(Laddr.String()) + ran = value.(*context.AmfRan) } } else { if Conn2 == nil { testConn.RAddr.Value = "127.0.0.1:9488" ran = TestAmf.NewAmfRan(testConn) } else { - ran = TestAmf.AmfRanPool[Laddr2.String()] + value, _ := TestAmf.AmfRanPool.Load(Laddr2.String()) + ran = value.(*context.AmfRan) } } ran.AnType = anType ranUe := ran.NewRanUe() - ue := TestAmf.UePool["imsi-2089300007487"] + ue, _ := TestAmf.AmfUeFindBySupi("imsi-2089300007487") ran.SupportedTAList = []context.SupportedTAI{ { Tai: ue.Tai, diff --git a/AMF/TestAmf/TestNeaNia/nea1_test_data.go b/AMF/TestAmf/TestNeaNia/nea1_test_data.go new file mode 100644 index 0000000..6438d98 --- /dev/null +++ b/AMF/TestAmf/TestNeaNia/nea1_test_data.go @@ -0,0 +1,121 @@ +package TestNeaNia + +type NEA1TestSet struct { + CountC uint32 + Bearer uint32 + Direction uint32 + Ck [16]byte + Length uint32 + Ibs []byte + Obs []byte +} + +const ( + NEA1Test1 = "NEA1Test1" + NEA1Test2 = "NEA1Test2" + NEA1Test3 = "NEA1Test3" + NEA1Test4 = "NEA1Test4" + NEA1Test5 = "NEA1Test5" +) + +var TestNEA1Table = make(map[string]*NEA1TestSet) + +func init() { + TestNEA1Table[NEA1Test1] = &NEA1TestSet{ + CountC: 0x72a4f20f, + Bearer: 0x0c, + Direction: 1, + Ck: [16]byte{0x2b, 0xd6, 0x45, 0x9f, 0x82, 0xc5, 0xb3, 0x00, 0x95, 0x2c, 0x49, 0x10, 0x48, 0x81, 0xff, 0x48}, + Length: 798, + Ibs: []byte{ + 0x7e, 0xc6, 0x12, 0x72, 0x74, 0x3b, 0xf1, 0x61, 0x47, 0x26, 0x44, 0x6a, 0x6c, 0x38, 0xce, 0xd1, + 0x66, 0xf6, 0xca, 0x76, 0xeb, 0x54, 0x30, 0x04, 0x42, 0x86, 0x34, 0x6c, 0xef, 0x13, 0x0f, 0x92, + 0x92, 0x2b, 0x03, 0x45, 0x0d, 0x3a, 0x99, 0x75, 0xe5, 0xbd, 0x2e, 0xa0, 0xeb, 0x55, 0xad, 0x8e, + 0x1b, 0x19, 0x9e, 0x3e, 0xc4, 0x31, 0x60, 0x20, 0xe9, 0xa1, 0xb2, 0x85, 0xe7, 0x62, 0x79, 0x53, + 0x59, 0xb7, 0xbd, 0xfd, 0x39, 0xbe, 0xf4, 0xb2, 0x48, 0x45, 0x83, 0xd5, 0xaf, 0xe0, 0x82, 0xae, + 0xe6, 0x38, 0xbf, 0x5f, 0xd5, 0xa6, 0x06, 0x19, 0x39, 0x01, 0xa0, 0x8f, 0x4a, 0xb4, 0x1a, 0xab, + 0x9b, 0x13, 0x48, 0x80, + }, + Obs: []byte{ + 0x8c, 0xeb, 0xa6, 0x29, 0x43, 0xdc, 0xed, 0x3a, 0x09, 0x90, 0xb0, 0x6e, 0xa1, 0xb0, 0xa2, 0xc4, + 0xfb, 0x3c, 0xed, 0xc7, 0x1b, 0x36, 0x9f, 0x42, 0xba, 0x64, 0xc1, 0xeb, 0x66, 0x65, 0xe7, 0x2a, + 0xa1, 0xc9, 0xbb, 0x0d, 0xea, 0xa2, 0x0f, 0xe8, 0x60, 0x58, 0xb8, 0xba, 0xee, 0x2c, 0x2e, 0x7f, + 0x0b, 0xec, 0xce, 0x48, 0xb5, 0x29, 0x32, 0xa5, 0x3c, 0x9d, 0x5f, 0x93, 0x1a, 0x3a, 0x7c, 0x53, + 0x22, 0x59, 0xaf, 0x43, 0x25, 0xe2, 0xa6, 0x5e, 0x30, 0x84, 0xad, 0x5f, 0x6a, 0x51, 0x3b, 0x7b, + 0xdd, 0xc1, 0xb6, 0x5f, 0x0a, 0xa0, 0xd9, 0x7a, 0x05, 0x3d, 0xb5, 0x5a, 0x88, 0xc4, 0xc4, 0xf9, + 0x60, 0x5e, 0x41, 0x40, + }, + } + + TestNEA1Table[NEA1Test2] = &NEA1TestSet{ + CountC: 0xe28bcf7b, + Bearer: 0x18, + Direction: 0, + Ck: [16]byte{0xef, 0xa8, 0xb2, 0x22, 0x9e, 0x72, 0x0c, 0x2a, 0x7c, 0x36, 0xea, 0x55, 0xe9, 0x60, 0x56, 0x95}, + Length: 510, + Ibs: []byte{ + 0x10, 0x11, 0x12, 0x31, 0xe0, 0x60, 0x25, 0x3a, 0x43, 0xfd, 0x3f, 0x57, 0xe3, 0x76, 0x07, 0xab, + 0x28, 0x27, 0xb5, 0x99, 0xb6, 0xb1, 0xbb, 0xda, 0x37, 0xa8, 0xab, 0xcc, 0x5a, 0x8c, 0x55, 0x0d, + 0x1b, 0xfb, 0x2f, 0x49, 0x46, 0x24, 0xfb, 0x50, 0x36, 0x7f, 0xa3, 0x6c, 0xe3, 0xbc, 0x68, 0xf1, + 0x1c, 0xf9, 0x3b, 0x15, 0x10, 0x37, 0x6b, 0x02, 0x13, 0x0f, 0x81, 0x2a, 0x9f, 0xa1, 0x69, 0xd8, + }, + Obs: []byte{ + 0xe0, 0xda, 0x15, 0xca, 0x8e, 0x25, 0x54, 0xf5, 0xe5, 0x6c, 0x94, 0x68, 0xdc, 0x6c, 0x7c, 0x12, + 0x9c, 0x56, 0x8a, 0xa5, 0x03, 0x23, 0x17, 0xe0, 0x4e, 0x07, 0x29, 0x64, 0x6c, 0xab, 0xef, 0xa6, + 0x89, 0x86, 0x4c, 0x41, 0x0f, 0x24, 0xf9, 0x19, 0xe6, 0x1e, 0x3d, 0xfd, 0xfa, 0xd7, 0x7e, 0x56, + 0x0d, 0xb0, 0xa9, 0xcd, 0x36, 0xc3, 0x4a, 0xe4, 0x18, 0x14, 0x90, 0xb2, 0x9f, 0x5f, 0xa2, 0xfc, + }, + } + + TestNEA1Table[NEA1Test3] = &NEA1TestSet{ + CountC: 0xfa556b26, + Bearer: 0x03, + Direction: 1, + Ck: [16]byte{0x5a, 0xcb, 0x1d, 0x64, 0x4c, 0x0d, 0x51, 0x20, 0x4e, 0xa5, 0xf1, 0x45, 0x10, 0x10, 0xd8, 0x52}, + Length: 120, + Ibs: []byte{0xad, 0x9c, 0x44, 0x1f, 0x89, 0x0b, 0x38, 0xc4, 0x57, 0xa4, 0x9d, 0x42, 0x14, 0x07, 0xe8, 0x00}, + Obs: []byte{0xba, 0x0f, 0x31, 0x30, 0x03, 0x34, 0xc5, 0x6b, 0x52, 0xa7, 0x49, 0x7c, 0xba, 0xc0, 0x46, 0x00}, + } + + TestNEA1Table[NEA1Test4] = &NEA1TestSet{ + CountC: 0x398a59b4, + Bearer: 0x05, + Direction: 1, + Ck: [16]byte{0xd3, 0xc5, 0xd5, 0x92, 0x32, 0x7f, 0xb1, 0x1c, 0x40, 0x35, 0xc6, 0x68, 0x0a, 0xf8, 0xc6, 0xd1}, + Length: 253, + Ibs: []byte{ + 0x98, 0x1b, 0xa6, 0x82, 0x4c, 0x1b, 0xfb, 0x1a, 0xb4, 0x85, 0x47, 0x20, 0x29, 0xb7, 0x1d, 0x80, + 0x8c, 0xe3, 0x3e, 0x2c, 0xc3, 0xc0, 0xb5, 0xfc, 0x1f, 0x3d, 0xe8, 0xa6, 0xdc, 0x66, 0xb1, 0xf0, + }, + Obs: []byte{ + 0x98, 0x9b, 0x71, 0x9c, 0xdc, 0x33, 0xce, 0xb7, 0xcf, 0x27, 0x6a, 0x52, 0x82, 0x7c, 0xef, 0x94, + 0xa5, 0x6c, 0x40, 0xc0, 0xab, 0x9d, 0x81, 0xf7, 0xa2, 0xa9, 0xba, 0xc6, 0x0e, 0x11, 0xc4, 0xb0, + }, + } + + TestNEA1Table[NEA1Test5] = &NEA1TestSet{ + CountC: 0x72a4f20f, + Bearer: 0x09, + Direction: 0, + Ck: [16]byte{0x60, 0x90, 0xea, 0xe0, 0x4c, 0x83, 0x70, 0x6e, 0xec, 0xbf, 0x65, 0x2b, 0xe8, 0xe3, 0x65, 0x66}, + Length: 837, + Ibs: []byte{ + 0x40, 0x98, 0x1b, 0xa6, 0x82, 0x4c, 0x1b, 0xfb, 0x42, 0x86, 0xb2, 0x99, 0x78, 0x3d, 0xaf, 0x44, + 0x2c, 0x09, 0x9f, 0x7a, 0xb0, 0xf5, 0x8d, 0x5c, 0x8e, 0x46, 0xb1, 0x04, 0xf0, 0x8f, 0x01, 0xb4, + 0x1a, 0xb4, 0x85, 0x47, 0x20, 0x29, 0xb7, 0x1d, 0x36, 0xbd, 0x1a, 0x3d, 0x90, 0xdc, 0x3a, 0x41, + 0xb4, 0x6d, 0x51, 0x67, 0x2a, 0xc4, 0xc9, 0x66, 0x3a, 0x2b, 0xe0, 0x63, 0xda, 0x4b, 0xc8, 0xd2, + 0x80, 0x8c, 0xe3, 0x3e, 0x2c, 0xcc, 0xbf, 0xc6, 0x34, 0xe1, 0xb2, 0x59, 0x06, 0x08, 0x76, 0xa0, + 0xfb, 0xb5, 0xa4, 0x37, 0xeb, 0xcc, 0x8d, 0x31, 0xc1, 0x9e, 0x44, 0x54, 0x31, 0x87, 0x45, 0xe3, + 0x98, 0x76, 0x45, 0x98, 0x7a, 0x98, 0x6f, 0x2c, 0xb0, + }, + Obs: []byte{ + 0x58, 0x92, 0xbb, 0xa8, 0x8b, 0xbb, 0xca, 0xae, 0xae, 0x76, 0x9a, 0xa0, 0x6b, 0x68, 0x3d, 0x3a, + 0x17, 0xcc, 0x04, 0xa3, 0x69, 0x88, 0x16, 0x97, 0x43, 0x5e, 0x44, 0xfe, 0xd5, 0xff, 0x9a, 0xf5, + 0x7b, 0x9e, 0x89, 0x0d, 0x4d, 0x5c, 0x64, 0x70, 0x98, 0x85, 0xd4, 0x8a, 0xe4, 0x06, 0x90, 0xec, + 0x04, 0x3b, 0xaa, 0xe9, 0x70, 0x57, 0x96, 0xe4, 0xa9, 0xff, 0x5a, 0x4b, 0x8d, 0x8b, 0x36, 0xd7, + 0xf3, 0xfe, 0x57, 0xcc, 0x6c, 0xfd, 0x6c, 0xd0, 0x05, 0xcd, 0x38, 0x52, 0xa8, 0x5e, 0x94, 0xce, + 0x6b, 0xcd, 0x90, 0xd0, 0xd0, 0x78, 0x39, 0xce, 0x09, 0x73, 0x35, 0x44, 0xca, 0x8e, 0x35, 0x08, + 0x43, 0x24, 0x85, 0x50, 0x92, 0x2a, 0xc1, 0x28, 0x18, + }, + } +} diff --git a/AMF/TestAmf/TestNeaNia/nia1_test_data.go b/AMF/TestAmf/TestNeaNia/nia1_test_data.go new file mode 100644 index 0000000..840a423 --- /dev/null +++ b/AMF/TestAmf/TestNeaNia/nia1_test_data.go @@ -0,0 +1,267 @@ +package TestNeaNia + +type NIA1TestSet struct { + CountI uint32 + Bearer byte + Direction uint32 + Ik [16]byte + Length uint64 + Msg []byte + MacI uint32 +} + +const ( + NIA1Test1 = "NIA1Test1" + NIA1Test2 = "NIA1Test2" + NIA1Test3 = "NIA1Test3" + NIA1Test4 = "NIA1Test4" + NIA1Test5 = "NIA1Test5" + NIA1Test6 = "NIA1Test6" + NIA1Test7 = "NIA1Test7" +) + +var TestNIA1Table = make(map[string]*NIA1TestSet) + +func init() { + TestNIA1Table[NIA1Test1] = &NIA1TestSet{ + CountI: 0x38a6f056, + Bearer: 0x1f, + Direction: 0, + Ik: [16]byte{0x2b, 0xd6, 0x45, 0x9f, 0x82, 0xc5, 0xb3, 0x00, 0x95, 0x2c, 0x49, 0x10, 0x48, 0x81, 0xff, 0x48}, + Length: 88, + Msg: []byte{ + 0x33, 0x32, 0x34, 0x62, 0x63, 0x39, 0x38, 0x61, 0x37, 0x34, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + MacI: 0x731f1165, + } + + TestNIA1Table[NIA1Test2] = &NIA1TestSet{ + CountI: 0x36af6144, + Bearer: 0x18, + Direction: 1, + Ik: [16]byte{0x7e, 0x5e, 0x94, 0x43, 0x1e, 0x11, 0xd7, 0x38, 0x28, 0xd7, 0x39, 0xcc, 0x6c, 0xed, 0x45, 0x73}, + Length: 254, + Msg: []byte{ + 0xb3, 0xd3, 0xc9, 0x17, 0x0a, 0x4e, 0x16, 0x32, 0xf6, 0x0f, 0x86, 0x10, 0x13, 0xd2, 0x2d, 0x84, + 0xb7, 0x26, 0xb6, 0xa2, 0x78, 0xd8, 0x02, 0xd1, 0xee, 0xaf, 0x13, 0x21, 0xba, 0x59, 0x29, 0xdc, + }, + MacI: 0xe3259f6f, + } + + TestNIA1Table[NIA1Test3] = &NIA1TestSet{ + CountI: 0xc7590ea9, + Bearer: 0x17, + Direction: 0, + Ik: [16]byte{0xd3, 0x41, 0x9b, 0xe8, 0x21, 0x08, 0x7a, 0xcd, 0x02, 0x12, 0x3a, 0x92, 0x48, 0x03, 0x33, 0x59}, + Length: 511, + Msg: []byte{ + 0xbb, 0xb0, 0x57, 0x03, 0x88, 0x09, 0x49, 0x6b, 0xcf, 0xf8, 0x6d, 0x6f, 0xbc, 0x8c, 0xe5, 0xb1, + 0x35, 0xa0, 0x6b, 0x16, 0x60, 0x54, 0xf2, 0xd5, 0x65, 0xbe, 0x8a, 0xce, 0x75, 0xdc, 0x85, 0x1e, + 0x0b, 0xcd, 0xd8, 0xf0, 0x71, 0x41, 0xc4, 0x95, 0x87, 0x2f, 0xb5, 0xd8, 0xc0, 0xc6, 0x6a, 0x8b, + 0x6d, 0xa5, 0x56, 0x66, 0x3e, 0x4e, 0x46, 0x12, 0x05, 0xd8, 0x45, 0x80, 0xbe, 0xe5, 0xbc, 0x7e, + }, + MacI: 0x9a16c77d, + } + + TestNIA1Table[NIA1Test4] = &NIA1TestSet{ + CountI: 0x36af6144, + Bearer: 0x0f, + Direction: 1, + Ik: [16]byte{0x83, 0xfd, 0x23, 0xa2, 0x44, 0xa7, 0x4c, 0xf3, 0x58, 0xda, 0x30, 0x19, 0xf1, 0x72, 0x26, 0x35}, + Length: 768, + Msg: []byte{ + 0x35, 0xc6, 0x87, 0x16, 0x63, 0x3c, 0x66, 0xfb, 0x75, 0x0c, 0x26, 0x68, 0x65, 0xd5, 0x3c, 0x11, + 0xea, 0x05, 0xb1, 0xe9, 0xfa, 0x49, 0xc8, 0x39, 0x8d, 0x48, 0xe1, 0xef, 0xa5, 0x90, 0x9d, 0x39, + 0x47, 0x90, 0x28, 0x37, 0xf5, 0xae, 0x96, 0xd5, 0xa0, 0x5b, 0xc8, 0xd6, 0x1c, 0xa8, 0xdb, 0xef, + 0x1b, 0x13, 0xa4, 0xb4, 0xab, 0xfe, 0x4f, 0xb1, 0x00, 0x60, 0x45, 0xb6, 0x74, 0xbb, 0x54, 0x72, + 0x93, 0x04, 0xc3, 0x82, 0xbe, 0x53, 0xa5, 0xaf, 0x05, 0x55, 0x61, 0x76, 0xf6, 0xea, 0xa2, 0xef, + 0x1d, 0x05, 0xe4, 0xb0, 0x83, 0x18, 0x1e, 0xe6, 0x74, 0xcd, 0xa5, 0xa4, 0x85, 0xf7, 0x4d, 0x7a, + }, + MacI: 0xbba74492, + } + + TestNIA1Table[NIA1Test5] = &NIA1TestSet{ + CountI: 0x36af6144, + Bearer: 0x18, + Direction: 0, + Ik: [16]byte{0x68, 0x32, 0xa6, 0x5c, 0xff, 0x44, 0x73, 0x62, 0x1e, 0xbd, 0xd4, 0xba, 0x26, 0xa9, 0x21, 0xfe}, + Length: 383, + Msg: []byte{ + 0xd3, 0xc5, 0x38, 0x39, 0x62, 0x68, 0x20, 0x71, 0x77, 0x65, 0x66, 0x76, 0x20, 0x32, 0x38, 0x37, + 0x63, 0x62, 0x40, 0x98, 0x1b, 0xa6, 0x82, 0x4c, 0x1b, 0xfb, 0x1a, 0xb4, 0x85, 0x47, 0x20, 0x29, + 0xb7, 0x1d, 0x80, 0x8c, 0xe3, 0x3e, 0x2c, 0xc3, 0xc0, 0xb5, 0xfc, 0x1f, 0x3d, 0xe8, 0xa6, 0xdc, + }, + MacI: 0x4145e4b0, + } + + TestNIA1Table[NIA1Test6] = &NIA1TestSet{ + CountI: 0x7827fab2, + Bearer: 0x05, + Direction: 1, + Ik: [16]byte{0x5d, 0x0a, 0x80, 0xd8, 0x13, 0x4a, 0xe1, 0x96, 0x77, 0x82, 0x4b, 0x67, 0x1e, 0x83, 0x8a, 0xf4}, + Length: 2558, + Msg: []byte{ + 0x70, 0xde, 0xdf, 0x2d, 0xc4, 0x2c, 0x5c, 0xbd, 0x3a, 0x96, 0xf8, 0xa0, 0xb1, 0x14, 0x18, 0xb3, + 0x60, 0x8d, 0x57, 0x33, 0x60, 0x4a, 0x2c, 0xd3, 0x6a, 0xab, 0xc7, 0x0c, 0xe3, 0x19, 0x3b, 0xb5, + 0x15, 0x3b, 0xe2, 0xd3, 0xc0, 0x6d, 0xfd, 0xb2, 0xd1, 0x6e, 0x9c, 0x35, 0x71, 0x58, 0xbe, 0x6a, + 0x41, 0xd6, 0xb8, 0x61, 0xe4, 0x91, 0xdb, 0x3f, 0xbf, 0xeb, 0x51, 0x8e, 0xfc, 0xf0, 0x48, 0xd7, + 0xd5, 0x89, 0x53, 0x73, 0x0f, 0xf3, 0x0c, 0x9e, 0xc4, 0x70, 0xff, 0xcd, 0x66, 0x3d, 0xc3, 0x42, + 0x01, 0xc3, 0x6a, 0xdd, 0xc0, 0x11, 0x1c, 0x35, 0xb3, 0x8a, 0xfe, 0xe7, 0xcf, 0xdb, 0x58, 0x2e, + 0x37, 0x31, 0xf8, 0xb4, 0xba, 0xa8, 0xd1, 0xa8, 0x9c, 0x06, 0xe8, 0x11, 0x99, 0xa9, 0x71, 0x62, + 0x27, 0xbe, 0x34, 0x4e, 0xfc, 0xb4, 0x36, 0xdd, 0xd0, 0xf0, 0x96, 0xc0, 0x64, 0xc3, 0xb5, 0xe2, + 0xc3, 0x99, 0x99, 0x3f, 0xc7, 0x73, 0x94, 0xf9, 0xe0, 0x97, 0x20, 0xa8, 0x11, 0x85, 0x0e, 0xf2, + 0x3b, 0x2e, 0xe0, 0x5d, 0x9e, 0x61, 0x73, 0x60, 0x9d, 0x86, 0xe1, 0xc0, 0xc1, 0x8e, 0xa5, 0x1a, + 0x01, 0x2a, 0x00, 0xbb, 0x41, 0x3b, 0x9c, 0xb8, 0x18, 0x8a, 0x70, 0x3c, 0xd6, 0xba, 0xe3, 0x1c, + 0xc6, 0x7b, 0x34, 0xb1, 0xb0, 0x00, 0x19, 0xe6, 0xa2, 0xb2, 0xa6, 0x90, 0xf0, 0x26, 0x71, 0xfe, + 0x7c, 0x9e, 0xf8, 0xde, 0xc0, 0x09, 0x4e, 0x53, 0x37, 0x63, 0x47, 0x8d, 0x58, 0xd2, 0xc5, 0xf5, + 0xb8, 0x27, 0xa0, 0x14, 0x8c, 0x59, 0x48, 0xa9, 0x69, 0x31, 0xac, 0xf8, 0x4f, 0x46, 0x5a, 0x64, + 0xe6, 0x2c, 0xe7, 0x40, 0x07, 0xe9, 0x91, 0xe3, 0x7e, 0xa8, 0x23, 0xfa, 0x0f, 0xb2, 0x19, 0x23, + 0xb7, 0x99, 0x05, 0xb7, 0x33, 0xb6, 0x31, 0xe6, 0xc7, 0xd6, 0x86, 0x0a, 0x38, 0x31, 0xac, 0x35, + 0x1a, 0x9c, 0x73, 0x0c, 0x52, 0xff, 0x72, 0xd9, 0xd3, 0x08, 0xee, 0xdb, 0xab, 0x21, 0xfd, 0xe1, + 0x43, 0xa0, 0xea, 0x17, 0xe2, 0x3e, 0xdc, 0x1f, 0x74, 0xcb, 0xb3, 0x63, 0x8a, 0x20, 0x33, 0xaa, + 0xa1, 0x54, 0x64, 0xea, 0xa7, 0x33, 0x38, 0x5d, 0xbb, 0xeb, 0x6f, 0xd7, 0x35, 0x09, 0xb8, 0x57, + 0xe6, 0xa4, 0x19, 0xdc, 0xa1, 0xd8, 0x90, 0x7a, 0xf9, 0x77, 0xfb, 0xac, 0x4d, 0xfa, 0x35, 0xec, + }, + MacI: 0x0fa2b1ee, + } + + TestNIA1Table[NIA1Test7] = &NIA1TestSet{ + CountI: 0x296f393c, + Bearer: 0x0b, + Direction: 1, + Ik: [16]byte{0xb3, 0x12, 0x0f, 0xfd, 0xb2, 0xcf, 0x6a, 0xf4, 0xe7, 0x3e, 0xaf, 0x2e, 0xf4, 0xeb, 0xec, 0x69}, + Length: 16448, + Msg: []byte{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0xe0, 0x95, 0x80, 0x45, 0xf3, 0xa0, 0xbb, 0xa4, 0xe3, 0x96, 0x83, 0x46, 0xf0, 0xa3, 0xb8, 0xa7, + 0xc0, 0x2a, 0x01, 0x8a, 0xe6, 0x40, 0x76, 0x52, 0x26, 0xb9, 0x87, 0xc9, 0x13, 0xe6, 0xcb, 0xf0, + 0x83, 0x57, 0x00, 0x16, 0xcf, 0x83, 0xef, 0xbc, 0x61, 0xc0, 0x82, 0x51, 0x3e, 0x21, 0x56, 0x1a, + 0x42, 0x7c, 0x00, 0x9d, 0x28, 0xc2, 0x98, 0xef, 0xac, 0xe7, 0x8e, 0xd6, 0xd5, 0x6c, 0x2d, 0x45, + 0x05, 0xad, 0x03, 0x2e, 0x9c, 0x04, 0xdc, 0x60, 0xe7, 0x3a, 0x81, 0x69, 0x6d, 0xa6, 0x65, 0xc6, + 0xc4, 0x86, 0x03, 0xa5, 0x7b, 0x45, 0xab, 0x33, 0x22, 0x15, 0x85, 0xe6, 0x8e, 0xe3, 0x16, 0x91, + 0x87, 0xfb, 0x02, 0x39, 0x52, 0x86, 0x32, 0xdd, 0x65, 0x6c, 0x80, 0x7e, 0xa3, 0x24, 0x8b, 0x7b, + 0x46, 0xd0, 0x02, 0xb2, 0xb5, 0xc7, 0x45, 0x8e, 0xb8, 0x5b, 0x9c, 0xe9, 0x58, 0x79, 0xe0, 0x34, + 0x08, 0x59, 0x05, 0x5e, 0x3b, 0x0a, 0xbb, 0xc3, 0xea, 0xce, 0x87, 0x19, 0xca, 0xa8, 0x02, 0x65, + 0xc9, 0x72, 0x05, 0xd5, 0xdc, 0x4b, 0xcc, 0x90, 0x2f, 0xe1, 0x83, 0x96, 0x29, 0xed, 0x71, 0x32, + 0x8a, 0x0f, 0x04, 0x49, 0xf5, 0x88, 0x55, 0x7e, 0x68, 0x98, 0x86, 0x0e, 0x04, 0x2a, 0xec, 0xd8, + 0x4b, 0x24, 0x04, 0xc2, 0x12, 0xc9, 0x22, 0x2d, 0xa5, 0xbf, 0x8a, 0x89, 0xef, 0x67, 0x97, 0x87, + 0x0c, 0xf5, 0x07, 0x71, 0xa6, 0x0f, 0x66, 0xa2, 0xee, 0x62, 0x85, 0x36, 0x57, 0xad, 0xdf, 0x04, + 0xcd, 0xde, 0x07, 0xfa, 0x41, 0x4e, 0x11, 0xf1, 0x2b, 0x4d, 0x81, 0xb9, 0xb4, 0xe8, 0xac, 0x53, + 0x8e, 0xa3, 0x06, 0x66, 0x68, 0x8d, 0x88, 0x1f, 0x6c, 0x34, 0x84, 0x21, 0x99, 0x2f, 0x31, 0xb9, + 0x4f, 0x88, 0x06, 0xed, 0x8f, 0xcc, 0xff, 0x4c, 0x91, 0x23, 0xb8, 0x96, 0x42, 0x52, 0x7a, 0xd6, + 0x13, 0xb1, 0x09, 0xbf, 0x75, 0x16, 0x74, 0x85, 0xf1, 0x26, 0x8b, 0xf8, 0x84, 0xb4, 0xcd, 0x23, + 0xd2, 0x9a, 0x09, 0x34, 0x92, 0x57, 0x03, 0xd6, 0x34, 0x09, 0x8f, 0x77, 0x67, 0xf1, 0xbe, 0x74, + 0x91, 0xe7, 0x08, 0xa8, 0xbb, 0x94, 0x9a, 0x38, 0x73, 0x70, 0x8a, 0xef, 0x4a, 0x36, 0x23, 0x9e, + 0x50, 0xcc, 0x08, 0x23, 0x5c, 0xd5, 0xed, 0x6b, 0xbe, 0x57, 0x86, 0x68, 0xa1, 0x7b, 0x58, 0xc1, + 0x17, 0x1d, 0x0b, 0x90, 0xe8, 0x13, 0xa9, 0xe4, 0xf5, 0x8a, 0x89, 0xd7, 0x19, 0xb1, 0x10, 0x42, + 0xd6, 0x36, 0x0b, 0x1b, 0x0f, 0x52, 0xde, 0xb7, 0x30, 0xa5, 0x8d, 0x58, 0xfa, 0xf4, 0x63, 0x15, + 0x95, 0x4b, 0x0a, 0x87, 0x26, 0x91, 0x47, 0x59, 0x77, 0xdc, 0x88, 0xc0, 0xd7, 0x33, 0xfe, 0xff, + 0x54, 0x60, 0x0a, 0x0c, 0xc1, 0xd0, 0x30, 0x0a, 0xaa, 0xeb, 0x94, 0x57, 0x2c, 0x6e, 0x95, 0xb0, + 0x1a, 0xe9, 0x0d, 0xe0, 0x4f, 0x1d, 0xce, 0x47, 0xf8, 0x7e, 0x8f, 0xa7, 0xbe, 0xbf, 0x77, 0xe1, + 0xdb, 0xc2, 0x0d, 0x6b, 0xa8, 0x5c, 0xb9, 0x14, 0x3d, 0x51, 0x8b, 0x28, 0x5d, 0xfa, 0x04, 0xb6, + 0x98, 0xbf, 0x0c, 0xf7, 0x81, 0x9f, 0x20, 0xfa, 0x7a, 0x28, 0x8e, 0xb0, 0x70, 0x3d, 0x99, 0x5c, + 0x59, 0x94, 0x0c, 0x7c, 0x66, 0xde, 0x57, 0xa9, 0xb7, 0x0f, 0x82, 0x37, 0x9b, 0x70, 0xe2, 0x03, + 0x1e, 0x45, 0x0f, 0xcf, 0xd2, 0x18, 0x13, 0x26, 0xfc, 0xd2, 0x8d, 0x88, 0x23, 0xba, 0xaa, 0x80, + 0xdf, 0x6e, 0x0f, 0x44, 0x35, 0x59, 0x64, 0x75, 0x39, 0xfd, 0x89, 0x07, 0xc0, 0xff, 0xd9, 0xd7, + 0x9c, 0x13, 0x0e, 0xd8, 0x1c, 0x9a, 0xfd, 0x9b, 0x7e, 0x84, 0x8c, 0x9f, 0xed, 0x38, 0x44, 0x3d, + 0x5d, 0x38, 0x0e, 0x53, 0xfb, 0xdb, 0x8a, 0xc8, 0xc3, 0xd3, 0xf0, 0x68, 0x76, 0x05, 0x4f, 0x12, + 0x24, 0x61, 0x10, 0x7d, 0xe9, 0x2f, 0xea, 0x09, 0xc6, 0xf6, 0x92, 0x3a, 0x18, 0x8d, 0x53, 0xaf, + 0xe5, 0x4a, 0x10, 0xf6, 0x0e, 0x6e, 0x9d, 0x5a, 0x03, 0xd9, 0x96, 0xb5, 0xfb, 0xc8, 0x20, 0xf8, + 0xa6, 0x37, 0x11, 0x6a, 0x27, 0xad, 0x04, 0xb4, 0x44, 0xa0, 0x93, 0x2d, 0xd6, 0x0f, 0xbd, 0x12, + 0x67, 0x1c, 0x11, 0xe1, 0xc0, 0xec, 0x73, 0xe7, 0x89, 0x87, 0x9f, 0xaa, 0x3d, 0x42, 0xc6, 0x4d, + 0x20, 0xcd, 0x12, 0x52, 0x74, 0x2a, 0x37, 0x68, 0xc2, 0x5a, 0x90, 0x15, 0x85, 0x88, 0x8e, 0xce, + 0xe1, 0xe6, 0x12, 0xd9, 0x93, 0x6b, 0x40, 0x3b, 0x07, 0x75, 0x94, 0x9a, 0x66, 0xcd, 0xfd, 0x99, + 0xa2, 0x9b, 0x13, 0x45, 0xba, 0xa8, 0xd9, 0xd5, 0x40, 0x0c, 0x91, 0x02, 0x4b, 0x0a, 0x60, 0x73, + 0x63, 0xb0, 0x13, 0xce, 0x5d, 0xe9, 0xae, 0x86, 0x9d, 0x3b, 0x8d, 0x95, 0xb0, 0x57, 0x0b, 0x3c, + 0x2d, 0x39, 0x14, 0x22, 0xd3, 0x24, 0x50, 0xcb, 0xcf, 0xae, 0x96, 0x65, 0x22, 0x86, 0xe9, 0x6d, + 0xec, 0x12, 0x14, 0xa9, 0x34, 0x65, 0x27, 0x98, 0x0a, 0x81, 0x92, 0xea, 0xc1, 0xc3, 0x9a, 0x3a, + 0xaf, 0x6f, 0x15, 0x35, 0x1d, 0xa6, 0xbe, 0x76, 0x4d, 0xf8, 0x97, 0x72, 0xec, 0x04, 0x07, 0xd0, + 0x6e, 0x44, 0x15, 0xbe, 0xfa, 0xe7, 0xc9, 0x25, 0x80, 0xdf, 0x9b, 0xf5, 0x07, 0x49, 0x7c, 0x8f, + 0x29, 0x95, 0x16, 0x0d, 0x4e, 0x21, 0x8d, 0xaa, 0xcb, 0x02, 0x94, 0x4a, 0xbf, 0x83, 0x34, 0x0c, + 0xe8, 0xbe, 0x16, 0x86, 0xa9, 0x60, 0xfa, 0xf9, 0x0e, 0x2d, 0x90, 0xc5, 0x5c, 0xc6, 0x47, 0x5b, + 0xab, 0xc3, 0x17, 0x1a, 0x80, 0xa3, 0x63, 0x17, 0x49, 0x54, 0x95, 0x5d, 0x71, 0x01, 0xda, 0xb1, + 0x6a, 0xe8, 0x17, 0x91, 0x67, 0xe2, 0x14, 0x44, 0xb4, 0x43, 0xa9, 0xea, 0xaa, 0x7c, 0x91, 0xde, + 0x36, 0xd1, 0x18, 0xc3, 0x9d, 0x38, 0x9f, 0x8d, 0xd4, 0x46, 0x9a, 0x84, 0x6c, 0x9a, 0x26, 0x2b, + 0xf7, 0xfa, 0x18, 0x48, 0x7a, 0x79, 0xe8, 0xde, 0x11, 0x69, 0x9e, 0x0b, 0x8f, 0xdf, 0x55, 0x7c, + 0xb4, 0x87, 0x19, 0xd4, 0x53, 0xba, 0x71, 0x30, 0x56, 0x10, 0x9b, 0x93, 0xa2, 0x18, 0xc8, 0x96, + 0x75, 0xac, 0x19, 0x5f, 0xb4, 0xfb, 0x06, 0x63, 0x9b, 0x37, 0x97, 0x14, 0x49, 0x55, 0xb3, 0xc9, + 0x32, 0x7d, 0x1a, 0xec, 0x00, 0x3d, 0x42, 0xec, 0xd0, 0xea, 0x98, 0xab, 0xf1, 0x9f, 0xfb, 0x4a, + 0xf3, 0x56, 0x1a, 0x67, 0xe7, 0x7c, 0x35, 0xbf, 0x15, 0xc5, 0x9c, 0x24, 0x12, 0xda, 0x88, 0x1d, + 0xb0, 0x2b, 0x1b, 0xfb, 0xce, 0xbf, 0xac, 0x51, 0x52, 0xbc, 0x99, 0xbc, 0x3f, 0x1d, 0x15, 0xf7, + 0x71, 0x00, 0x1b, 0x70, 0x29, 0xfe, 0xdb, 0x02, 0x8f, 0x8b, 0x85, 0x2b, 0xc4, 0x40, 0x7e, 0xb8, + 0x3f, 0x89, 0x1c, 0x9c, 0xa7, 0x33, 0x25, 0x4f, 0xdd, 0x1e, 0x9e, 0xdb, 0x56, 0x91, 0x9c, 0xe9, + 0xfe, 0xa2, 0x1c, 0x17, 0x40, 0x72, 0x52, 0x1c, 0x18, 0x31, 0x9a, 0x54, 0xb5, 0xd4, 0xef, 0xbe, + 0xbd, 0xdf, 0x1d, 0x8b, 0x69, 0xb1, 0xcb, 0xf2, 0x5f, 0x48, 0x9f, 0xcc, 0x98, 0x13, 0x72, 0x54, + 0x7c, 0xf4, 0x1d, 0x00, 0x8e, 0xf0, 0xbc, 0xa1, 0x92, 0x6f, 0x93, 0x4b, 0x73, 0x5e, 0x09, 0x0b, + 0x3b, 0x25, 0x1e, 0xb3, 0x3a, 0x36, 0xf8, 0x2e, 0xd9, 0xb2, 0x9c, 0xf4, 0xcb, 0x94, 0x41, 0x88, + 0xfa, 0x0e, 0x1e, 0x38, 0xdd, 0x77, 0x8f, 0x7d, 0x1c, 0x9d, 0x98, 0x7b, 0x28, 0xd1, 0x32, 0xdf, + 0xb9, 0x73, 0x1f, 0xa4, 0xf4, 0xb4, 0x16, 0x93, 0x5b, 0xe4, 0x9d, 0xe3, 0x05, 0x16, 0xaf, 0x35, + 0x78, 0x58, 0x1f, 0x2f, 0x13, 0xf5, 0x61, 0xc0, 0x66, 0x33, 0x61, 0x94, 0x1e, 0xab, 0x24, 0x9a, + 0x4b, 0xc1, 0x23, 0xf8, 0xd1, 0x5c, 0xd7, 0x11, 0xa9, 0x56, 0xa1, 0xbf, 0x20, 0xfe, 0x6e, 0xb7, + 0x8a, 0xea, 0x23, 0x73, 0x36, 0x1d, 0xa0, 0x42, 0x6c, 0x79, 0xa5, 0x30, 0xc3, 0xbb, 0x1d, 0xe0, + 0xc9, 0x97, 0x22, 0xef, 0x1f, 0xde, 0x39, 0xac, 0x2b, 0x00, 0xa0, 0xa8, 0xee, 0x7c, 0x80, 0x0a, + 0x08, 0xbc, 0x22, 0x64, 0xf8, 0x9f, 0x4e, 0xff, 0xe6, 0x27, 0xac, 0x2f, 0x05, 0x31, 0xfb, 0x55, + 0x4f, 0x6d, 0x21, 0xd7, 0x4c, 0x59, 0x0a, 0x70, 0xad, 0xfa, 0xa3, 0x90, 0xbd, 0xfb, 0xb3, 0xd6, + 0x8e, 0x46, 0x21, 0x5c, 0xab, 0x18, 0x7d, 0x23, 0x68, 0xd5, 0xa7, 0x1f, 0x5e, 0xbe, 0xc0, 0x81, + 0xcd, 0x3b, 0x20, 0xc0, 0x82, 0xdb, 0xe4, 0xcd, 0x2f, 0xac, 0xa2, 0x87, 0x73, 0x79, 0x5d, 0x6b, + 0x0c, 0x10, 0x20, 0x4b, 0x65, 0x9a, 0x93, 0x9e, 0xf2, 0x9b, 0xbe, 0x10, 0x88, 0x24, 0x36, 0x24, + 0x42, 0x99, 0x27, 0xa7, 0xeb, 0x57, 0x6d, 0xd3, 0xa0, 0x0e, 0xa5, 0xe0, 0x1a, 0xf5, 0xd4, 0x75, + 0x83, 0xb2, 0x27, 0x2c, 0x0c, 0x16, 0x1a, 0x80, 0x65, 0x21, 0xa1, 0x6f, 0xf9, 0xb0, 0xa7, 0x22, + 0xc0, 0xcf, 0x26, 0xb0, 0x25, 0xd5, 0x83, 0x6e, 0x22, 0x58, 0xa4, 0xf7, 0xd4, 0x77, 0x3a, 0xc8, + 0x01, 0xe4, 0x26, 0x3b, 0xc2, 0x94, 0xf4, 0x3d, 0xef, 0x7f, 0xa8, 0x70, 0x3f, 0x3a, 0x41, 0x97, + 0x46, 0x35, 0x25, 0x88, 0x76, 0x52, 0xb0, 0xb2, 0xa4, 0xa2, 0xa7, 0xcf, 0x87, 0xf0, 0x09, 0x14, + 0x87, 0x1e, 0x25, 0x03, 0x91, 0x13, 0xc7, 0xe1, 0x61, 0x8d, 0xa3, 0x40, 0x64, 0xb5, 0x7a, 0x43, + 0xc4, 0x63, 0x24, 0x9f, 0xb8, 0xd0, 0x5e, 0x0f, 0x26, 0xf4, 0xa6, 0xd8, 0x49, 0x72, 0xe7, 0xa9, + 0x05, 0x48, 0x24, 0x14, 0x5f, 0x91, 0x29, 0x5c, 0xdb, 0xe3, 0x9a, 0x6f, 0x92, 0x0f, 0xac, 0xc6, + 0x59, 0x71, 0x2b, 0x46, 0xa5, 0x4b, 0xa2, 0x95, 0xbb, 0xe6, 0xa9, 0x01, 0x54, 0xe9, 0x1b, 0x33, + 0x98, 0x5a, 0x2b, 0xcd, 0x42, 0x0a, 0xd5, 0xc6, 0x7e, 0xc9, 0xad, 0x8e, 0xb7, 0xac, 0x68, 0x64, + 0xdb, 0x27, 0x2a, 0x51, 0x6b, 0xc9, 0x4c, 0x28, 0x39, 0xb0, 0xa8, 0x16, 0x9a, 0x6b, 0xf5, 0x8e, + 0x1a, 0x0c, 0x2a, 0xda, 0x8c, 0x88, 0x3b, 0x7b, 0xf4, 0x97, 0xa4, 0x91, 0x71, 0x26, 0x8e, 0xd1, + 0x5d, 0xdd, 0x29, 0x69, 0x38, 0x4e, 0x7f, 0xf4, 0xbf, 0x4a, 0xab, 0x2e, 0xc9, 0xec, 0xc6, 0x52, + 0x9c, 0xf6, 0x29, 0xe2, 0xdf, 0x0f, 0x08, 0xa7, 0x7a, 0x65, 0xaf, 0xa1, 0x2a, 0xa9, 0xb5, 0x05, + 0xdf, 0x8b, 0x28, 0x7e, 0xf6, 0xcc, 0x91, 0x49, 0x3d, 0x1c, 0xaa, 0x39, 0x07, 0x6e, 0x28, 0xef, + 0x1e, 0xa0, 0x28, 0xf5, 0x11, 0x8d, 0xe6, 0x1a, 0xe0, 0x2b, 0xb6, 0xae, 0xfc, 0x33, 0x43, 0xa0, + 0x50, 0x29, 0x2f, 0x19, 0x9f, 0x40, 0x18, 0x57, 0xb2, 0xbe, 0xad, 0x5e, 0x6e, 0xe2, 0xa1, 0xf1, + 0x91, 0x02, 0x2f, 0x92, 0x78, 0x01, 0x6f, 0x04, 0x77, 0x91, 0xa9, 0xd1, 0x8d, 0xa7, 0xd2, 0xa6, + 0xd2, 0x7f, 0x2e, 0x0e, 0x51, 0xc2, 0xf6, 0xea, 0x30, 0xe8, 0xac, 0x49, 0xa0, 0x60, 0x4f, 0x4c, + 0x13, 0x54, 0x2e, 0x85, 0xb6, 0x83, 0x81, 0xb9, 0xfd, 0xcf, 0xa0, 0xce, 0x4b, 0x2d, 0x34, 0x13, + 0x54, 0x85, 0x2d, 0x36, 0x02, 0x45, 0xc5, 0x36, 0xb6, 0x12, 0xaf, 0x71, 0xf3, 0xe7, 0x7c, 0x90, + 0x95, 0xae, 0x2d, 0xbd, 0xe5, 0x04, 0xb2, 0x65, 0x73, 0x3d, 0xab, 0xfe, 0x10, 0xa2, 0x0f, 0xc7, + 0xd6, 0xd3, 0x2c, 0x21, 0xcc, 0xc7, 0x2b, 0x8b, 0x34, 0x44, 0xae, 0x66, 0x3d, 0x65, 0x92, 0x2d, + 0x17, 0xf8, 0x2c, 0xaa, 0x2b, 0x86, 0x5c, 0xd8, 0x89, 0x13, 0xd2, 0x91, 0xa6, 0x58, 0x99, 0x02, + 0x6e, 0xa1, 0x32, 0x84, 0x39, 0x72, 0x3c, 0x19, 0x8c, 0x36, 0xb0, 0xc3, 0xc8, 0xd0, 0x85, 0xbf, + 0xaf, 0x8a, 0x32, 0x0f, 0xde, 0x33, 0x4b, 0x4a, 0x49, 0x19, 0xb4, 0x4c, 0x2b, 0x95, 0xf6, 0xe8, + 0xec, 0xf7, 0x33, 0x93, 0xf7, 0xf0, 0xd2, 0xa4, 0x0e, 0x60, 0xb1, 0xd4, 0x06, 0x52, 0x6b, 0x02, + 0x2d, 0xdc, 0x33, 0x18, 0x10, 0xb1, 0xa5, 0xf7, 0xc3, 0x47, 0xbd, 0x53, 0xed, 0x1f, 0x10, 0x5d, + 0x6a, 0x0d, 0x30, 0xab, 0xa4, 0x77, 0xe1, 0x78, 0x88, 0x9a, 0xb2, 0xec, 0x55, 0xd5, 0x58, 0xde, + 0xab, 0x26, 0x30, 0x20, 0x43, 0x36, 0x96, 0x2b, 0x4d, 0xb5, 0xb6, 0x63, 0xb6, 0x90, 0x2b, 0x89, + 0xe8, 0x5b, 0x31, 0xbc, 0x6a, 0xf5, 0x0f, 0xc5, 0x0a, 0xcc, 0xb3, 0xfb, 0x9b, 0x57, 0xb6, 0x63, + 0x29, 0x70, 0x31, 0x37, 0x8d, 0xb4, 0x78, 0x96, 0xd7, 0xfb, 0xaf, 0x6c, 0x60, 0x0a, 0xdd, 0x2c, + 0x67, 0xf9, 0x36, 0xdb, 0x03, 0x79, 0x86, 0xdb, 0x85, 0x6e, 0xb4, 0x9c, 0xf2, 0xdb, 0x3f, 0x7d, + 0xa6, 0xd2, 0x36, 0x50, 0xe4, 0x38, 0xf1, 0x88, 0x40, 0x41, 0xb0, 0x13, 0x11, 0x9e, 0x4c, 0x2a, + 0xe5, 0xaf, 0x37, 0xcc, 0xcd, 0xfb, 0x68, 0x66, 0x07, 0x38, 0xb5, 0x8b, 0x3c, 0x59, 0xd1, 0xc0, + 0x24, 0x84, 0x37, 0x47, 0x2a, 0xba, 0x1f, 0x35, 0xca, 0x1f, 0xb9, 0x0c, 0xd7, 0x14, 0xaa, 0x9f, + 0x63, 0x55, 0x34, 0xf4, 0x9e, 0x7c, 0x5b, 0xba, 0x81, 0xc2, 0xb6, 0xb3, 0x6f, 0xde, 0xe2, 0x1c, + 0xa2, 0x7e, 0x34, 0x7f, 0x79, 0x3d, 0x2c, 0xe9, 0x44, 0xed, 0xb2, 0x3c, 0x8c, 0x9b, 0x91, 0x4b, + 0xe1, 0x03, 0x35, 0xe3, 0x50, 0xfe, 0xb5, 0x07, 0x03, 0x94, 0xb7, 0xa4, 0xa1, 0x5c, 0x0c, 0xa1, + 0x20, 0x28, 0x35, 0x68, 0xb7, 0xbf, 0xc2, 0x54, 0xfe, 0x83, 0x8b, 0x13, 0x7a, 0x21, 0x47, 0xce, + 0x7c, 0x11, 0x3a, 0x3a, 0x4d, 0x65, 0x49, 0x9d, 0x9e, 0x86, 0xb8, 0x7d, 0xbc, 0xc7, 0xf0, 0x3b, + 0xbd, 0x3a, 0x3a, 0xb1, 0xaa, 0x24, 0x3e, 0xce, 0x5b, 0xa9, 0xbc, 0xf2, 0x5f, 0x82, 0x83, 0x6c, + 0xfe, 0x47, 0x3b, 0x2d, 0x83, 0xe7, 0xa7, 0x20, 0x1c, 0xd0, 0xb9, 0x6a, 0x72, 0x45, 0x1e, 0x86, + 0x3f, 0x6c, 0x3b, 0xa6, 0x64, 0xa6, 0xd0, 0x73, 0xd1, 0xf7, 0xb5, 0xed, 0x99, 0x08, 0x65, 0xd9, + 0x78, 0xbd, 0x38, 0x15, 0xd0, 0x60, 0x94, 0xfc, 0x9a, 0x2a, 0xba, 0x52, 0x21, 0xc2, 0x2d, 0x5a, + 0xb9, 0x96, 0x38, 0x9e, 0x37, 0x21, 0xe3, 0xaf, 0x5f, 0x05, 0xbe, 0xdd, 0xc2, 0x87, 0x5e, 0x0d, + 0xfa, 0xeb, 0x39, 0x02, 0x1e, 0xe2, 0x7a, 0x41, 0x18, 0x7c, 0xbb, 0x45, 0xef, 0x40, 0xc3, 0xe7, + 0x3b, 0xc0, 0x39, 0x89, 0xf9, 0xa3, 0x0d, 0x12, 0xc5, 0x4b, 0xa7, 0xd2, 0x14, 0x1d, 0xa8, 0xa8, + 0x75, 0x49, 0x3e, 0x65, 0x77, 0x6e, 0xf3, 0x5f, 0x97, 0xde, 0xbc, 0x22, 0x86, 0xcc, 0x4a, 0xf9, + 0xb4, 0x62, 0x3e, 0xee, 0x90, 0x2f, 0x84, 0x0c, 0x52, 0xf1, 0xb8, 0xad, 0x65, 0x89, 0x39, 0xae, + 0xf7, 0x1f, 0x3f, 0x72, 0xb9, 0xec, 0x1d, 0xe2, 0x15, 0x88, 0xbd, 0x35, 0x48, 0x4e, 0xa4, 0x44, + 0x36, 0x34, 0x3f, 0xf9, 0x5e, 0xad, 0x6a, 0xb1, 0xd8, 0xaf, 0xb1, 0xb2, 0xa3, 0x03, 0xdf, 0x1b, + 0x71, 0xe5, 0x3c, 0x4a, 0xea, 0x6b, 0x2e, 0x3e, 0x93, 0x72, 0xbe, 0x0d, 0x1b, 0xc9, 0x97, 0x98, + 0xb0, 0xce, 0x3c, 0xc1, 0x0d, 0x2a, 0x59, 0x6d, 0x56, 0x5d, 0xba, 0x82, 0xf8, 0x8c, 0xe4, 0xcf, + 0xf3, 0xb3, 0x3d, 0x5d, 0x24, 0xe9, 0xc0, 0x83, 0x11, 0x24, 0xbf, 0x1a, 0xd5, 0x4b, 0x79, 0x25, + 0x32, 0x98, 0x3d, 0xd6, 0xc3, 0xa8, 0xb7, 0xd0, + }, + MacI: 0xabf3e651, + } +} diff --git a/AMF/TestAmf/gen_nas_security_data.go b/AMF/TestAmf/gen_nas_security_data.go new file mode 100644 index 0000000..e0c07e1 --- /dev/null +++ b/AMF/TestAmf/gen_nas_security_data.go @@ -0,0 +1,163 @@ +package TestAmf + +type NIA2TestSet struct { + CountI string + Bearer uint8 + Direction uint8 + Length int32 + IK string + Message string + Expected string +} + +type CMACAES128 struct { + Key string + Mlen int32 + PlainText string + Expected string +} + +const ( + NIA2Test1 = "NIA2Test1" + NIA2Test2 = "NIA2Test2" + NIA2Test3 = "NIA2Test3" + NIA2Test4 = "NIA2Test4" + NIA2Test5 = "NIA2Test5" + NIA2Test8 = "NIA2Test8" + NIA2TestCHT = "NIA2TestCHT" +) + +const ( + Example1 = "Example1" + Example2 = "Example2" + Example3 = "Example3" + Example4 = "Example4" + ExampleCHT = "ExampleCHT" +) + +var TestNIA2Table = make(map[string]*NIA2TestSet) + +//https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Standards-and-Guidelines/documents/examples/AES_CMAC.pdf +var TestCMACAES128Table = make(map[string]*CMACAES128) + +func init() { + + TestNIA2Table[NIA2Test1] = &NIA2TestSet{ + // TS 33.401 test set 1 + CountI: "38a6f056", + Bearer: 0x18, + Direction: 0x0, + Length: 122, + IK: "2bd6459f82c5b300952c49104881ff48", + Message: "3332346263393840", + Expected: "118c6eb8", + } + + TestNIA2Table[NIA2Test2] = &NIA2TestSet{ + // TS 33.401 test set 2 + CountI: "398a59b4", + Bearer: 0x1a, + Direction: 0x1, + Length: 128, + IK: "d3c5d592327fb11c4035c6680af8c6d1", + Message: "484583d5afe082ae", + Expected: "b93787e6", + } + + TestNIA2Table[NIA2Test3] = &NIA2TestSet{ + // TS 33.401 test set 3 + CountI: "36af6144", + Bearer: 0x18, + Direction: 0x1, + Length: 318, + IK: "7e5e94431e11d73828d739cc6ced4573", + Message: "b3d3c9170a4e1632f60f861013d22d84b726b6a278d802d1eeaf1321ba5929dc", + Expected: "1f60b01d", + } + + TestNIA2Table[NIA2Test4] = &NIA2TestSet{ + // TS 33.401 test set 4 + CountI: "c7590ea9", + Bearer: 0x17, + Direction: 0x0, + Length: 575, + IK: "d3419be821087acd02123a9248033359", + Message: "bbb057038809496bcff86d6fbc8ce5b135a06b166054f2d565be8ace75dc851e0bcdd8f07141c495872fb5d8c0c66a8b6da556663e4e461205d84580bee5bc7e", + Expected: "6846a2f0", + } + + TestNIA2Table[NIA2Test5] = &NIA2TestSet{ + // TS 33.401 test set 5 + CountI: "36af6144", + Bearer: 0x0f, + Direction: 0x1, + Length: 832, + IK: "83fd23a244a74cf358da3019f1722635", + Message: "35c68716633c66fb750c266865d53c11ea05b1e9fa49c8398d48e1efa5909d3947902837f5ae96d5a05bc8d61ca8dbef1b13a4b4abfe4fb1006045b674bb54729304c382be53a5af05556176f6eaa2ef1d05e4b083181ee674cda5a485f74d7a", + Expected: "e657e182", + } + + TestNIA2Table[NIA2Test8] = &NIA2TestSet{ + // TS 33.401 test set 8 + CountI: "296f393c", + Bearer: 0x0b, + Direction: 0x1, + Length: 16512, + IK: "b3120ffdb2cf6af4e73eaf2ef4ebec69", + //00000000000000000101010101010101e0958045f3a0bba4e3968346f0a3b8a7c02a018ae640765226b987c913e6cbf083570016cf83efbc61c082513e21561a427c009d28c298eface78ed6d56c2d4505ad032e9c04dc60e73a81696da665c6c48603a57b45ab33221585e68ee3169187fb0239528632dd656c807ea3248b7b46d002b2b5c7458eb85b9ce95879e0340859055e3b0abbc3eace8719caa80265c97205d5dc4bcc902fe1839629ed71328a0f0449f588557e6898860e042aecd84b2404c212c9222da5bf8a89ef6797870cf50771a60f66a2ee62853657addf04cdde07fa414e11f12b4d81b9b4e8ac538ea30666688d881f6c348421992f31b94f8806ed8fccff4c9123b89642527ad613b109bf75167485f1268bf884b4cd23d29a0934925703d634098f7767f1be7491e708a8bb949a3873708aef4a36239e50cc08235cd5ed6bbe578668a17b58c1171d0b90e813a9e4f58a89d719b11042d6360b1b0f52deb730a58d58faf46315954b0a872691475977dc88c0d733feff54600a0cc1d0300aaaeb94572c6e95b01ae90de04f1dce47f87e8fa7bebf77e1dbc20d6ba85cb9143d518b285dfa04b698bf0cf7819f20fa7a288eb0703d995c59940c7c66de57a9b70f82379b70e2031e450fcfd2181326fcd28d8823baaa80df6e0f443559647539fd8907c0ffd9d79c130ed81c9afd9b7e848c9fed38443d5d380e53fbdb8ac8c3d3f06876054f122461107de92fea09c6f6923a188d53afe54a10f60e6e9d5a03d996b5fbc820f8a637116a27ad04b444a0932dd60fbd12671c11e1c0ec73e789879faa3d42c64d20cd1252742a3768c25a901585888ecee1e612d9936b403b0775949a66cdfd99a29b1345baa8d9d5400c91024b0a607363b013ce5de9ae869d3b8d95b0570b3c2d391422d32450cbcfae96652286e96dec1214a9346527980a8192eac1c39a3aaf6f15351da6be764df89772ec0407d06e4415befae7c92580df9bf507497c8f2995160d4e218daacb02944abf83340ce8be1686a960faf90e2d90c55cc6475babc3171a80a363174954955d7101dab16ae8179167e21444b443a9eaaa7c91de36d118c39d389f8dd4469a846c9a262bf7fa18487a79e8de11699e0b8fdf557cb48719d453ba713056109b93a218c89675ac195fb4fb06639b3797144955b3c9327d1aec003d42ecd0ea98abf19ffb4af3561a67e77c35bf15c59c2412da881db02b1bfbcebfac5152bc99bc3f1d15f771001b7029fedb028f8b852bc4407eb83f891c9ca733254fdd1e9edb56919ce9fea21c174072521c18319a54b5d4efbebddf1d8b69b1cbf25f489fcc981372547cf41d008ef0bca1926f934b735e090b3b251eb33a36f82ed9b29cf4cb944188fa0e1e38dd778f7d1c9d987b28d132dfb9731fa4f4b416935be49de30516af3578581f2f13f561c0663361941eab249a4bc123f8d15cd711a956a1bf20fe6eb78aea2373361da0426c79a530c3bb1de0c99722ef1fde39ac2b00a0a8ee7c800a08bc2264f89f4effe627ac2f0531fb554f6d21d74c590a70adfaa390bdfbb3d68e46215cab187d2368d5a71f5ebec081cd3b20c082dbe4cd2faca28773795d6b0c10204b659a939ef29bbe1088243624429927a7eb576dd3a00ea5e01af5d47583b2272c0c161a806521a16ff9b0a722c0cf26b025d5836e2258a4f7d4773ac801e4263bc294f43def7fa8703f3a4197463525887652b0b2a4a2a7cf87f00914871e25039113c7e1618da34064b57a43c463249fb8d05e0f26f4a6d84972e7a9054824145f91295cdbe39a6f920facc659712b46a54ba295bbe6a90154e91b33985a2bcd420ad5c67ec9ad8eb7ac6864db272a516bc94c2839b0a8169a6bf58e1a0c2ada8c883b7bf497a49171268ed15ddd2969384e7ff4bf4aab2ec9ecc6529cf629e2df0f08a77a65afa12aa9b505df8b287ef6cc91493d1caa39076e28ef1ea028f5118de61ae02bb6aefc3343a050292f199f401857b2bead5e6ee2a1f191022f9278016f047791a9d18da7d2a6d27f2e0e51c2f6ea30e8ac49a0604f4c13542e85b68381b9fdcfa0ce4b2d341354852d360245c536b612af71f3e77c9095ae2dbde504b265733dabfe10a20fc7d6d32c21ccc72b8b3444ae663d65922d17f82caa2b865cd88913d291a65899026ea1328439723c198c36b0c3c8d085bfaf8a320fde334b4a4919b44c2b95f6e8ecf73393f7f0d2a40e60b1d406526b022ddc331810b1a5f7c347bd53ed1f105d6a0d30aba477e178889ab2ec55d558deab2630204336962b4db5b663b6902b89e85b31bc6af50fc50accb3fb9b57b663297031378db47896d7fbaf6c600add2c67f936db037986db856eb49cf2db3f7da6d23650e438f1884041b013119e4c2ae5af37cccdfb68660738b58b3c59d1c0248437472aba1f35ca1fb90cd714aa9f635534f49e7c5bba81c2b6b36fdee21ca27e347f793d2ce944edb23c8c9b914be10335e350feb5070394b7a4a15c0ca120283568b7bfc254fe838b137a2147ce7c113a3a4d65499d9e86b87dbcc7f03bbd3a3ab1aa243ece5ba9bcf25f82836cfe473b2d83e7a7201cd0b96a72451e863f6c3ba664a6d073d1f7b5ed990865d978bd3815d06094fc9a2aba5221c22d5ab996389e3721e3af5f05beddc2875e0dfaeb39021ee27a41187cbb45ef40c3e73bc03989f9a30d12c54ba7d2141da8a875493e65776ef35f97debc2286cc4af9b4623eee902f840c52f1b8ad658939aef71f3f72b9ec1de21588bd35484ea44436343ff95ead6ab1d8afb1b2a303df1b71e53c4aea6b2e3e9372be0d1bc99798b0ce3cc10d2a596d565dba82f88ce4cff3b33d5d24e9c0831124bf1ad54b792532983dd6c3a8b7d0 + // + Message: "00000000000000000101010101010101e0958045f3a0bba4e3968346f0a3b8a7c02a018ae640765226b987c913e6cbf083570016cf83efbc61c082513e21561a427c009d28c298eface78ed6d56c2d4505ad032e9c04dc60e73a81696da665c6c48603a57b45ab33221585e68ee3169187fb0239528632dd656c807ea3248b7b46d002b2b5c7458eb85b9ce95879e0340859055e3b0abbc3eace8719caa80265c97205d5dc4bcc902fe1839629ed71328a0f0449f588557e6898860e042aecd84b2404c212c9222da5bf8a89ef6797870cf50771a60f66a2ee62853657addf04cdde07fa414e11f12b4d81b9b4e8ac538ea30666688d881f6c348421992f31b94f8806ed8fccff4c9123b89642527ad613b109bf75167485f1268bf884b4cd23d29a0934925703d634098f7767f1be7491e708a8bb949a3873708aef4a36239e50cc08235cd5ed6bbe578668a17b58c1171d0b90e813a9e4f58a89d719b11042d6360b1b0f52deb730a58d58faf46315954b0a872691475977dc88c0d733feff54600a0cc1d0300aaaeb94572c6e95b01ae90de04f1dce47f87e8fa7bebf77e1dbc20d6ba85cb9143d518b285dfa04b698bf0cf7819f20fa7a288eb0703d995c59940c7c66de57a9b70f82379b70e2031e450fcfd2181326fcd28d8823baaa80df6e0f443559647539fd8907c0ffd9d79c130ed81c9afd9b7e848c9fed38443d5d380e53fbdb8ac8c3d3f06876054f122461107de92fea09c6f6923a188d53afe54a10f60e6e9d5a03d996b5fbc820f8a637116a27ad04b444a0932dd60fbd12671c11e1c0ec73e789879faa3d42c64d20cd1252742a3768c25a901585888ecee1e612d9936b403b0775949a66cdfd99a29b1345baa8d9d5400c91024b0a607363b013ce5de9ae869d3b8d95b0570b3c2d391422d32450cbcfae96652286e96dec1214a9346527980a8192eac1c39a3aaf6f15351da6be764df89772ec0407d06e4415befae7c92580df9bf507497c8f2995160d4e218daacb02944abf83340ce8be1686a960faf90e2d90c55cc6475babc3171a80a363174954955d7101dab16ae8179167e21444b443a9eaaa7c91de36d118c39d389f8dd4469a846c9a262bf7fa18487a79e8de11699e0b8fdf557cb48719d453ba713056109b93a218c89675ac195fb4fb06639b3797144955b3c9327d1aec003d42ecd0ea98abf19ffb4af3561a67e77c35bf15c59c2412da881db02b1bfbcebfac5152bc99bc3f1d15f771001b7029fedb028f8b852bc4407eb83f891c9ca733254fdd1e9edb56919ce9fea21c174072521c18319a54b5d4efbebddf1d8b69b1cbf25f489fcc981372547cf41d008ef0bca1926f934b735e090b3b251eb33a36f82ed9b29cf4cb944188fa0e1e38dd778f7d1c9d987b28d132dfb9731fa4f4b416935be49de30516af3578581f2f13f561c0663361941eab249a4bc123f8d15cd711a956a1bf20fe6eb78aea2373361da0426c79a530c3bb1de0c99722ef1fde39ac2b00a0a8ee7c800a08bc2264f89f4effe627ac2f0531fb554f6d21d74c590a70adfaa390bdfbb3d68e46215cab187d2368d5a71f5ebec081cd3b20c082dbe4cd2faca28773795d6b0c10204b659a939ef29bbe1088243624429927a7eb576dd3a00ea5e01af5d47583b2272c0c161a806521a16ff9b0a722c0cf26b025d5836e2258a4f7d4773ac801e4263bc294f43def7fa8703f3a4197463525887652b0b2a4a2a7cf87f00914871e25039113c7e1618da34064b57a43c463249fb8d05e0f26f4a6d84972e7a9054824145f91295cdbe39a6f920facc659712b46a54ba295bbe6a90154e91b33985a2bcd420ad5c67ec9ad8eb7ac6864db272a516bc94c2839b0a8169a6bf58e1a0c2ada8c883b7bf497a49171268ed15ddd2969384e7ff4bf4aab2ec9ecc6529cf629e2df0f08a77a65afa12aa9b505df8b287ef6cc91493d1caa39076e28ef1ea028f5118de61ae02bb6aefc3343a050292f199f401857b2bead5e6ee2a1f191022f9278016f047791a9d18da7d2a6d27f2e0e51c2f6ea30e8ac49a0604f4c13542e85b68381b9fdcfa0ce4b2d341354852d360245c536b612af71f3e77c9095ae2dbde504b265733dabfe10a20fc7d6d32c21ccc72b8b3444ae663d65922d17f82caa2b865cd88913d291a65899026ea1328439723c198c36b0c3c8d085bfaf8a320fde334b4a4919b44c2b95f6e8ecf73393f7f0d2a40e60b1d406526b022ddc331810b1a5f7c347bd53ed1f105d6a0d30aba477e178889ab2ec55d558deab2630204336962b4db5b663b6902b89e85b31bc6af50fc50accb3fb9b57b663297031378db47896d7fbaf6c600add2c67f936db037986db856eb49cf2db3f7da6d23650e438f1884041b013119e4c2ae5af37cccdfb68660738b58b3c59d1c0248437472aba1f35ca1fb90cd714aa9f635534f49e7c5bba81c2b6b36fdee21ca27e347f793d2ce944edb23c8c9b914be10335e350feb5070394b7a4a15c0ca120283568b7bfc254fe838b137a2147ce7c113a3a4d65499d9e86b87dbcc7f03bbd3a3ab1aa243ece5ba9bcf25f82836cfe473b2d83e7a7201cd0b96a72451e863f6c3ba664a6d073d1f7b5ed990865d978bd3815d06094fc9a2aba5221c22d5ab996389e3721e3af5f05beddc2875e0dfaeb39021ee27a41187cbb45ef40c3e73bc03989f9a30d12c54ba7d2141da8a875493e65776ef35f97debc2286cc4af9b4623eee902f840c52f1b8ad658939aef71f3f72b9ec1de21588bd35484ea44436343ff95ead6ab1d8afb1b2a303df1b71e53c4aea6b2e3e9372be0d1bc99798b0ce3cc10d2a596d565dba82f88ce4cff3b33d5d24e9c0831124bf1ad54b792532983dd6c3a8b7d0", + Expected: "ebd5ccb0", + } + + TestNIA2Table[NIA2TestCHT] = &NIA2TestSet{ + // TS 33.401 test set 8 + CountI: "00000000", + Bearer: 0x01, + Direction: 0x1, + Length: 160, + IK: "c46c0669b51d1e91902cfdcbaaa367f6", + // 007e005d02010280 + Message: "007e005d02010280a0e15701", + Expected: "9ac4a19f", + } + + TestCMACAES128Table[Example1] = &CMACAES128{ + // Example1 + Key: "2B7E151628AED2A6ABF7158809CF4F3C", + Mlen: 0, + PlainText: "", + Expected: "BB1D6929", + } + TestCMACAES128Table[Example2] = &CMACAES128{ + // Example2 + Key: "2B7E151628AED2A6ABF7158809CF4F3C", + Mlen: 16, + PlainText: "6BC1BEE22E409F96E93D7E117393172A", + Expected: "070A16B4", + } + TestCMACAES128Table[Example3] = &CMACAES128{ + // Example3 + Key: "2B7E151628AED2A6ABF7158809CF4F3C", + Mlen: 20, + PlainText: "6BC1BEE22E409F96E93D7E117393172AAE2D8A57", + Expected: "7D85449E", + } + TestCMACAES128Table[Example4] = &CMACAES128{ + // Example4 + Key: "2B7E151628AED2A6ABF7158809CF4F3C", + Mlen: 64, + PlainText: "6BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9EB76FAC45AF8E5130C81C46A35CE411E5FBC1191A0A52EFF69F2445DF4F9B17AD2B417BE66C3710", + Expected: "51F0BEBF", + } + + TestCMACAES128Table[ExampleCHT] = &CMACAES128{ + // TS 33.401 test set 8 + Key: "44136b2e7e228e0ca84ac13f0fe28a42", + Mlen: 8, + + PlainText: "007e005d02010280", + Expected: "95c3ae0d", + } + +} diff --git a/AMF/TestAmf/testAmfCfg.conf b/AMF/TestAmf/testAmfCfg.conf index 6b0e473..67243c7 100644 --- a/AMF/TestAmf/testAmfCfg.conf +++ b/AMF/TestAmf/testAmfCfg.conf @@ -7,7 +7,7 @@ configuration: ngapIpList: - 127.0.0.1 sbi: - scheme: https + scheme: http ipv4Addr: 127.0.0.1 port: 29518 serviceNameList: @@ -34,7 +34,7 @@ configuration: sd: 010203 supportDnnList: - internet - nrfUri: https://localhost:29510 + nrfUri: http://localhost:29510 security: integrityOrder: - NIA2 diff --git a/AMF/TestComm/AMFStatusSubscription.go b/AMF/TestComm/AMFStatusSubscription.go index ec26c07..50f46c0 100644 --- a/AMF/TestComm/AMFStatusSubscription.go +++ b/AMF/TestComm/AMFStatusSubscription.go @@ -6,7 +6,7 @@ import ( const ( AMFStatusSubscription403 = "AMFStatusSubscription403" - AMFStatusSubscription200 = "AMFStatusSubscription200" + AMFStatusSubscription201 = "AMFStatusSubscription201" AMFStatusUnSubscription403 = "AMFStatusUnSubscription403" AMFStatusUnSubscription204 = "AMFStatusUnSubscription204" AMFStatusSubscriptionModfy403 = "AMFStatusSubscriptionModfy403" @@ -21,7 +21,7 @@ func init() { GuamiList: nil, } - ConsumerAMFStatusSubscriptionTable[AMFStatusSubscription200] = models.SubscriptionData{ + ConsumerAMFStatusSubscriptionTable[AMFStatusSubscription201] = models.SubscriptionData{ AmfStatusUri: "https://127.0.0.1:29333/AMFStatusNotify", GuamiList: []models.Guami{ { diff --git a/PCF/TestPolicyAuthorization/PolicyAuthorizationCreate.go b/PCF/TestPolicyAuthorization/PolicyAuthorizationCreate.go index 23cf08d..af61c4c 100644 --- a/PCF/TestPolicyAuthorization/PolicyAuthorizationCreate.go +++ b/PCF/TestPolicyAuthorization/PolicyAuthorizationCreate.go @@ -68,6 +68,41 @@ func GetPostAppSessionsData_Normal() models.AppSessionContext { return PostAppSessionsData } +func GetPostAppSessionsData_AFInfluenceOnTrafficRouting() models.AppSessionContext { + PostAppSessionsData := models.AppSessionContext{ + AscReqData: &models.AppSessionContextReqData{ + AfAppId: "edge", + Dnn: "internet", + SuppFeat: "03", + Supi: "imsi-2089300007487", + UeIpv4: "60.60.0.1", + SliceInfo: &models.Snssai{ + Sst: 1, Sd: "010203", + }, + AfRoutReq: &models.AfRoutingRequirement{ + AppReloc: false, + UpPathChgSub: &models.UpPathChgEvent{ + DnaiChgType: models.DnaiChangeType_LATE, + NotificationUri: "http://127.0.0.100:8000/nnef-callback/v1/traffic-influence/edge", + NotifCorreId: "1234", + }, + RouteToLocs: []models.RouteToLocation{ + { + Dnai: "edge", + RouteInfo: &models.RouteInformation{ + Ipv4Addr: "140.113.100.100", + PortNumber: 8080, + }, + }, + }, + }, + NotifUri: "http://127.0.0.100:8000/nnef-callback/v1/applications/edge", + IpDomain: "edgeIPDomain", + }, + } + return PostAppSessionsData +} + func GetPostAppSessionsData_Flow3() models.AppSessionContext { PostAppSessionsData := GetPostAppSessionsData_Normal() medComp := PostAppSessionsData.AscReqData.MedComponents["1"] diff --git a/SMF/TestPDUSession/SMContextCreate.go b/SMF/TestPDUSession/SMContextCreate.go index dc6deb7..33c5a02 100644 --- a/SMF/TestPDUSession/SMContextCreate.go +++ b/SMF/TestPDUSession/SMContextCreate.go @@ -2,11 +2,11 @@ package TestPDUSession import ( "bytes" - "github.com/google/uuid" "free5gc/lib/nas" "free5gc/lib/nas/nasMessage" "free5gc/lib/nas/nasType" "free5gc/lib/openapi/models" + "github.com/google/uuid" ) const ( @@ -147,10 +147,10 @@ type nasMessageULNASTransportData struct { inSpareHalfOctetAndPayloadContainerType uint8 inPayloadContainer nasType.PayloadContainer inPduSessionID2Value nasType.PduSessionID2Value - inOldPDUSessionID nasType.OldPDUSessionID - inRequestType nasType.RequestType - inSNSSAI nasType.SNSSAI - inAdditionalInformation nasType.AdditionalInformation + //inOldPDUSessionID nasType.OldPDUSessionID + inRequestType nasType.RequestType + inSNSSAI nasType.SNSSAI + //inAdditionalInformation nasType.AdditionalInformation } var NasMessageNasMessageULNASTransportDataTable = make(map[string]nasMessageULNASTransportData) diff --git a/UDR/TestRegistrationProcedure/RegistrationProcedure.go b/UDR/TestRegistrationProcedure/RegistrationProcedure.go index 7976e14..fb236d7 100644 --- a/UDR/TestRegistrationProcedure/RegistrationProcedure.go +++ b/UDR/TestRegistrationProcedure/RegistrationProcedure.go @@ -105,7 +105,7 @@ func init() { Sd: "010203", }, DnnConfigurations: map[string]models.DnnConfiguration{ - "internet": models.DnnConfiguration{ + "internet": { SscModes: &models.SscModes{ DefaultSscMode: models.SscMode__1, AllowedSscModes: []models.SscMode{models.SscMode__1, models.SscMode__2, models.SscMode__3},