net.i2p.data.i2cp

## Class SessionConfig

- java.lang.Object
- - net.i2p.data.DataStructureImpl
  - - net.i2p.data.i2cp.SessionConfig

- All Implemented Interfaces:
    DataStructure

      public class SessionConfig
      extends DataStructureImpl

  Defines the information a client must provide to create a session
  Author:
    jrandom

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `SessionConfig()`
    `SessionConfig(Destination dest)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `equals(Object object)`
    `Date` | `getCreationDate()` Determine when this session was authorized by the destination (so we can prevent replay attacks)
    `Destination` | `getDestination()` Retrieve the destination for which this session is supposed to connect
    `Properties` | `getOptions()` Retrieve any configuration options for the session
    `Signature` | `getSignature()`
    `void` | `readBytes(InputStream rawConfig)` Load up the current object with data from the given stream.
    `void` | `setCreationDate(Date date)`
    `void` | `setOptions(Properties options)` Configure the session with the given options
    `void` | `setSignature(Signature sig)`
    `void` | `signSessionConfig(SigningPrivateKey signingKey)` Sign the structure using the supplied private key
    `boolean` | `tooOld()`
    `String` | `toString()`
    `boolean` | `verifySignature()` Verify that the signature matches the destination's signing public key.
    `void` | `writeBytes(OutputStream out)` Write out the data structure to the stream, using the format defined in the I2P data structure specification.

    - ### Methods inherited from class net.i2p.data.DataStructureImpl

      `calculateHash, fromBase64, fromByteArray, read, toBase64, toByteArray`

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

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

- - ### Constructor Detail

    - #### SessionConfig

          public SessionConfig()

    - #### SessionConfig

          public SessionConfig(Destination dest)

  - ### Method Detail

    - #### getDestination

          public Destination getDestination()

      Retrieve the destination for which this session is supposed to connect
      Returns:
        Destination for this session

    - #### getCreationDate

          public Date getCreationDate()

      Determine when this session was authorized by the destination (so we can prevent replay attacks)
      Returns:
        Date

    - #### setCreationDate

          public void setCreationDate(Date date)

    - #### getOptions

          public Properties getOptions()

      Retrieve any configuration options for the session
      Returns:
        Properties of this session

    - #### setOptions

          public void setOptions(Properties options)

      Configure the session with the given options
      Parameters:
        `options` - Properties for this session

    - #### getSignature

          public Signature getSignature()

    - #### setSignature

          public void setSignature(Signature sig)

    - #### signSessionConfig

          public void signSessionConfig(SigningPrivateKey signingKey)
                                 throws DataFormatException

      Sign the structure using the supplied private key
      Parameters:
        `signingKey` - SigningPrivateKey to sign with
      Throws:
        `DataFormatException`

    - #### verifySignature

          public boolean verifySignature()

      Verify that the signature matches the destination's signing public key.
      Returns:
        true only if the signature matches

    - #### tooOld

          public boolean tooOld()

    - #### readBytes

          public void readBytes(InputStream rawConfig)
                         throws DataFormatException,
                                IOException

      Description copied from interface: `DataStructure`
      Load up the current object with data from the given stream. Data loaded this way must match the I2P data structure specification.
      Parameters:
        `rawConfig` - stream to read from
      Throws:
        `DataFormatException` - if the data is improperly formatted
        `IOException` - if there was a problem reading the stream

    - #### writeBytes

          public void writeBytes(OutputStream out)
                          throws DataFormatException,
                                 IOException

      Description copied from interface: `DataStructure`
      Write out the data structure to the stream, using the format defined in the I2P data structure specification.
      Parameters:
        `out` - stream to write to
      Throws:
        `DataFormatException` - if the data was incomplete or not yet ready to be written
        `IOException` - if there was a problem writing to the stream

    - #### equals

          public boolean equals(Object object)

      Overrides:
        `equals` in class `Object`

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`