code: def _get_filekey(self):
          
  
          if not os.path.exists(self.keyfile):
              raise KPError('Keyfile not exists.')
          try:
              with open(self.keyfile, 'rb') as handler:
                  handler.seek(0, os.SEEK_END)
                  size = handler.tell()
                  handler.seek(0, os.SEEK_SET)
  
                  if size == 32:
                      return handler.read(32)
                  elif size == 64:
                      try:
                          return binascii.unhexlify(handler.read(64))
                      except (TypeError, binascii.Error):
                          handler.seek(0, os.SEEK_SET)
  
                  sha = SHA256.new()
                  while True:
                      buf = handler.read(2048)
                      sha.update(buf)
                      if len(buf) < 2048:
                          break
                  return sha.digest()
          except IOError as e:
              raise KPError('Could not read file: %s' % e)
docs: This method creates a key from a keyfile.