summaryrefslogtreecommitdiff
path: root/maximus
diff options
context:
space:
mode:
authorronciere2008-03-11 13:27:53 +0000
committerronciere2008-03-11 13:27:53 +0000
commitaa4057f6651b08358d8d8727d875b2241f5a3bf7 (patch)
treea95ae681f5a221634637e29bea28f689ec22ea3c /maximus
parent8944ed779d2d32596ae23979485aa7d0e9600633 (diff)
Libraries files architecturing
git-svn-id: svn+ssh://pessac/svn/cesar/trunk@1591 017c9cb6-072f-447c-8318-d5b54f68fe89
Diffstat (limited to 'maximus')
-rw-r--r--maximus/python/lib/fcVf/__init__.py1
-rw-r--r--maximus/python/lib/fcVf/crc24/__init__.py1
-rw-r--r--maximus/python/lib/fcVf/crc24/crc24.py (renamed from maximus/python/lib/crc24.py)0
-rw-r--r--maximus/python/lib/fcVf/crc24/crc24_algorithms.py (renamed from maximus/python/lib/crc24_algorithms.py)0
-rw-r--r--maximus/python/lib/fcVf/crc24/pycrc24.py (renamed from maximus/python/lib/pycrc24.py)0
-rw-r--r--maximus/python/lib/fcVf/fcVfFields.py (renamed from maximus/python/lib/fcVfFields.py)11
-rw-r--r--maximus/python/lib/macFrame.py10
-rw-r--r--maximus/python/lib/mmeScript.py94
-rw-r--r--maximus/python/lib/mmentry/Constants.py (renamed from maximus/python/lib/Constants.py)0
-rw-r--r--maximus/python/lib/mmentry/__init__.py1
-rw-r--r--maximus/python/lib/mmentry/aes128/AES.py (renamed from maximus/python/lib/AES.py)0
-rw-r--r--maximus/python/lib/mmentry/aes128/Python_AES.py (renamed from maximus/python/lib/Python_AES.py)0
-rw-r--r--maximus/python/lib/mmentry/aes128/__init__.py1
-rw-r--r--maximus/python/lib/mmentry/aes128/compat.py (renamed from maximus/python/lib/compat.py)0
-rw-r--r--maximus/python/lib/mmentry/aes128/cryptomath.py (renamed from maximus/python/lib/cryptomath.py)0
-rw-r--r--maximus/python/lib/mmentry/aes128/rijndael.py (renamed from maximus/python/lib/rijndael.py)0
-rw-r--r--maximus/python/lib/mmentry/bmi/__init__.py1
-rw-r--r--maximus/python/lib/mmentry/bmi/bmiBody.py (renamed from maximus/python/lib/bmiBody.py)0
-rw-r--r--maximus/python/lib/mmentry/bmi/bmiMethod.py (renamed from maximus/python/lib/bmiMethod.py)2
-rw-r--r--maximus/python/lib/mmentry/encapsulation/__init__.py1
-rw-r--r--maximus/python/lib/mmentry/encapsulation/encapsulation.py (renamed from maximus/python/lib/encapsulation.py)5
-rw-r--r--maximus/python/lib/mmentry/fid/__init__.py1
-rw-r--r--maximus/python/lib/mmentry/fid/fidBody.py (renamed from maximus/python/lib/fidBody.py)0
-rw-r--r--maximus/python/lib/mmentry/fid/fidMethod.py (renamed from maximus/python/lib/fidMethod.py)2
-rw-r--r--maximus/python/lib/mmentry/mmentry.py (renamed from maximus/python/lib/mmentry.py)0
-rw-r--r--maximus/python/lib/mmentry/mmentryFields.py (renamed from maximus/python/lib/mmentryFields.py)94
-rw-r--r--maximus/python/lib/mmentry/mmentryMethod.py (renamed from maximus/python/lib/mmentryMethod.py)22
27 files changed, 101 insertions, 146 deletions
diff --git a/maximus/python/lib/fcVf/__init__.py b/maximus/python/lib/fcVf/__init__.py
new file mode 100644
index 0000000000..ae0fc2de39
--- /dev/null
+++ b/maximus/python/lib/fcVf/__init__.py
@@ -0,0 +1 @@
+from fcVfFields import *
diff --git a/maximus/python/lib/fcVf/crc24/__init__.py b/maximus/python/lib/fcVf/crc24/__init__.py
new file mode 100644
index 0000000000..96bcf63b8d
--- /dev/null
+++ b/maximus/python/lib/fcVf/crc24/__init__.py
@@ -0,0 +1 @@
+from pycrc24 import *
diff --git a/maximus/python/lib/crc24.py b/maximus/python/lib/fcVf/crc24/crc24.py
index 3f453d6271..3f453d6271 100644
--- a/maximus/python/lib/crc24.py
+++ b/maximus/python/lib/fcVf/crc24/crc24.py
diff --git a/maximus/python/lib/crc24_algorithms.py b/maximus/python/lib/fcVf/crc24/crc24_algorithms.py
index 9158758dd4..9158758dd4 100644
--- a/maximus/python/lib/crc24_algorithms.py
+++ b/maximus/python/lib/fcVf/crc24/crc24_algorithms.py
diff --git a/maximus/python/lib/pycrc24.py b/maximus/python/lib/fcVf/crc24/pycrc24.py
index 2f8f4df7fc..2f8f4df7fc 100644
--- a/maximus/python/lib/pycrc24.py
+++ b/maximus/python/lib/fcVf/crc24/pycrc24.py
diff --git a/maximus/python/lib/fcVfFields.py b/maximus/python/lib/fcVf/fcVfFields.py
index 70b8ab3c49..b241c411d1 100644
--- a/maximus/python/lib/fcVfFields.py
+++ b/maximus/python/lib/fcVf/fcVfFields.py
@@ -5,10 +5,14 @@ sys.path.append('./test')
sys.path.append('../test')
import startup
-from maximus import *
+#from maximus import *
+from maximus import FC_AV, MACFrameHeader, MACFrame
#print "Create Frame Control"
myFC_AV = FC_AV()
+#print "Create MAC Frame Header"
+myMacFrameHeader = MACFrameHeader()
+myMacFrame = MACFrame()
#Frame Control Variant Fields
@@ -18,9 +22,7 @@ from math import *
from random import randrange #random library is used : randrange(),
from Constants import * #Constants library is used : classifierRuleSize[], MAX_TONE_MAPS,
-from pycrc24 import *
-
-
+from crc24 import *
#FcVfFields lists all fields existing in every Frame Control Variant Fields
@@ -748,6 +750,7 @@ class FcVfFields():
myFC_AV.set_snid(self.snid)
myFC_AV.set_vf_av(self.vf_AV)
myFC_AV.set_fccs_av(self.fccs_AV)
+ myMacFrame.FC_AV = myFC_AV
print "iv_SOF = "+hex(unpack('QI',self.iv_SOF)[0]+unpack('QI',self.iv_SOF)[1]*pow_2_64)
diff --git a/maximus/python/lib/macFrame.py b/maximus/python/lib/macFrame.py
index a604500bae..6cfa5f34ed 100644
--- a/maximus/python/lib/macFrame.py
+++ b/maximus/python/lib/macFrame.py
@@ -4,28 +4,24 @@
#import unittest
from interface import *
-from mmentryMethod import *
+from mmentry import *
mmentryMethod = MmentryMethod()
-from fcVfFields import *
+from fcVf import *
myFcVfFields = FcVfFields()
-#print "Create MAC Frame Header"
-myMacFrameHeader = MACFrameHeader()
-myMacFrame = MACFrame()
#print "Instantiate a Maximus object and initialize it."
maximus = Maximus()
maximus.init(sys.argv)
#print "Create a station."
myStaA = maximus.create_sta()
-# Enable channel perturbation (To work with test_tx_rx station)
-#maximus.disturb_channel()
#myStaA.debug()
#print "Set tonemask"
fcall1 = maximus.create_fcall('set_tonemask')
fcall1.send(myStaA)
+
#print "Send an MPDU containing one PB of 128 octets"
def create_fcall_128():
#print "Create a fcall for an MPDU containing one PB of 128 octets"
diff --git a/maximus/python/lib/mmeScript.py b/maximus/python/lib/mmeScript.py
index 0efc6a5ec3..d1841d3db7 100644
--- a/maximus/python/lib/mmeScript.py
+++ b/maximus/python/lib/mmeScript.py
@@ -22,138 +22,85 @@ from framming import *
mmentryMethod.createCC_CCO_APPOINT_REQ_MMENTRY(myReqType=0x0, myMacAddress=0x414243444546)
-mmentryMethod.createCM_ENCRYPTED_PAYLOAD_IND_MMENTRY(myPeks=0, myOda=staAAddress, myOsa=maxAddress)
-
+#mmentryMethod.createCM_ENCRYPTED_PAYLOAD_IND_MMENTRY(myPeks=0, myOda=staAAddress, myOsa=maxAddress)
rsp1 = myMacFields.createMacFrame()
mmentryMethod.createCC_ASSOC_REQ_MMENTRY(myReqType=0x0, myNid=0x01020304050607, myCcoCapability=0x02, myProxyNetworkingCapability=0x00)
mmentryMethod.createCM_ENCRYPTED_PAYLOAD_IND_MMENTRY(myPeks=0, myOda=staAAddress, myOsa=maxAddress)
-
rsp2 = myMacFields.createMacFrame()
mmentryMethod.createCC_ASSOC_CNF_MMENTRY(myResult=0, myNid=0x00010203040506, mySnidAccess=0x09, myStaTei=0x81, myLeaseTime=0x000A)
mmentryMethod.createCM_ENCRYPTED_PAYLOAD_IND_MMENTRY(myPeks=0, myOda=staAAddress, myOsa=maxAddress)
-
-
rsp3 = myMacFields.createMacFrame()
mmentryMethod.createCM_UNASSOCIATED_STA_IND_MMENTRY(myNid=0x070809101112, myCcoCapability=0x01)
mmentryMethod.createCM_ENCRYPTED_PAYLOAD_IND_MMENTRY(myPeks=0, myOda=staAAddress, myOsa=maxAddress)
-
rsp4 = myMacFields.createMacFrame()
mmentryMethod.createCM_ENCRYPTED_PAYLOAD_RSP_MMENTRY(myResult=1, myPid=2, myPrn=0x1234)
mmentryMethod.createCM_ENCRYPTED_PAYLOAD_IND_MMENTRY(myPeks=0, myOda=staAAddress, myOsa=maxAddress)
-
rsp5 = myMacFields.createMacFrame()
-
mmentryMethod.createCM_SET_KEY_REQ_MMENTRY(myKeyType=1, myMyNonce=2, myYourNonce=3, myPid=2, myPrn=5, myPmn=6, myCcoCapability=1, myNid=7, myNewEks=8, myNewKey=9)
mmentryMethod.createCM_ENCRYPTED_PAYLOAD_IND_MMENTRY(myPeks=0, myOda=staAAddress, myOsa=maxAddress)
-
rsp6 = myMacFields.createMacFrame()
mmentryMethod.createCM_SET_KEY_CNF_MMENTRY(myResult=9, myMyNonce=8, myYourNonce=7, myPid=6, myPrn=5, myPmn=4, myCcoCapability=9)
mmentryMethod.createCM_ENCRYPTED_PAYLOAD_IND_MMENTRY(myPeks=0, myOda=staAAddress, myOsa=maxAddress)
-
rsp7 = myMacFields.createMacFrame()
mmentryMethod.createCM_GET_KEY_REQ_MMENTRY(myRequestType=1, myRequestedKeyType=2, myNid=0x1, myMyNonce=4, myPid=5, myPrn=6, myPmn=7, myHashKey=None)
mmentryMethod.createCM_ENCRYPTED_PAYLOAD_IND_MMENTRY(myPeks=0, myOda=staAAddress, myOsa=maxAddress)
-
rsp8 = myMacFields.createMacFrame()
mmentryMethod.createCM_GET_KEY_REQ_MMENTRY(myRequestType=1, myRequestedKeyType=4, myNid=3, myMyNonce=4, myPid=5, myPrn=6, myPmn=7, myHashKey=None)
mmentryMethod.createCM_ENCRYPTED_PAYLOAD_IND_MMENTRY(myPeks=0, myOda=staAAddress, myOsa=maxAddress)
-
rsp9 = myMacFields.createMacFrame()
mmentryMethod.createCM_GET_KEY_CNF_MMENTRY(myResult=1, myRequestedKeyType=5, myMyNonce=2, myYourNonce=3, myNid=0x11121314151617, myEks=0x04, myPid=0, myPrn=0, myPmn=0, myKey=0x4142434445464748494A4B4C4D4E4F50)
mmentryMethod.createCM_ENCRYPTED_PAYLOAD_IND_MMENTRY(myPeks=0x0, myOda=staAAddress, myOsa=maxAddress)
-
rsp0 = myMacFields.createMacFrame()
mmentryMethod.createCM_GET_KEY_CNF_MMENTRY(myResult=0, myRequestedKeyType=4, myMyNonce=1, myYourNonce=3, myNid=4, myEks=0x0f, myPid=5, myPrn=7, myPmn=6, myKey=0x31323334353637384847464544434241, myHashKey=None)
mmentryMethod.createCM_ENCRYPTED_PAYLOAD_IND_MMENTRY(myPeks=0x0f, myOda=staAAddress, myOsa=maxAddress)
-
rspa = myMacFields.createMacFrame()
mmentryMethod.createCM_MME_ERROR_IND_MMENTRY(myReasonCode=1, myRx_MMV=2, myRx_MMTYPE=4, myInvalidByteOffset=5)
-mmentryMethod.createCM_ENCRYPTED_PAYLOAD_IND_MMENTRY(myPeks=0x0f, myOda=staAAddress, myOsa=maxAddress)
-
+#mmentryMethod.createCM_ENCRYPTED_PAYLOAD_IND_MMENTRY(myPeks=0x0f, myOda=staAAddress, myOsa=maxAddress)
rspb = myMacFields.createMacFrame()
mmentryMethod.createCC_SET_TEI_MAP_IND_MMENTRY(myMode=1, myNum=0xff, myTei=0x10, myAddr=0x123400, myStatus=2)
mmentryMethod.createCM_ENCRYPTED_PAYLOAD_IND_MMENTRY(myPeks=0x0f, myOda=staAAddress, myOsa=maxAddress)
rspc = myMacFields.createMacFrame()
-#thisNfmi = (len(mmentryMethod.mmentryFields.mmentry)-1)/1492
-#thisFnMi = 0
-#rspu = ""
-#while thisFnMi<=thisNfmi:
-
-
- #myEncapsulatedMme.createEncapsulatedMmEntry(myOda=staAAddress, myOsa=maxAddress, myVlanTag=0, myMtype=0xe188, myMmv=0, myMmtype=mmentryMethod.mmentryFields.mmtype, myNfmi=thisNfmi, myFnMi=thisFnMi, myFmsn=0x80, myMmentry=mmentryMethod.mmentryFields.mmentry, myEncapsulatedMmEntry=None)
-
- #myMacFields.createMacFrame()
-
- #myMacFrameHeader.set_mft(mmeMft)
- #myMacFrameHeader.set_mfl(min(mmentryMethod.mmentryFields.mmeMfl,1518))
-
- #if mmentryMethod.mmentryFields.mmeMfl<=122:
- #print " ---------- GROS COUCOU 128 ---------- "
- #fcall_128 = create_fcall_128()
- #fcall_128.send(myStaA)
- #else:
- #print " ---------- GROS COUCOU 512 RSPC ---------- "
- #fcall_512 = create_fcall_512(int(((min(mmentryMethod.mmentryFields.mmeMfl,1518)-1)/506)+1))
- #fcall_512.send(myStaA)
-
- #mmentryMethod.mmentryFields.mmeMfl = mmentryMethod.mmentryFields.mmeMfl-1492
- #myMacFrame.set_fc_av(myFC_AV)
- #myMacFrame.set_macframeheader(myMacFrameHeader)
- #myMacFrame.set_ats(None)
- #confunder = randrange(0,pow(2,32)-1,1)
- #myMacFrame.set_msdu(myMme)
- #myMacFrame.set_confounder(confunder)
- #icv = unpack('I',pack('i',crc32(myMacFrame.get_msdu())))[0]
- #myMacFrame.set_icv(icv)
- #myMacFrame.set_iv(myFcVfFields.iv_SOF) #IV_SOF NOT IV !!!
- #myMacFrame.set_nek(myFcVfFields.nekField)
-
- #myMacFrame.send(maximus)
- #rspc = recv(maximus) #PB Objects list
- #rspc = rspc[0].get_pblist()
- #receivedPbNum = len(rspc)
- #rspt = ""
- #i=0
- #while i<receivedPbNum:
- #rspt = rspt + rspc[i]
- #i=i+1
- #rspc = rspt[:int(unpack('H',rspt[0:2])[0]/4)+6+1-4]
- #maximus.wait(100000)
- #rspuH = rspc[:29]
- #rspu = rspu + rspc[29:]
-
- #thisFnMi = thisFnMi + 1
-
-#rspc = rspuH + rspu
+
+
+mmentryMethod.createCM_SC_JOIN_REQ_MMENTRY(myCcoCapability=0x00)
+mmentryMethod.createCM_ENCRYPTED_PAYLOAD_IND_MMENTRY(myPeks=0x0f, myOda=staAAddress, myOsa=maxAddress)
+rspd = myMacFields.createMacFrame()
+
+
+
+
+
+#INTERPRETATION
mmEntryData = myEncapsulatedMme.createEncapsulatedMmEntry(myEncapsulatedMmEntry=rsp1[6:])
-mmentryMethod.createCM_ENCRYPTED_PAYLOAD_IND_MMENTRY(myKey=0x4142434445464748494A4B4C4D4E4F50, myEncryptedFields=mmEntryData)
-mmentryMethod.createCC_CCO_APPOINT_REQ_MMENTRY(myMmentry=mmentryMethod.mmentryFields.mmOrHlePayloadEncryptedField)
+#mmentryMethod.createCM_ENCRYPTED_PAYLOAD_IND_MMENTRY(myKey=0x4142434445464748494A4B4C4D4E4F50, myEncryptedFields=mmEntryData)
+#mmentryMethod.createCC_CCO_APPOINT_REQ_MMENTRY(myMmentry=mmentryMethod.mmentryFields.mmOrHlePayloadEncryptedField)
+mmentryMethod.createCC_CCO_APPOINT_REQ_MMENTRY(myMmentry=mmEntryData)
mmEntryData = myEncapsulatedMme.createEncapsulatedMmEntry(myEncapsulatedMmEntry=rsp2[6:])
mmentryMethod.createCM_ENCRYPTED_PAYLOAD_IND_MMENTRY(myKey=0x4142434445464748494A4B4C4D4E4F50, myEncryptedFields=mmEntryData)
@@ -196,13 +143,18 @@ mmentryMethod.createCM_ENCRYPTED_PAYLOAD_IND_MMENTRY(myKey=0x3132333435363738484
mmentryMethod.createCM_GET_KEY_CNF_MMENTRY(myMmentry=mmentryMethod.mmentryFields.mmOrHlePayloadEncryptedField)
mmEntryData = myEncapsulatedMme.createEncapsulatedMmEntry(myEncapsulatedMmEntry=rspb[6:])
-mmentryMethod.createCM_ENCRYPTED_PAYLOAD_IND_MMENTRY(myKey=0x31323334353637384847464544434241, myEncryptedFields=mmEntryData)
-mmentryMethod.createCM_MME_ERROR_IND_MMENTRY(myMmentry=mmentryMethod.mmentryFields.mmOrHlePayloadEncryptedField)
+#mmentryMethod.createCM_ENCRYPTED_PAYLOAD_IND_MMENTRY(myKey=0x31323334353637384847464544434241, myEncryptedFields=mmEntryData)
+#mmentryMethod.createCM_MME_ERROR_IND_MMENTRY(myMmentry=mmentryMethod.mmentryFields.mmOrHlePayloadEncryptedField)
+mmentryMethod.createCM_MME_ERROR_IND_MMENTRY(myMmentry=mmEntryData)
mmEntryData = myEncapsulatedMme.createEncapsulatedMmEntry(myEncapsulatedMmEntry=rspc[6:])
mmentryMethod.createCM_ENCRYPTED_PAYLOAD_IND_MMENTRY(myKey=0x31323334353637384847464544434241, myEncryptedFields=mmEntryData)
mmentryMethod.createCC_SET_TEI_MAP_IND_MMENTRY(myMmentry=mmentryMethod.mmentryFields.mmOrHlePayloadEncryptedField)
+mmEntryData = myEncapsulatedMme.createEncapsulatedMmEntry(myEncapsulatedMmEntry=rspd[6:])
+mmentryMethod.createCM_ENCRYPTED_PAYLOAD_IND_MMENTRY(myKey=0x31323334353637384847464544434241, myEncryptedFields=mmEntryData)
+mmentryMethod.createCM_SC_JOIN_REQ_MMENTRY(myMmentry=mmentryMethod.mmentryFields.mmOrHlePayloadEncryptedField)
+
print "----- My Ended Coucou -----"
diff --git a/maximus/python/lib/Constants.py b/maximus/python/lib/mmentry/Constants.py
index ab21b68158..ab21b68158 100644
--- a/maximus/python/lib/Constants.py
+++ b/maximus/python/lib/mmentry/Constants.py
diff --git a/maximus/python/lib/mmentry/__init__.py b/maximus/python/lib/mmentry/__init__.py
new file mode 100644
index 0000000000..e3f95270ae
--- /dev/null
+++ b/maximus/python/lib/mmentry/__init__.py
@@ -0,0 +1 @@
+from mmentryMethod import *
diff --git a/maximus/python/lib/AES.py b/maximus/python/lib/mmentry/aes128/AES.py
index 8413f4c109..8413f4c109 100644
--- a/maximus/python/lib/AES.py
+++ b/maximus/python/lib/mmentry/aes128/AES.py
diff --git a/maximus/python/lib/Python_AES.py b/maximus/python/lib/mmentry/aes128/Python_AES.py
index 657152f892..657152f892 100644
--- a/maximus/python/lib/Python_AES.py
+++ b/maximus/python/lib/mmentry/aes128/Python_AES.py
diff --git a/maximus/python/lib/mmentry/aes128/__init__.py b/maximus/python/lib/mmentry/aes128/__init__.py
new file mode 100644
index 0000000000..d6738ad516
--- /dev/null
+++ b/maximus/python/lib/mmentry/aes128/__init__.py
@@ -0,0 +1 @@
+from Python_AES import *
diff --git a/maximus/python/lib/compat.py b/maximus/python/lib/mmentry/aes128/compat.py
index 7d2d9250d8..7d2d9250d8 100644
--- a/maximus/python/lib/compat.py
+++ b/maximus/python/lib/mmentry/aes128/compat.py
diff --git a/maximus/python/lib/cryptomath.py b/maximus/python/lib/mmentry/aes128/cryptomath.py
index 51d6dff7c8..51d6dff7c8 100644
--- a/maximus/python/lib/cryptomath.py
+++ b/maximus/python/lib/mmentry/aes128/cryptomath.py
diff --git a/maximus/python/lib/rijndael.py b/maximus/python/lib/mmentry/aes128/rijndael.py
index cb2f547346..cb2f547346 100644
--- a/maximus/python/lib/rijndael.py
+++ b/maximus/python/lib/mmentry/aes128/rijndael.py
diff --git a/maximus/python/lib/mmentry/bmi/__init__.py b/maximus/python/lib/mmentry/bmi/__init__.py
new file mode 100644
index 0000000000..f189dd89ca
--- /dev/null
+++ b/maximus/python/lib/mmentry/bmi/__init__.py
@@ -0,0 +1 @@
+from bmiMethod import *
diff --git a/maximus/python/lib/bmiBody.py b/maximus/python/lib/mmentry/bmi/bmiBody.py
index a4077ea200..a4077ea200 100644
--- a/maximus/python/lib/bmiBody.py
+++ b/maximus/python/lib/mmentry/bmi/bmiBody.py
diff --git a/maximus/python/lib/bmiMethod.py b/maximus/python/lib/mmentry/bmi/bmiMethod.py
index 88e2691ab6..a0fa7fb6fb 100644
--- a/maximus/python/lib/bmiMethod.py
+++ b/maximus/python/lib/mmentry/bmi/bmiMethod.py
@@ -3,6 +3,8 @@
from bmiBody import *
from struct import *
+import sys
+sys.path.append('../../python/lib/mmentry')
from Constants import *
from random import *
diff --git a/maximus/python/lib/mmentry/encapsulation/__init__.py b/maximus/python/lib/mmentry/encapsulation/__init__.py
new file mode 100644
index 0000000000..5660af2567
--- /dev/null
+++ b/maximus/python/lib/mmentry/encapsulation/__init__.py
@@ -0,0 +1 @@
+from encapsulation import *
diff --git a/maximus/python/lib/encapsulation.py b/maximus/python/lib/mmentry/encapsulation/encapsulation.py
index 2c5ce36cb8..d09deedfbf 100644
--- a/maximus/python/lib/encapsulation.py
+++ b/maximus/python/lib/mmentry/encapsulation/encapsulation.py
@@ -2,10 +2,13 @@
#------ Encapsulated MME Library Prototypes -------
+import sys
+sys.path.append('../../python/lib/mmentry')
+
from Constants import * #Constants library is used : mme
from struct import * #struct library is used : pack(),
-import sys
+#import sys
sys.path.append('./test')
sys.path.append('../test')
import startup
diff --git a/maximus/python/lib/mmentry/fid/__init__.py b/maximus/python/lib/mmentry/fid/__init__.py
new file mode 100644
index 0000000000..76061d23cf
--- /dev/null
+++ b/maximus/python/lib/mmentry/fid/__init__.py
@@ -0,0 +1 @@
+from fidMethod import *
diff --git a/maximus/python/lib/fidBody.py b/maximus/python/lib/mmentry/fid/fidBody.py
index 867c101e0b..867c101e0b 100644
--- a/maximus/python/lib/fidBody.py
+++ b/maximus/python/lib/mmentry/fid/fidBody.py
diff --git a/maximus/python/lib/fidMethod.py b/maximus/python/lib/mmentry/fid/fidMethod.py
index b3b5ff259c..d9072b0388 100644
--- a/maximus/python/lib/fidMethod.py
+++ b/maximus/python/lib/mmentry/fid/fidMethod.py
@@ -3,6 +3,8 @@
from fidBody import *
from struct import *
+import sys
+sys.path.append('../../python/lib/mmentry')
from Constants import *
#FidMethod can create every FID Body of CSPEC
diff --git a/maximus/python/lib/mmentry.py b/maximus/python/lib/mmentry/mmentry.py
index 28321ea0dc..28321ea0dc 100644
--- a/maximus/python/lib/mmentry.py
+++ b/maximus/python/lib/mmentry/mmentry.py
diff --git a/maximus/python/lib/mmentryFields.py b/maximus/python/lib/mmentry/mmentryFields.py
index d7c10aab26..1b92d41b07 100644
--- a/maximus/python/lib/mmentryFields.py
+++ b/maximus/python/lib/mmentry/mmentryFields.py
@@ -5,13 +5,13 @@
#MMENTRY Fields
from struct import *
-from fidMethod import *
+from fid import *
from math import *
from random import randrange #random library is used : randrange(),
from Constants import * #Constants library is used : classifierRuleSize[], MAX_TONE_MAPS,
from binascii import * #binascii library is used : crc32(),
-from bmiMethod import *
-from Python_AES import *
+from bmi import *
+from aes128 import *
from encapsulation import *
myEncapsulatedMme=EncapsulatedMme()
@@ -474,7 +474,7 @@ class StationInfo():
self.snidAccessField = pack('B',self.snidAccess)
except:
self.snidAccessField=mySnidAccess
- self.snidAccess = unpack('B',self.snidAccessField)
+ self.snidAccess = unpack('B',self.snidAccessField[0])[0]
else:
if mySnid!=None:
self.snid=mySnid
@@ -824,7 +824,7 @@ class MmentryFields():
except:
if myReqType!=None:
self.reqTypeField=myReqType
- self.reqType = unpack('B',self.reqTypeField)[0]
+ self.reqType = unpack('B',self.reqTypeField[0])[0]
print "reqType = "+hex(self.reqType)
#Response Type
@@ -856,7 +856,7 @@ class MmentryFields():
except:
if myMacAddress!=None:
self.macAddressField=myMacAddress
- self.macAddress = unpack('Q',self.macAddressField+"\x00\x00")[0]
+ self.macAddress = unpack('Q',self.macAddressField[:6]+"\x00\x00")[0]
print "macAddress = "+hex(self.macAddress)
#Results Codes
@@ -869,7 +869,7 @@ class MmentryFields():
self.resultField = pack('B',self.result)
except:
self.resultField=myResult
- self.result = unpack('B',self.resultField)[0]
+ self.result = unpack('B',self.resultField[0])[0]
print "result = "+hex(self.result)
#Become Backup CCo or Release Duty
@@ -891,7 +891,7 @@ class MmentryFields():
self.numField = pack('B',self.num)
except:
self.numField=myNum
- self.num = unpack('B',self.numField)[0]
+ self.num = unpack('B',self.numField[0])[0]
print "num = "+hex(self.num)
#Link Information of the Global Links
@@ -1189,7 +1189,7 @@ class MmentryFields():
self.nidField = pack('Q',self.nid)[0:7]
except:
self.nidField=myNid
- self.nid = unpack('Q',self.nid+"\x00")[0]
+ self.nid = unpack('Q',self.nid[:7]+"\x00")[0]
elif mySecurityLevel!=None or myNidOffset!=None:
if mySecurityLevel!=None:
self.securityLevel=mySecurityLevel
@@ -1232,7 +1232,7 @@ class MmentryFields():
self.ccoCapabilityField = pack('B',self.ccoCapability)
except:
self.ccoCapabilityField=myCcoCapability
- self.ccoCapability = unpack('B',self.ccoCapabilityField)[0]
+ self.ccoCapability = unpack('B',self.ccoCapabilityField[0])[0]
print "ccoCapability = "+hex(self.ccoCapability)
#Proxy Networking Capability
@@ -1245,7 +1245,7 @@ class MmentryFields():
self.proxyNetworkingCapabilityField = pack('B',self.proxyNetworkingCapability)
except:
self.proxyNetworkingCapabilityField=myProxyNetworkingCapability
- self.proxyNetworkingCapability = unpack('B',self.proxyNetworkingCapabilityField)[0]
+ self.proxyNetworkingCapability = unpack('B',self.proxyNetworkingCapabilityField[0])[0]
print "proxyNetworkingCapability = "+hex(self.proxyNetworkingCapability)
#SNID
@@ -1260,7 +1260,7 @@ class MmentryFields():
self.snidAccessField = pack('B',self.snidAccess)
except:
self.snidAccessField=mySnidAccess
- self.snidAccess = unpack('B',self.snidAccessField)[0]
+ self.snidAccess = unpack('B',self.snidAccessField[0])[0]
print "snidAccess = "+hex(self.snidAccess)
else:
if mySnid!=None:
@@ -1283,7 +1283,7 @@ class MmentryFields():
self.staTeiField = pack('B',self.staTei)
except:
self.staTeiField=myStaTei
- self.staTei = unpack('B',self.staTeiField)[0]
+ self.staTei = unpack('B',self.staTeiField[0])[0]
print "staTei = "+hex(self.staTei)
#Lease Time
@@ -1296,7 +1296,7 @@ class MmentryFields():
self.leaseTimeField = pack('H',self.leaseTime)
except:
self.leaseTimeField=myLeaseTime
- self.leaseTime = unpack('H',self.leaseTimeField)[0]
+ self.leaseTime = unpack('H',self.leaseTimeField[0:2])[0]
print "leaseTime = "+hex(self.leaseTime)
#Mode
@@ -1309,7 +1309,7 @@ class MmentryFields():
self.modeField = pack('B',self.mode)
except:
self.modeField=myMode
- self.mode = unpack('B',self.modeField)[0]
+ self.mode = unpack('B',self.modeField[0])[0]
print "mode = "+hex(self.mode)
#TEIs
@@ -1404,7 +1404,6 @@ class MmentryFields():
i=i+1
def createTeisAddrsStatuses(self, myNum=None, myTei=None, myAddr=None, myStatus=None):
print "teisAddrsStatuses :"
- #try:
self.createTeis(myNum, myTei)
self.createAddrs(self.num, myAddr)
self.createStatuses(self.num, myStatus)
@@ -1412,11 +1411,6 @@ class MmentryFields():
while self.i < self.num:
self.teisAddrsStatuses[self.i]=self.teisField[self.i]+self.addrsField[self.i]+self.statusesField[self.i]
self.i = self.i + 1
- #except:
- #self.createTeis(myNum, myTei)
- #self.createAddrs(self.num, myAddr)
- #self.createStatuses(self.num, myStatus)
- #print "---------- except ----------"
#Final STA MAC Address
fda = 0x43414D414446 #="FDAMAC"
@@ -1631,7 +1625,7 @@ class MmentryFields():
except:
if myPeks!=None:
self.peksField=myPeks
- self.peks = unpack('B',self.peksField)[0]
+ self.peks = unpack('B',self.peksField[0])[0]
print "peks = "+hex(self.peks)
#AVLN Status
@@ -1645,7 +1639,7 @@ class MmentryFields():
except:
if myAvlnStatus!=None:
self.avlnStatusField=myAvlnStatus
- self.avlnStatus = unpack('B',self.avlnStatusField)[0]
+ self.avlnStatus = unpack('B',self.avlnStatusField[0])[0]
print "avlnStatus = "+hex(self.avlnStatus)
#Protocol ID
@@ -1659,7 +1653,7 @@ class MmentryFields():
except:
if myPid!=None:
self.pidField=myPid
- self.pid = unpack('B',self.pidField)[0]
+ self.pid = unpack('B',self.pidField[0])[0]
print "pid = "+hex(self.pid)
#Protocol Run Number
@@ -1677,7 +1671,7 @@ class MmentryFields():
self.prnField=myPrn
else:
self.prnField=pack('H',randrange(0,pow(2,16)-1,1))
- self.prn = unpack('H',self.prnField)[0]
+ self.prn = unpack('H',self.prnField[:2])[0]
print "prn = "+hex(self.prn)
#Protocol Message Number
@@ -1699,7 +1693,7 @@ class MmentryFields():
self.pmnField=pack('B',0)
else:
self.pmnField=pack('B',self.pmn + 1)
- self.pmn = unpack('B',self.pmnField)[0]
+ self.pmn = unpack('B',self.pmnField[0])[0]
print "pmn = "+hex(self.pmn)
#Key Type
@@ -1713,7 +1707,7 @@ class MmentryFields():
except:
if myKeyType!=None:
self.keyTypeField=myKeyType
- self.keyType = unpack('B',self.keyTypeField)[0]
+ self.keyType = unpack('B',self.keyTypeField[0])[0]
print "keyType = "+hex(self.keyType)
#My Nonce
@@ -1723,7 +1717,7 @@ class MmentryFields():
if myMyNonce!=None:
try:
self.myNonceField=myMyNonce
- self.myNonce = unpack('I',self.myNonceField)[0]
+ self.myNonce = unpack('I',self.myNonceField[:4])[0]
except:
self.myNonce=myMyNonce
self.myNonceField = pack('I',self.myNonce)
@@ -1739,7 +1733,7 @@ class MmentryFields():
if myYourNonce!=None:
try:
self.yourNonceField=myYourNonce
- self.yourNonce = unpack('I',self.yourNonceField)[0]
+ self.yourNonce = unpack('I',self.yourNonceField[:4])[0]
except:
self.yourNonce=myYourNonce
self.yourNonceField = pack('I',self.yourNonce)
@@ -1758,7 +1752,7 @@ class MmentryFields():
except:
if myNewEks!=None:
self.newEksField=myNewEks
- self.newEks = unpack('B',self.newEksField)[0]
+ self.newEks = unpack('B',self.newEksField[0])[0]
print "newEks = "+hex(self.newEks)
#New Key
@@ -1772,7 +1766,7 @@ class MmentryFields():
except:
if myNewKey!=None:
self.newKeyField=myNewKey
- self.newKey = unpack('QQ',self.newKeyField)[0] + unpack('QQ',self.newKeyField)[1]*pow_2_64
+ self.newKey = unpack('QQ',self.newKeyField[:16])[0] + unpack('QQ',self.newKeyField[:16])[1]*pow_2_64
print "newKey = "+hex(self.newKey)
#Request Type
@@ -1786,7 +1780,7 @@ class MmentryFields():
except:
if myRequestType!=None:
self.requestTypeField=myRequestType
- self.requestType = unpack('B',self.requestTypeField)[0]
+ self.requestType = unpack('B',self.requestTypeField[0])[0]
print "requestType = "+hex(self.requestType)
#Requested Key Type
@@ -1800,7 +1794,7 @@ class MmentryFields():
except:
if myRequestedKeyType!=None:
self.requestedKeyTypeField=myRequestedKeyType
- self.requestedKeyType = unpack('B',self.requestedKeyTypeField)[0]
+ self.requestedKeyType = unpack('B',self.requestedKeyTypeField[0])[0]
print "requestedKeyType = "+hex(self.requestedKeyType)
#HASH KEY
@@ -1850,7 +1844,7 @@ class MmentryFields():
except:
if myKey!=None:
self.keyField=myKey
- self.key = unpack('QQ',self.keyField)[0]+unpack('QQ',self.key)[1]*pow_2_64
+ self.key = unpack('QQ',self.keyField[:16])[0]+unpack('QQ',self.keyField[:16])[1]*pow_2_64
print "key = "+hex(self.key)
#Statuses and Capabilities : AVLN Status - CCo Capability - Proxy Network Capability - Backup CCo Capability - CCo Status - PCo Status - Backup CCo Status
@@ -1896,7 +1890,7 @@ class MmentryFields():
except:
if myEks!=None:
self.eksField=myEks
- self.eks = unpack('B',self.eksField)[0]
+ self.eks = unpack('B',self.eksField[0])[0]
print "eks = "+hex(self.eks)
#Response Type
@@ -2343,7 +2337,7 @@ class MmentryFields():
except:
if myIv!=None:
self.ivField=myIv
- self.iv = unpack('QQ',self.ivField)[0]+unpack('QQ',self.ivField)[1]*pow_2_64
+ self.iv = unpack('QQ',self.ivField[:16])[0]+unpack('QQ',self.ivField[:16])[1]*pow_2_64
print "iv = "+hex(self.iv)
#Universaly Unique Identifier
@@ -2362,7 +2356,7 @@ class MmentryFields():
elif myRandomUuid==True :
self.uuidFied = pack('Q',randrange(0,pow(2,8*8)-1,1))+pack('Q',randrange(0,pow(2,8*8)-1,1))
randrange(0,pow(2,16*8)-1,1)
- self.uuid = unpack('QQ',self.uuidField)[0] + unpack('QQ',self.uuidField)[1]*pow_2_64
+ self.uuid = unpack('QQ',self.uuidField[:16])[0] + unpack('QQ',self.uuidField[:16])[1]*pow_2_64
#int(unpack('QQ',self.uuidField)[0]+unpack('QQ',self.uuidField)[1]*pow(2,8*8))
print "uuid = "+hex(self.uuid)
@@ -2379,7 +2373,7 @@ class MmentryFields():
except:
if myRfLenEncrypted!=None:
self.rfLenEncryptedField = myRfLenEncrypted
- self.rfLenEncrypted = unpack('B',self.rfLenEncrypted)[0]
+ self.rfLenEncrypted = unpack('B',self.rfLenEncrypted[0])[0]
print "rfLenEncrypted = "+hex(self.rfLenEncrypted)
#Encrypted Random Filler
@@ -2409,10 +2403,10 @@ class MmentryFields():
self.randomFillerEncrypted = None
print "randomFillerEncrypted = None"
elif self.rfLenEncrypted <= 8:
- self.randomFillerEncrypted=unpack('QQ',self.randomFillerEncryptedField+"\x00"*(16-self.rfLenEncrypted))[0]
+ self.randomFillerEncrypted=unpack('QQ',self.randomFillerEncryptedField[:self.rfLenEncrypted]+"\x00"*(16-self.rfLenEncrypted))[0]
print "randomFillerEncrypted = "+hex(self.randomFillerEncrypted)
elif self.rfLenEncrypted <= 15:
- self.randomFillerEncrypted = unpack('QQ',self.randomFillerEncryptedField+"\x00"*(16-self.rfLenEncrypted))[0]+unpack('QQ',self.randomFillerEncryptedField+"\x00"*(16-self.rfLenEncrypted))[1]*pow_2_64
+ self.randomFillerEncrypted = unpack('QQ',self.randomFillerEncryptedField[:self.rfLenEncrypted]+"\x00"*(16-self.rfLenEncrypted))[0]+unpack('QQ',self.randomFillerEncryptedField[:self.rfLenEncrypted]+"\x00"*(16-self.rfLenEncrypted))[1]*pow_2_64
print "randomFillerEncrypted = "+hex(self.randomFillerEncrypted)
#Encrypted MM or HLE Payload
@@ -2439,7 +2433,7 @@ class MmentryFields():
self.lengthForEncryptionField = pack('H',self.lengthForEncryption)
except:
self.lengthForEncryptionField = myLengthForEncryption
- self.lengthForEncryption = unpack('H',self.lengthForEncryptionField)[0]
+ self.lengthForEncryption = unpack('H',self.lengthForEncryptionField[:2])[0]
else:
self.lengthForEncryption = len(self.mmOrHlePayloadEncryptedField)
self.lengthForEncryptionField = pack('H',self.lengthForEncryption)
@@ -2452,7 +2446,7 @@ class MmentryFields():
if myCrcEncrypted!=None:
try:
self.crcEncryptedField = myCrcEncrypted
- self.crcEncrypted = unpack('I',self.crcEncryptedField)[0]
+ self.crcEncrypted = unpack('I',self.crcEncryptedField[:4])[0]
except:
self.crcEncrypted = myCrcEncrypted
self.crcEncryptedField = pack('I',self.crcEncrypted)
@@ -2471,7 +2465,7 @@ class MmentryFields():
self.prnEncryptedField = pack('H',self.prnEncrypted)
except:
self.prnEncryptedField = myPrnEncrypted
- self.prnEncrypted = unpack('H',self.prnEncryptedField)[0]
+ self.prnEncrypted = unpack('H',self.prnEncryptedField[:2])[0]
elif myRandomPrn == True:
self.prnEncrypted = randrange(0,pow(2,16)-1,1)
self.prnEncryptedField = pack('H',self.prnEncrypted)
@@ -2486,7 +2480,7 @@ class MmentryFields():
if myPmnEncrypted!=None:
try:
self.pmnEncryptedField = myPmnEncrypted
- self.pmnEncrypted = unpack('B',self.pmnEncryptedField)[0]
+ self.pmnEncrypted = unpack('B',self.pmnEncryptedField[0])[0]
except:
self.pmnEncrypted = myPmnEncrypted
self.pmnEncryptedField = pack('B',self.pmnEncrypted)
@@ -2510,9 +2504,9 @@ class MmentryFields():
if self.paddingEncryptedSize == 0:
self.paddingEncrypted=None
elif self.paddingEncryptedSize <= 8:
- self.paddingEncrypted=unpack('QQ',self.paddingEncryptedField+"\x00"*(16-len(self.paddingEncryptedField)))[0]
+ self.paddingEncrypted=unpack('QQ',self.paddingEncryptedField[:len(self.paddingEncryptedField)]+"\x00"*(16-len(self.paddingEncryptedField)))[0]
elif self.paddingEncryptedSize <= 15:
- self.paddingEncrypted = unpack('QQ',self.paddingEncryptedField+"\x00"*(16-len(self.paddingEncryptedField)))[0] + unpack('QQ',self.paddingEncryptedField+"\x00"*(16-len(self.paddingEncryptedField)))[1]*pow_2_64
+ self.paddingEncrypted = unpack('QQ',self.paddingEncryptedField[:len(self.paddingEncryptedField)]+"\x00"*(16-len(self.paddingEncryptedField)))[0] + unpack('QQ',self.paddingEncryptedField[:len(self.paddingEncryptedField)]+"\x00"*(16-len(self.paddingEncryptedField)))[1] * pow_2_64
except:
self.paddingEncrypted = myPaddingEncrypted
self.paddingEncryptedField=""
@@ -2542,7 +2536,7 @@ class MmentryFields():
self.reasonCodeField = pack('B',self.reasonCode)
except:
self.reasonCodeField=myReasonCode
- self.reasonCode = unpack('B',self.reasonCodeField)[0]
+ self.reasonCode = unpack('B',self.reasonCodeField[0])[0]
print "reasonCode = "+hex(self.reasonCode)
#Management Message Version of the received MME
@@ -2555,7 +2549,7 @@ class MmentryFields():
self.rx_MMVField = pack('B',self.rx_MMV)
except:
self.rx_MMVField=myRx_MMV
- self.rx_MMV = unpack('B',self.rx_MMVField)[0]
+ self.rx_MMV = unpack('B',self.rx_MMVField[0])[0]
print "rx_MMV = "+hex(self.rx_MMV)
#Management Message Type of the received MME
@@ -2568,7 +2562,7 @@ class MmentryFields():
self.rx_MMTYPEField = pack('H',self.rx_MMTYPE)
except:
self.rx_MMTYPEField=myRx_MMTYPE
- self.rx_MMTYPE = unpack('H',self.rx_MMTYPEField)[0]
+ self.rx_MMTYPE = unpack('H',self.rx_MMTYPEField[:2])[0]
print "rx_MMTYPE = "+hex(self.rx_MMTYPE)
#Byte offset of first or only invalid field in MME
@@ -2581,7 +2575,7 @@ class MmentryFields():
self.invalidByteOffsetField = pack('H',self.invalidByteOffset)
except:
self.invalidByteOffsetField=myInvalidByteOffset
- self.invalidByteOffset = unpack('H',self.invalidByteOffsetField)[0]
+ self.invalidByteOffset = unpack('H',self.invalidByteOffsetField[:2])[0]
print "invalidByteOffset = "+hex(self.invalidByteOffset)
#LLID-R
diff --git a/maximus/python/lib/mmentryMethod.py b/maximus/python/lib/mmentry/mmentryMethod.py
index 35a724bfcf..d936202a41 100644
--- a/maximus/python/lib/mmentryMethod.py
+++ b/maximus/python/lib/mmentry/mmentryMethod.py
@@ -1179,15 +1179,18 @@ class MmentryMethod():
#createCM_SC_JOIN_REQ_MMENTRY creates
# the MMENTRY Field of the CM_SC_JOIN.REQ MME
- def createCM_SC_JOIN_REQ_MMENTRY(self, myCcoCapability=None):
+ def createCM_SC_JOIN_REQ_MMENTRY(self, myCcoCapability=None, myMmentry=None):
print "CM_SC_JOIN.REQ ="
#CM_SC_JOIN_REQ_MMENTRY is composed by 1 fields :
# - CCo Capability
- self.mmentryFields.createCcoCapability(myCcoCapability)
- self.mmentry.CM_SC_JOIN_REQ = self.mmentryFields.ccoCapabilityField
- self.mmentryFields.mmentry = self.mmentry.CM_SC_JOIN_REQ
- self.mmentryFields.mmtype = CM_SC_JOIN_REQ
- self.mmentryFields.createMmeMfl(self.mmentryFields.mmentry)
+ if myMmentry==None:
+ self.mmentryFields.createCcoCapability(myCcoCapability)
+ self.mmentry.CM_SC_JOIN_REQ = self.mmentryFields.ccoCapabilityField
+ self.mmentryFields.mmentry = self.mmentry.CM_SC_JOIN_REQ
+ self.mmentryFields.mmtype = CM_SC_JOIN_REQ
+ self.mmentryFields.createMmeMfl(self.mmentryFields.mmentry)
+ else:
+ self.mmentryFields.createCcoCapability(myCcoCapability=myMmentry)
#createCM_SC_JOIN_CNF_MMENTRY creates
@@ -2075,13 +2078,6 @@ class MmentryMethod():
-
-
-
-
-
-
-