net.i2p.client.impl

## Class I2PClientImpl

- java.lang.Object
- - net.i2p.client.impl.I2PClientImpl

- All Implemented Interfaces:
    I2PClient

      public class I2PClientImpl
      extends Object
      implements I2PClient

  Base client implementation. An I2PClient contains no state, it is just a facility for creating private key files and generating sesssions from existing private key files.

- - ### Field Summary

    - ### Fields inherited from interface net.i2p.client.I2PClient

      `DEFAULT_LISTEN_PORT, DEFAULT_SIGTYPE, PROP_ENABLE_SSL, PROP_FAST_RECEIVE, PROP_GZIP, PROP_PW, PROP_RELIABILITY, PROP_RELIABILITY_BEST_EFFORT, PROP_RELIABILITY_GUARANTEED, PROP_RELIABILITY_NONE, PROP_SIGTYPE, PROP_TCP_HOST, PROP_TCP_PORT, PROP_USER, PROTOCOL_BYTE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `I2PClientImpl()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Destination` | `createDestination(OutputStream destKeyStream)` Create a destination with a DSA 1024/160 signature type and a null certificate.
    `Destination` | `createDestination(OutputStream destKeyStream, Certificate cert)` Create the destination with the given payload and write it out along with the PrivateKey and SigningPrivateKey to the destKeyStream If cert is a KeyCertificate, the signing keypair will be of the specified type.
    `Destination` | `createDestination(OutputStream destKeyStream, SigType type)` Create a destination with the given signature type.
    `I2PSession` | `createSession(I2PAppContext context, InputStream destKeyStream, Properties options)` Create a new session (though do not connect it yet)
    `I2PSession` | `createSession(InputStream destKeyStream, Properties options)` Create a new session (though do not connect it yet)

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### I2PClientImpl

          public I2PClientImpl()

  - ### Method Detail

    - #### createDestination

          public Destination createDestination(OutputStream destKeyStream)
                                        throws I2PException,
                                               IOException

      Create a destination with a DSA 1024/160 signature type and a null certificate. This is not bound to the I2PClient, you must supply the data back again in createSession(). Caller must close stream.
      Specified by:
        `createDestination` in interface `I2PClient`
      Parameters:
        `destKeyStream` - location to write out the destination, PrivateKey, and SigningPrivateKey, format is specified in `PrivateKeyFile`
      Returns:
        new destination
      Throws:
        `I2PException`
        `IOException`

    - #### createDestination

          public Destination createDestination(OutputStream destKeyStream,
                                               Certificate cert)
                                        throws I2PException,
                                               IOException

      Create the destination with the given payload and write it out along with the PrivateKey and SigningPrivateKey to the destKeyStream If cert is a KeyCertificate, the signing keypair will be of the specified type. The KeyCertificate data must be ............................. The padding if any will be randomized. The extra key data if any will be set in the key cert. Caller must close stream.
      Specified by:
        `createDestination` in interface `I2PClient`
      Parameters:
        `destKeyStream` - location to write out the destination, PrivateKey, and SigningPrivateKey, format is specified in `PrivateKeyFile`
        `cert` - certificate to tie to the destination
      Returns:
        newly created destination
      Throws:
        `I2PException`
        `IOException`

    - #### createDestination

          public Destination createDestination(OutputStream destKeyStream,
                                               SigType type)
                                        throws I2PException,
                                               IOException

      Create a destination with the given signature type. It will have a null certificate for DSA 1024/160 and KeyCertificate otherwise. This is not bound to the I2PClient, you must supply the data back again in createSession(). Caller must close stream.
      Specified by:
        `createDestination` in interface `I2PClient`
      Parameters:
        `destKeyStream` - location to write out the destination, PrivateKey, and SigningPrivateKey, format is specified in `PrivateKeyFile`
      Throws:
        `I2PException`
        `IOException`

    - #### createSession

          public I2PSession createSession(I2PAppContext context,
                                          InputStream destKeyStream,
                                          Properties options)
                                   throws I2PSessionException

      Create a new session (though do not connect it yet)
      Parameters:
        `destKeyStream` - location from which to read the Destination, PrivateKey, and SigningPrivateKey from, format is specified in `PrivateKeyFile`
        `options` - set of options to configure the router with, if null will use System properties
      Throws:
        `I2PSessionException`

    - #### createSession

          public I2PSession createSession(InputStream destKeyStream,
                                          Properties options)
                                   throws I2PSessionException

      Create a new session (though do not connect it yet)
      Specified by:
        `createSession` in interface `I2PClient`
      Parameters:
        `destKeyStream` - location from which to read the Destination, PrivateKey, and SigningPrivateKey from, format is specified in `PrivateKeyFile`
        `options` - set of options to configure the router with, if null will use System properties
      Returns:
        new session allowing a Destination to receive all of its messages and send messages to any other Destination.
      Throws:
        `I2PSessionException` - if there is a problem creating the session