From b007bca4f1a97a267aa07ac436a9793e9b64424c Mon Sep 17 00:00:00 2001 From: Justine Alexandra Roberts Tunney Date: Fri, 10 Apr 2015 21:11:30 -0400 Subject: [PATCH] Script that decodes RFC torture message text. --- sip/torture.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 sip/torture.py diff --git a/sip/torture.py b/sip/torture.py new file mode 100644 index 0000000..6ba16ee --- /dev/null +++ b/sip/torture.py @@ -0,0 +1,19 @@ +# RFC4475 Torture Message String Literal Encoder + +import re +import sys +import textwrap + +hexsub = lambda m: re.sub(r'(..)', r'\x\1', m.group(1)) +repeatsub = lambda m: m.group(2) * int(m.group(1)) +allonelinesub = lambda m: m.group(1).replace('\n', '') + +message = sys.stdin.read() +message = textwrap.dedent(message) +message = re.sub(r'(.+?)', allonelinesub, message, 0, re.S) +message = re.sub(r'(.*?)', repeatsub, message, 0, re.S) +message = message.replace('\\', '\\\\') +message = re.sub(r'(.*?)', hexsub, message, 0, re.S) +message = message.replace('"', '\\"') +message = '"' + message.replace('\n', '\\r\\n" +\n"') + '"' +print message