Пример #1
0
 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."
Пример #2
0
    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())
Пример #3
0
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
Пример #4
0
 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
Пример #5
0
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
Пример #6
0
 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)
Пример #7
0
 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)
Пример #8
0
    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())
Пример #9
0
    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")
Пример #10
0
    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")
Пример #11
0
    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
Пример #12
0
    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."
Пример #13
0
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()