Ejemplo n.º 1
0
    def install_encryption(self, passphrase=None, verify_passphrase=None):
        success, response = utils.__check_password__(passphrase,
                                                     verify_passphrase)
        if not success: return response

        # try loading.
        ENCRYPTION.passphrase = passphrase
        response = ENCRYPTION.generate_keys()
        if response["error"] != None:
            ENCRYPTION.passphrase = None
            return response
        response = ENCRYPTION.load_keys()
        if response["error"] != None:
            ENCRYPTION.passphrase = None
            return response

        # try loading passphrases.
        PASSPHRASES.passphrase = passphrase
        response = PASSPHRASES.initialize()
        if response["error"] != None:
            PASSPHRASES.passphrase = None
            return response

        # response.
        response["success"] = True
        response[
            "message"] = "Successfully installed and activated the encryption."
        utils.__log__(response["message"])
        return response
Ejemplo n.º 2
0
        def view(self, request):

            # initialize default response.
            response = utils.__default_response__()

            # check parameters.
            parameters, success, response = utils.__get_request_params__(
                request, [
                    "passphrase",
                    "verify_passphrase",
                ])
            if not success: return self.response(response)

            # check active.
            if ENCRYPTION.passphrase == None:
                response[
                    "error"] = "The encryption is not actived. Go to [Dashboard > Encryption > Activate] to active the encryption."
                return self.response(response)

            # check password.
            success, response = utils.__check_password__(
                parameters["passphrase"], parameters["verify_passphrase"])
            if not success: return self.response(response)

            # response.
            response = ENCRYPTION.edit_passphrase(
                passphrase=parameters["passphrase"])
            if response["error"] != None:
                return self.response(response)

            # reload keys.
            l_response = ENCRYPTION.load_keys(
                passphrase=parameters["passphrase"])
            if l_response["error"] != None:
                l_response[
                    "error"] = "Successfully edited the passphrase but failed to load the keys."
                return self.response(l_response)

            # response.
            response = utils.__default_response__()
            PASSPHRASES.passphrase = parameters['passphrase']
            response = PASSPHRASES.initialize()
            if response["error"] != None:
                return self.response(response)

            # success.
            response["success"] = True
            l_response["message"] = "Successfully edited the passphrase."
            return self.response(l_response)
Ejemplo n.º 3
0
		def view(request):

			# initialize default response.
			response = utils.__default_response__()

			# check encryptiom.
			if PASSPHRASES.passphrase == None or ENCRYPTION.passphrase == None:
				response["error"] = "The encryption requires to be activated when making client edits. Go to [Dashboard > Encryption > Activate] to activate the encryption."
				return JsonResponse(response)

			# check parameters.
			username, success, response = utils.__get_request_param__(request, "username")
			if not success: return JsonResponse(response)
			server, success, response = utils.__get_request_param__(request, "server")
			if not success: return JsonResponse(response)
			public_key, success, response = utils.__get_request_param__(request, "public_key")
			if not success: return JsonResponse(response)
			private_key, success, response = utils.__get_request_param__(request, "private_key")
			if not success: return JsonResponse(response)
			new_passphrase, success, response = utils.__get_request_param__(request, "new_passphrase")
			if not success: return JsonResponse(response)
			verify_new_passphrase, success, response = utils.__get_request_param__(request, "verify_new_passphrase")
			if not success: return JsonResponse(response)
			old_passphrase, success, response = utils.__get_request_param__(request, "old_passphrase")
			if not success: return JsonResponse(response)
			lan_ip, success, response = utils.__get_request_param__(request, "lan_ip")
			if not success: return JsonResponse(response)
			wan_ip, success, response = utils.__get_request_param__(request, "wan_ip")
			if not success: return JsonResponse(response)
			lan_ssh_port, success, response = utils.__get_request_param__(request, "lan_ssh_port")
			if not success: return JsonResponse(response)
			wan_ssh_port, success, response = utils.__get_request_param__(request, "wan_ssh_port")
			if not success: return JsonResponse(response)
			public_key = public_key.replace("~/", HOME)
			private_key = private_key.replace("~/", HOME)

			# check key existance.
			if not os.path.exists(public_key):
				response["error"] = f"Public key path [{public_key}] does not exist."
				return JsonResponse(response)
			if not os.path.exists(private_key):
				response["error"] = f"Private key path [{private_key}] does not exist."
				return JsonResponse(response)

			# check passphrase.
			success, response = utils.__check_password__(new_passphrase, verify_new_passphrase)
			if not success: return JsonResponse(response)
		
			# make request.
			response = manager.install_client(
				username=username,
				server=server,
				public_key=public_key,
				private_key=private_key,
				new_passphrase=new_passphrase,
				old_passphrase=old_passphrase,
				lan_ip=lan_ip,
				wan_ip=wan_ip,
				lan_ssh_port=lan_ssh_port,
				wan_ssh_port=wan_ssh_port,)
			if response["error"] != None: return JsonResponse(response)
			
			# save new passphrase.
			PASSPHRASES.dictionary["ssh_keys"][client.public_key_id] = new
			response = PASSPHRASES.save()
			if response["error"] != None: return JsonResponse(response)
