## 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
`SessionConfig()`
`SessionConfig(Destination dest)`

Method Summary
`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`