net.i2p.data

## Class KeysAndCert

- java.lang.Object
- - net.i2p.data.DataStructureImpl
  - - net.i2p.data.KeysAndCert

All Implemented Interfaces:
  DataStructure

Direct Known Subclasses:
  Destination, RouterIdentity

    public class KeysAndCert
    extends DataStructureImpl

KeysAndCert has a public key, a signing key, and a certificate. In that order. We also store a cached Hash. Implemented in 0.8.2 and retrofitted over Destination and RouterIdentity. There's actually no difference between the two of them.

Since:
  0.8.2
Author:
  zzz

### Field Summary

Fields
`protected Hash` `__calculatedHash`
`protected Certificate` `_certificate`
`protected PublicKey` `_publicKey`
`protected SigningPublicKey` `_signingKey`

### Constructor Summary

Constructors
Constructor and Description
`KeysAndCert()`

### Method Summary

Methods
`Hash` `calculateHash()` Calculate the SHA256 value of this object (useful for a few scenarios)
`boolean` `equals(Object object)`
`Certificate` `getCertificate()`
`Hash` `getHash()`
`PublicKey` `getPublicKey()`
`SigningPublicKey` `getSigningPublicKey()`
`int` `hashCode()` the public key has enough randomness in it to use it by itself for speed
`void` `readBytes(InputStream in)` Load up the current object with data from the given stream.
`void` `setCertificate(Certificate cert)`
`void` `setPublicKey(PublicKey key)`
`void` `setSigningPublicKey(SigningPublicKey key)`
`String` `toString()`
`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

`fromBase64, fromByteArray, read, toBase64, toByteArray`

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

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

### Field Detail

#### _publicKey

    protected PublicKey _publicKey

#### _signingKey

    protected SigningPublicKey _signingKey

#### _certificate

    protected Certificate _certificate

#### __calculatedHash

    protected Hash __calculatedHash

### Constructor Detail

#### KeysAndCert

    public KeysAndCert()

### Method Detail

#### getCertificate

    public Certificate getCertificate()

#### setCertificate

    public void setCertificate(Certificate cert)

#### getPublicKey

    public PublicKey getPublicKey()

#### setPublicKey

    public void setPublicKey(PublicKey key)

#### getSigningPublicKey

    public SigningPublicKey getSigningPublicKey()

#### setSigningPublicKey

    public void setSigningPublicKey(SigningPublicKey key)

#### readBytes

    public void readBytes(InputStream in)
                   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:
  `in` - 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`

#### hashCode

    public int hashCode()

the public key has enough randomness in it to use it by itself for speed

Overrides:
  `hashCode` in class `Object`

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`

#### calculateHash

    public Hash calculateHash()

Description copied from interface: `DataStructure`
Calculate the SHA256 value of this object (useful for a few scenarios)

Specified by:
  `calculateHash` in interface `DataStructure`
Overrides:
  `calculateHash` in class `DataStructureImpl`
Returns:
  SHA256 hash, or null if there were problems (data format or io errors)

#### getHash

    public Hash getHash()