Interface TorWrapper


  • @NotNullByDefault
    public interface TorWrapper
    • Field Detail

      • LOG

        static final java.util.logging.Logger LOG
    • Method Detail

      • start

        void start()
            throws java.io.IOException,
                   java.lang.InterruptedException
        Starts the Tor process, but does not yet connect to the Tor Network. Call enableNetwork(boolean) for this.

        This method must only be called once. To restart the Tor process, stop this wrapper instance and then create a new instance.

        Throws:
        java.io.IOException
        java.lang.InterruptedException
      • stop

        void stop()
           throws java.io.IOException
        Tell the Tor process to stop and returns without waiting for the process to exit.
        Throws:
        java.io.IOException
      • setObserver

        void setObserver​(@Nullable
                         TorWrapper.Observer observer)
        Sets an observer for observing the state of the wrapper, replacing any existing observer, or removes any existing observer if the argument is null.
      • isTorRunning

        boolean isTorRunning()
        Returns true if the wrapper has been started and not yet stop() stopped.
      • publishHiddenService

        TorWrapper.HiddenServiceProperties publishHiddenService​(int localPort,
                                                                int remotePort,
                                                                @Nullable
                                                                java.lang.String privateKey)
                                                         throws java.io.IOException
        Publishes an ephemeral hidden service.
        Parameters:
        localPort - The local port on which the service is listening.
        remotePort - The port number that clients of the service will see.
        privateKey - The private key of the hidden service, in the form returned by a previous call to this method, or null if a new service should be created.
        Throws:
        java.io.IOException
      • removeHiddenService

        void removeHiddenService​(java.lang.String onion)
                          throws java.io.IOException
        Removes (unpublishes) an ephemeral hidden service that was created by calling publishHiddenService(int, int, String).
        Throws:
        java.io.IOException
      • enableNetwork

        void enableNetwork​(boolean enable)
                    throws java.io.IOException
        Enables or disables the Tor process's network connection. The network connection is disabled by default.
        Throws:
        java.io.IOException
      • enableBridges

        void enableBridges​(java.util.List<java.lang.String> bridges)
                    throws java.io.IOException
        Configures Tor to use the given list of bridges for connecting to the Tor network. Bridges are not used by default.

        Each item in the list should be a bridge line in the same format that would be used in a torrc file (including the Bridge keyword).

        Throws:
        java.io.IOException
      • disableBridges

        void disableBridges()
                     throws java.io.IOException
        Configures Tor not to use bridges for connecting to the Tor network. Bridges are not used by default.
        Throws:
        java.io.IOException
      • enableConnectionPadding

        void enableConnectionPadding​(boolean enable)
                              throws java.io.IOException
        Enables or disables connection padding. Padding is disabled by default.
        Throws:
        java.io.IOException
      • enableIpv6

        void enableIpv6​(boolean ipv6Only)
                 throws java.io.IOException
        Configures Tor to use IPv6 or IPv4 for connecting to the Tor network. IPv4 is used by default.
        Throws:
        java.io.IOException
      • getObfs4ExecutableFile

        java.io.File getObfs4ExecutableFile()
        Returns the Obfs4 executable as a File for use with Moat.