def do_show(self, arguments): """show SSL configuration information""" provider = Provider() if provider.key_material_exists(): print "SSL has been provisioned:" print " SSL Key:", provider.key_exists() and "EXISTS" or "MISSING" print " SSL Certificate:", provider.certificate_exists() and "EXISTS" or "MISSING" print " Key Pair:", provider.key_material_valid() and "VALID" or "INVALID" else: print "SSL has not been provisioned."
def __init__(self, arguments, trust_callback=None): Transport.__init__(self) self.__socket = socket.socket() if arguments.ssl: provider = Provider() self.__socket = ssl.wrap_socket(self.__socket, cert_reqs=ssl.CERT_REQUIRED, ca_certs=provider.ca_certificate_path()) self.setTimeout(90.0) self.__socket.connect(self.__getEndpoint(arguments)) if arguments.ssl: trust_callback(provider, self.__socket.getpeercert(True), self.__socket.getpeername())
def get_socket(arguments): sock = socket() if arguments.ssl: provider = Provider() sock = ssl.wrap_socket(sock, cert_reqs=ssl.CERT_REQUIRED, ca_certs=provider.ca_certificate_path()) sock.settimeout(5.0) if hasattr(arguments, 'push_server') and arguments.push_server != None: sock.connect(arguments.push_server) else: sock.connect(arguments.server) return sock
def do_create(self, arguments): """create some new key material""" provider = Provider() if arguments.type == "ca": self.__create_ca(provider, arguments) elif arguments.type == "keypair": self.__create_keypair(provider, arguments) elif arguments.type == "truststore": provider.make_bks_trust_store() provider.make_jks_trust_store() else: print "Unexpected type:", arguments.type
def do_upload(self, arguments): """upload a resource to the drozer Server""" arguments.server = util.parse_server(arguments.server) if arguments.ssl != None and arguments.ssl == []: arguments.ssl = Provider().get_keypair("drozer-server") uploader.upload(arguments, arguments.resource, open(arguments.file).read(), magic=arguments.magic)
def do_delete(self, arguments): """delete a resource from the drozer Server""" arguments.server = util.parse_server(arguments.server) if arguments.ssl != None and arguments.ssl == []: arguments.ssl = Provider().get_keypair("drozer-server") uploader.delete(arguments, arguments.resource)
def __init__(self, arguments, trust_callback=None): Transport.__init__(self) self.choice = None if arguments.ssl: provider = Provider() self.__socket = ssl.wrap_socket( self.__socket, cert_reqs=ssl.CERT_REQUIRED, ca_certs=provider.ca_certificate_path()) # connect adb 31415 success = False e_msg = self.connect_via_adb(self.DefaultPort) if e_msg is None: success = True else: print(e_msg) if not success: # connect adb custom-port endpoint = self.__getEndpoint(arguments) if endpoint is None: raise ConnectionError( "Connect via adb fail and arguments.server is not configured" ) if self.DefaultPort != endpoint[1]: print("tcp(%d) over adb fail, then try tcp(%d) over adb" % (self.DefaultPort, endpoint[1])) e_msg = self.connect_via_adb(endpoint[1]) if e_msg is None: success = True else: print(e_msg) if not success: # connect custom host:port print("Connect via adb fail, then try tcp connect") self.__socket = socket.socket() self.setTimeout(90.0) self.__socket.connect(endpoint) if arguments.ssl: trust_callback(provider, self.__socket.getpeercert(True), self.__socket.getpeername())
def do_delete(self, arguments): """delete a resource from the drozer Server""" arguments.server = util.parse_server(arguments.server) if arguments.ssl != None and arguments.ssl == []: arguments.ssl = Provider().get_keypair("drozer-server") if uploader.delete(arguments, arguments.resource): sys.stdout.write("Success\n") else: sys.stdout.write("Failed\n")
def do_upload(self, arguments): """upload a resource to the drozer Server""" arguments.server = util.parse_server(arguments.server) if arguments.ssl != None and arguments.ssl == []: arguments.ssl = Provider().get_keypair("drozer-server") if uploader.upload(arguments, arguments.resource, open(arguments.file).read(), magic=arguments.magic): sys.stdout.write("Success\n") else: sys.stdout.write("Failed\n")
def do_show(self, arguments): """show SSL configuration information""" provider = Provider() if provider.key_material_exists(): print "SSL has been provisioned:" print " SSL Key:", provider.key_exists( ) and "EXISTS" or "MISSING" print " SSL Certificate:", provider.certificate_exists( ) and "EXISTS" or "MISSING" print " Key Pair:", provider.key_material_valid( ) and "VALID" or "INVALID" else: print "SSL has not been provisioned."
def serve(arguments): task.LoopingCall(heartbeat).start(arguments.ping_interval) if arguments.ssl != None: print "Starting drozer Server, listening on 0.0.0.0:%d (with SSL)" % arguments.port if arguments.ssl == []: print "Using default SSL key material..." arguments.ssl = Provider().get_keypair("drozer-server") reactor.listenSSL(arguments.port, SwitcherFactoryServer(dict(arguments.credentials)), ssl.DefaultOpenSSLContextFactory(*arguments.ssl)) else: print "Starting drozer Server, listening on 0.0.0.0:%d" % arguments.port reactor.listenTCP(arguments.port, SwitcherFactoryServer(dict(arguments.credentials))) reactor.run()