net.i2p.data

## Class PublicKey

- java.lang.Object
- - net.i2p.data.DataStructureImpl
  - - net.i2p.data.SimpleDataStructure
    - - net.i2p.data.PublicKey

- All Implemented Interfaces:
    DataStructure

      public class PublicKey
      extends SimpleDataStructure

  Defines the PublicKey as defined by the I2P data structure spec. A public key is 256byte Integer. The public key represents only the exponent, not the primes, which are constant and defined in the crypto spec.
  Author:
    jrandom

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `KEYSIZE_BYTES`

    - ### Fields inherited from class net.i2p.data.SimpleDataStructure

      `_data, _length`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PublicKey()`
    `PublicKey(byte[] data)`
    `PublicKey(String base64Data)` constructs from base64

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static PublicKey` | `create(byte[] data, int off)` Pull from cache or return new
    `static PublicKey` | `create(InputStream in)` Pull from cache or return new
    `int` | `length()` The legal length of the byte array in this data structure

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

      `calculateHash, equals, fromBase64, fromByteArray, getData, hashCode, readBytes, setData, toBase64, toByteArray, toString, writeBytes`

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

      `read`

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

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

- - ### Field Detail

    - #### KEYSIZE_BYTES

          public static final int KEYSIZE_BYTES

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### PublicKey

          public PublicKey()

    - #### PublicKey

          public PublicKey(byte[] data)

      Parameters:
        `data` - must be non-null

    - #### PublicKey

          public PublicKey(String base64Data)
                    throws DataFormatException

      constructs from base64
      Parameters:
        `base64Data` - a string of base64 data (the output of .toBase64() called on a prior instance of PublicKey
      Throws:
        `DataFormatException`

  - ### Method Detail

    - #### create

          public static PublicKey create(byte[] data,
                         int off)

      Pull from cache or return new
      Throws:
        `AIOOBE` - if not enough bytes
      Since:
        0.8.3

    - #### create

          public static PublicKey create(InputStream in)
                                  throws IOException

      Pull from cache or return new
      Throws:
        `IOException`
      Since:
        0.8.3

    - #### length

          public int length()

      Description copied from class: `SimpleDataStructure`
      The legal length of the byte array in this data structure
      Specified by:
        `length` in class `SimpleDataStructure`