/usr/share/pyshared/twisted/conch/ssh/sexpy.py is in python-twisted-conch 1:11.1.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | # Copyright (c) Twisted Matrix Laboratories.
# See LICENSE for details.
#
def parse(s):
s = s.strip()
expr = []
while s:
if s[0] == '(':
newSexp = []
if expr:
expr[-1].append(newSexp)
expr.append(newSexp)
s = s[1:]
continue
if s[0] == ')':
aList = expr.pop()
s=s[1:]
if not expr:
assert not s
return aList
continue
i = 0
while s[i].isdigit(): i+=1
assert i
length = int(s[:i])
data = s[i+1:i+1+length]
expr[-1].append(data)
s=s[i+1+length:]
assert 0, "this should not happen"
def pack(sexp):
s = ""
for o in sexp:
if type(o) in (type(()), type([])):
s+='('
s+=pack(o)
s+=')'
else:
s+='%i:%s' % (len(o), o)
return s
|