| Index: third_party/twisted_8_1/twisted/conch/ssh/asn1.py
|
| diff --git a/third_party/twisted_8_1/twisted/conch/ssh/asn1.py b/third_party/twisted_8_1/twisted/conch/ssh/asn1.py
|
| deleted file mode 100644
|
| index c6659102debfce773780e9bb7e176663a978f0ad..0000000000000000000000000000000000000000
|
| --- a/third_party/twisted_8_1/twisted/conch/ssh/asn1.py
|
| +++ /dev/null
|
| @@ -1,65 +0,0 @@
|
| -# Copyright (c) 2001-2004 Twisted Matrix Laboratories.
|
| -# See LICENSE for details.
|
| -
|
| -#
|
| -
|
| -"""
|
| -A basic ASN.1 parser to parse private SSH keys.
|
| -
|
| -Maintainer: U{Paul Swartz<mailto:z3p@twistedmatrix.com>}
|
| -"""
|
| -
|
| -from Crypto.Util import number
|
| -
|
| -def parse(data):
|
| - things = []
|
| - while data:
|
| - t = ord(data[0])
|
| - assert (t & 0xc0) == 0, 'not a universal value: 0x%02x' % t
|
| - #assert t & 0x20, 'not a constructed value: 0x%02x' % t
|
| - l = ord(data[1])
|
| - assert data != 0x80, "shouldn't be an indefinite length"
|
| - if l & 0x80: # long form
|
| - ll = l & 0x7f
|
| - l = number.bytes_to_long(data[2:2+ll])
|
| - s = 2 + ll
|
| - else:
|
| - s = 2
|
| - body, data = data[s:s+l], data[s+l:]
|
| - t = t&(~0x20)
|
| - assert t in (SEQUENCE, INTEGER), 'bad type: 0x%02x' % t
|
| - if t == SEQUENCE:
|
| - things.append(parse(body))
|
| - elif t == INTEGER:
|
| - #assert (ord(body[0])&0x80) == 0, "shouldn't have negative number"
|
| - things.append(number.bytes_to_long(body))
|
| - if len(things) == 1:
|
| - return things[0]
|
| - return things
|
| -
|
| -def pack(data):
|
| - ret = ''
|
| - for part in data:
|
| - if type(part) in (type(()), type([])):
|
| - partData = pack(part)
|
| - partType = SEQUENCE|0x20
|
| - elif type(part) in (type(1), type(1L)):
|
| - partData = number.long_to_bytes(part)
|
| - if ord(partData[0])&(0x80):
|
| - partData = '\x00' + partData
|
| - partType = INTEGER
|
| - else:
|
| - raise ValueError('unknown type %s' % (type(part),))
|
| -
|
| - ret += chr(partType)
|
| - if len(partData) > 127:
|
| - l = number.long_to_bytes(len(partData))
|
| - ret += chr(len(l)|0x80) + l
|
| - else:
|
| - ret += chr(len(partData))
|
| - ret += partData
|
| - return ret
|
| -
|
| -INTEGER = 0x02
|
| -SEQUENCE = 0x10
|
| -
|
|
|