Ejemplo n.º 4
0
        def view(self, request):

            # initialize default response.
            response = utils.__default_response__()

            # check encryptiom.
            if PASSPHRASES.passphrase == None or ENCRYPTION.passphrase == None:
                response[
                    "error"] = "The encryption requires to be activated when making client edits. Go to [Dashboard > Encryption > Activate] to activate the encryption."
                return self.response(response)

            # by encoded.
            encoded, success, response = utils.__get_request_param__(
                request, "encoded")
            if success:

                # make request.
                return self.response(manager.install_client(encoded=encoded, ))

            # by parameters.
            else:
                # check parameters.
                username, success, response = utils.__get_request_param__(
                    request, "username")
                if not success: return self.response(response)
                server, success, response = utils.__get_request_param__(
                    request, "server")
                if not success: return self.response(response)
                domain, success, response = utils.__get_request_param__(
                    request, "domain")
                if not success: return self.response(response)
                api_key, success, response = utils.__get_request_param__(
                    request, "api_key")
                if not success: return self.response(response)
                public_key, success, response = utils.__get_request_param__(
                    request, "public_key")
                if not success: return self.response(response)
                private_key, success, response = utils.__get_request_param__(
                    request, "private_key")
                if not success: return self.response(response)
                vpn_key, success, response = utils.__get_request_param__(
                    request, "vpn_key")
                if not success: return self.response(response)
                new_passphrase, success, response = utils.__get_request_param__(
                    request, "new_passphrase")
                if not success: return self.response(response)
                verify_new_passphrase, success, response = utils.__get_request_param__(
                    request, "verify_new_passphrase")
                if not success: return self.response(response)
                old_passphrase, success, response = utils.__get_request_param__(
                    request, "old_passphrase")
                if not success: return self.response(response)
                lan_ip, success, response = utils.__get_request_param__(
                    request, "lan_ip")
                if not success: return self.response(response)
                wan_ip, success, response = utils.__get_request_param__(
                    request, "wan_ip")
                if not success: return self.response(response)
                lan_ssh_port, success, response = utils.__get_request_param__(
                    request, "lan_ssh_port")
                if not success: return self.response(response)
                wan_ssh_port, success, response = utils.__get_request_param__(
                    request, "wan_ssh_port")
                if not success: return self.response(response)
                public_key = public_key.replace("~/", HOME)
                private_key = private_key.replace("~/", HOME)
                vpn_key = vpn_key.replace("~/", HOME)

                # check key existance.
                if not Files.exists(public_key):
                    response[
                        "error"] = f"Public key path [{public_key}] does not exist."
                    return self.response(response)
                if not Files.exists(private_key):
                    response[
                        "error"] = f"Private key path [{private_key}] does not exist."
                    return self.response(response)
                if not Files.exists(vpn_key):
                    response[
                        "error"] = f"VPN key path [{vpn_key}] does not exist."
                    return self.response(response)

                # check passphrase.
                success, response = utils.__check_password__(
                    new_passphrase, verify_new_passphrase)
                if not success: return self.response(response)

                # make request.
                final_response = manager.install_client(
                    username=username,
                    server=server,
                    domain=domain,
                    api_key=api_key,
                    public_key=public_key,
                    private_key=private_key,
                    vpn_key=vpn_key,
                    new_passphrase=new_passphrase,
                    old_passphrase=old_passphrase,
                    lan_ip=lan_ip,
                    wan_ip=wan_ip,
                    lan_ssh_port=lan_ssh_port,
                    wan_ssh_port=wan_ssh_port,
                )
                if final_response["error"] != None:
                    return self.response(final_response)

                # save new passphrase.
                PASSPHRASES.dictionary["ssh_keys"][
                    final_response["username"]] = new_passphrase
                response = PASSPHRASES.save()
                if response["error"] != None: return self.response(response)
                return self.response(final_response)