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