Refactor type 2 message decoding, drop any extra lines from subject. #295
|
@ -528,13 +528,7 @@ class receiveDataThread(threading.Thread):
|
||||||
print 'fromAddress:', fromAddress
|
print 'fromAddress:', fromAddress
|
||||||
|
|
||||||
if messageEncodingType == 2:
|
if messageEncodingType == 2:
|
||||||
bodyPositionIndex = string.find(message, '\nBody:')
|
subject, body = self.decodeType2Message(message)
|
||||||
if bodyPositionIndex > 1:
|
|
||||||
subject = message[8:bodyPositionIndex]
|
|
||||||
body = message[bodyPositionIndex + 6:]
|
|
||||||
else:
|
|
||||||
subject = ''
|
|
||||||
body = message
|
|
||||||
elif messageEncodingType == 1:
|
elif messageEncodingType == 1:
|
||||||
body = message
|
body = message
|
||||||
subject = ''
|
subject = ''
|
||||||
|
@ -684,13 +678,7 @@ class receiveDataThread(threading.Thread):
|
||||||
print 'fromAddress:', fromAddress
|
print 'fromAddress:', fromAddress
|
||||||
|
|
||||||
if messageEncodingType == 2:
|
if messageEncodingType == 2:
|
||||||
bodyPositionIndex = string.find(message, '\nBody:')
|
subject, body = self.decodeType2Message(message)
|
||||||
if bodyPositionIndex > 1:
|
|
||||||
subject = message[8:bodyPositionIndex]
|
|
||||||
body = message[bodyPositionIndex + 6:]
|
|
||||||
else:
|
|
||||||
subject = ''
|
|
||||||
body = message
|
|
||||||
elif messageEncodingType == 1:
|
elif messageEncodingType == 1:
|
||||||
body = message
|
body = message
|
||||||
subject = ''
|
subject = ''
|
||||||
|
@ -1005,15 +993,7 @@ class receiveDataThread(threading.Thread):
|
||||||
toLabel = toAddress
|
toLabel = toAddress
|
||||||
|
|
||||||
if messageEncodingType == 2:
|
if messageEncodingType == 2:
|
||||||
bodyPositionIndex = string.find(message, '\nBody:')
|
subject, body = self.decodeType2Message(message)
|
||||||
if bodyPositionIndex > 1:
|
|
||||||
subject = message[8:bodyPositionIndex]
|
|
||||||
subject = subject[
|
|
||||||
:500] # Only save and show the first 500 characters of the subject. Any more is probably an attak.
|
|
||||||
body = message[bodyPositionIndex + 6:]
|
|
||||||
else:
|
|
||||||
subject = ''
|
|
||||||
body = message
|
|
||||||
elif messageEncodingType == 1:
|
elif messageEncodingType == 1:
|
||||||
body = message
|
body = message
|
||||||
subject = ''
|
subject = ''
|
||||||
|
@ -1086,6 +1066,21 @@ class receiveDataThread(threading.Thread):
|
||||||
print 'Time to decrypt this message successfully:', timeRequiredToAttemptToDecryptMessage
|
print 'Time to decrypt this message successfully:', timeRequiredToAttemptToDecryptMessage
|
||||||
print 'Average time for all message decryption successes since startup:', sum / len(shared.successfullyDecryptMessageTimings)
|
print 'Average time for all message decryption successes since startup:', sum / len(shared.successfullyDecryptMessageTimings)
|
||||||
|
|
||||||
|
def decodeType2Message(self, message):
|
||||||
|
bodyPositionIndex = string.find(message, '\nBody:')
|
||||||
|
if bodyPositionIndex > 1:
|
||||||
|
subject = message[8:bodyPositionIndex]
|
||||||
|
# Only save and show the first 500 characters of the subject.
|
||||||
|
# Any more is probably an attack.
|
||||||
|
subject = subject[:500]
|
||||||
|
body = message[bodyPositionIndex + 6:]
|
||||||
|
else:
|
||||||
|
subject = ''
|
||||||
|
body = message
|
||||||
|
# Throw away any extra lines (headers) after the subject.
|
||||||
|
if subject:
|
||||||
|
subject = subject.splitlines()[0]
|
||||||
|
return subject, body
|
||||||
|
|
||||||
def isAckDataValid(self, ackData):
|
def isAckDataValid(self, ackData):
|
||||||
if len(ackData) < 24:
|
if len(ackData) < 24:
|
||||||
|
|
Reference in New Issue
Block a user