home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 November / maximum-cd-2010-11.iso / DiscContents / calibre-0.7.13.msi / file_1646 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-08-06  |  2.7 KB  |  63 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import struct
  5. import dns.rdata as dns
  6. import dns.rdatatype as dns
  7.  
  8. class DS(dns.rdata.Rdata):
  9.     __slots__ = [
  10.         'key_tag',
  11.         'algorithm',
  12.         'digest_type',
  13.         'digest']
  14.     
  15.     def __init__(self, rdclass, rdtype, key_tag, algorithm, digest_type, digest):
  16.         super(DS, self).__init__(rdclass, rdtype)
  17.         self.key_tag = key_tag
  18.         self.algorithm = algorithm
  19.         self.digest_type = digest_type
  20.         self.digest = digest
  21.  
  22.     
  23.     def to_text(self, origin = None, relativize = True, **kw):
  24.         return '%d %d %d %s' % (self.key_tag, self.algorithm, self.digest_type, dns.rdata._hexify(self.digest, chunksize = 128))
  25.  
  26.     
  27.     def from_text(cls, rdclass, rdtype, tok, origin = None, relativize = True):
  28.         key_tag = tok.get_uint16()
  29.         algorithm = tok.get_uint8()
  30.         digest_type = tok.get_uint8()
  31.         digest = tok.get_string()
  32.         digest = digest.decode('hex_codec')
  33.         tok.get_eol()
  34.         return cls(rdclass, rdtype, key_tag, algorithm, digest_type, digest)
  35.  
  36.     from_text = classmethod(from_text)
  37.     
  38.     def to_wire(self, file, compress = None, origin = None):
  39.         header = struct.pack('!HBB', self.key_tag, self.algorithm, self.digest_type)
  40.         file.write(header)
  41.         file.write(self.digest)
  42.  
  43.     
  44.     def from_wire(cls, rdclass, rdtype, wire, current, rdlen, origin = None):
  45.         header = struct.unpack('!HBB', wire[current:current + 4])
  46.         current += 4
  47.         rdlen -= 4
  48.         digest = wire[current:current + rdlen]
  49.         return cls(rdclass, rdtype, header[0], header[1], header[2], digest)
  50.  
  51.     from_wire = classmethod(from_wire)
  52.     
  53.     def _cmp(self, other):
  54.         hs = struct.pack('!HBB', self.key_tag, self.algorithm, self.digest_type)
  55.         ho = struct.pack('!HBB', other.key_tag, other.algorithm, other.digest_type)
  56.         v = cmp(hs, ho)
  57.         if v == 0:
  58.             v = cmp(self.digest, other.digest)
  59.         
  60.         return v
  61.  
  62.  
  63.