## Uses of Class
net.i2p.data.Signature

- Packages that use Signature
  Package | Description
  --- | ---
  net.i2p.client | Interfaces and factories for the base I2P SDK used to develop applications that communicate through I2P.
  net.i2p.client.impl | Internal implementation of the I2P client SDK, providing the client side of the I2CP protocol for applications communicating through I2P.
  net.i2p.client.streaming.impl | Implementation of a TCP-like (reliable, authenticated, in order) set of sockets for communicating over the IP-like (unreliable, unauthenticated, unordered) I2P messages.
  net.i2p.crypto | Core cryptographic primitives and algorithms used throughout I2P.
  net.i2p.data | These classes define the common data structures used by the various I2P protocols.
  net.i2p.data.i2cp | The Invisible Internet Client Protocol (I2CP) allows applications simplified access to I2P network without requiring them to deal with the issues involved with the Invisible Internet Network Protocol (I2NP).
  net.i2p.router.transport.udp | The UDP transport (also known as 'SSU' or Secure Semi-reliable UDP transport) for I2P, allowing I2P messages to be passed over UDP connections.
  net.i2p.util | Core utility classes and helper functions used throughout the I2P router and applications.

- - ### Uses of Signature in net.i2p.client

    Methods in net.i2p.client that return Signature
    Modifier and Type | Method and Description
    --- | ---
    `Signature` | I2PSession.`getOfflineSignature()`

  - ### Uses of Signature in net.i2p.client.impl

    Methods in net.i2p.client.impl that return Signature
    Modifier and Type | Method and Description
    --- | ---
    `Signature` | I2PSessionImpl.`getOfflineSignature()`

  - ### Uses of Signature in net.i2p.client.streaming.impl

    Fields in net.i2p.client.streaming.impl declared as Signature
    Modifier and Type | Field and Description
    --- | ---
    `protected Signature` | Packet.`_offlineSignature`
    `protected Signature` | Packet.`_optionSignature`

    Methods in net.i2p.client.streaming.impl that return Signature
    Modifier and Type | Method and Description
    --- | ---
    `Signature` | Packet.`getOptionalSignature()` The signature on the packet (only included if the flag for it is set) Warning, may be typed wrong on incoming packets for EdDSA before verifySignature() is called.

    Methods in net.i2p.client.streaming.impl with parameters of type Signature
    Modifier and Type | Method and Description
    --- | ---
    `void` | Packet.`setOptionalSignature(Signature sig)` This also sets flag FLAG_SIGNATURE_INCLUDED

  - ### Uses of Signature in net.i2p.crypto

    Methods in net.i2p.crypto that return Signature
    Modifier and Type | Method and Description
    --- | ---
    `static Signature` | SigUtil.`fromJavaSig(byte[] asn, SigType type)`
    `Signature` | DSAEngine.`sign(byte[] data, int offset, int length, SigningPrivateKey signingKey)` Sign using any key type as of 0.9.12 (DSA-SHA1 only prior to that)
    `Signature` | DSAEngine.`sign(byte[] data, SigningPrivateKey signingKey)` Sign using any key type.
    `Signature` | DSAEngine.`sign(Hash hash, SigningPrivateKey signingKey)` Nonstandard.
    `Signature` | DSAEngine.`sign(InputStream in, SigningPrivateKey signingKey)` Sign using DSA-SHA1 ONLY.
    `Signature` | DSAEngine.`sign(SHA1Hash hash, SigningPrivateKey signingKey)` Sign using DSA-SHA1 ONLY.
    `Signature` | DSAEngine.`sign(SimpleDataStructure hash, PrivateKey privKey, SigType type)` Generic signature type.
    `Signature` | DSAEngine.`sign(SimpleDataStructure hash, SigningPrivateKey signingKey)` Generic signature type.
    `Signature` | TrustedUpdate.`sign(String inputFile, String signedFile, SigningPrivateKey signingPrivateKey, String version)` Uses the given `SigningPrivateKey` to sign the given input file along with its version string using DSA.
    `Signature` | TrustedUpdate.`sign(String inputFile, String signedFile, String privateKeyFile, String version)` Uses the given private key to sign the given input file along with its version string using DSA.

    Methods in net.i2p.crypto with parameters of type Signature
    Modifier and Type | Method and Description
    --- | ---
    `static byte[]` | SigUtil.`toJavaSig(Signature sig)`
    `boolean` | DSAEngine.`verifySignature(Signature signature, byte[] signedData, int offset, int size, SigningPublicKey verifyingKey)` Verify using any sig type as of 0.9.12 (DSA only prior to that)
    `boolean` | DSAEngine.`verifySignature(Signature signature, byte[] signedData, SigningPublicKey verifyingKey)` Verify a signature using any supported signature type.
    `boolean` | DSAEngine.`verifySignature(Signature signature, Hash hash, SigningPublicKey verifyingKey)` Nonstandard.
    `boolean` | DSAEngine.`verifySignature(Signature signature, InputStream in, SigningPublicKey verifyingKey)` Verify using DSA-SHA1 ONLY
    `boolean` | DSAEngine.`verifySignature(Signature signature, SHA1Hash hash, SigningPublicKey verifyingKey)` Verify using DSA-SHA1 ONLY
    `boolean` | DSAEngine.`verifySignature(Signature signature, SimpleDataStructure hash, PublicKey pubKey)` Generic signature type.
    `boolean` | DSAEngine.`verifySignature(Signature signature, SimpleDataStructure hash, SigningPublicKey verifyingKey)` Generic signature type.

  - ### Uses of Signature in net.i2p.data

    Fields in net.i2p.data declared as Signature
    Modifier and Type | Field and Description
    --- | ---
    `protected Signature` | LeaseSet2.`_offlineSignature`
    `protected Signature` | DatabaseEntry.`_signature`

    Methods in net.i2p.data that return Signature
    Modifier and Type | Method and Description
    --- | ---
    `Signature` | PrivateKeyFile.`getOfflineSignature()`
    `Signature` | DatabaseEntry.`getSignature()` Retrieve the proof that the identity stands behind the info here
    `static Signature` | LeaseSet2.`offlineSign(long expires, SigningPublicKey transientSPK, SigningPrivateKey priv)` Generate a Signature to pass to setOfflineSignature()

    Methods in net.i2p.data with parameters of type Signature
    Modifier and Type | Method and Description
    --- | ---
    `static boolean` | PrivateKeyFile.`checkSignature(Signature s, byte[] data, SigningPublicKey spk)`
    `void` | PrivateKeyFile.`setOfflineData(long expires, SigningPublicKey transientPub, Signature sig, SigningPrivateKey transientPriv)` Side effect - zeroes out the current signing private key
    `boolean` | LeaseSet2.`setOfflineSignature(long expires, SigningPublicKey transientSPK, Signature offlineSig)` Destination must be previously set.
    `void` | DatabaseEntry.`setSignature(Signature signature)` Configure the proof that the entity stands behind the info here

  - ### Uses of Signature in net.i2p.data.i2cp

    Methods in net.i2p.data.i2cp that return Signature
    Modifier and Type | Method and Description
    --- | ---
    `Signature` | SessionConfig.`getOfflineSignature()` Gets the offline signature from the options.
    `Signature` | SessionConfig.`getSignature()`

    Methods in net.i2p.data.i2cp with parameters of type Signature
    Modifier and Type | Method and Description
    --- | ---
    `void` | SessionConfig.`setOfflineSignature(long expires, SigningPublicKey transientSPK, Signature offlineSig)` Set the offline signing data.
    `void` | SessionConfig.`setSignature(Signature sig)`

  - ### Uses of Signature in net.i2p.router.transport.udp

    Methods in net.i2p.router.transport.udp that return Signature
    Modifier and Type | Method and Description
    --- | ---
    `static Signature` | SSU2Util.`sign(I2PAppContext ctx, byte[] prologue, Hash h, Hash h2, byte[] data, int datalen, SigningPrivateKey spk)` Sign the relay or peer test data, using the prologue and hash as the initial data, and then the provided data.

  - ### Uses of Signature in net.i2p.util

    Methods in net.i2p.util that return Signature
    Modifier and Type | Method and Description
    --- | ---
    `Signature` | ByteArrayStream.`sign(I2PAppContext ctx, SigningPrivateKey signingKey)` Signs the written data.
    `Signature` | ByteArrayStream.`sign(SigningPrivateKey signingKey)` Signs the written data.

    Methods in net.i2p.util with parameters of type Signature
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | ByteArrayStream.`verifySignature(I2PAppContext ctx, Signature signature, SigningPublicKey verifyingKey)` Verifies the signature of the written data.
    `boolean` | ByteArrayStream.`verifySignature(Signature signature, SigningPublicKey verifyingKey)` Verifies the signature of the written data.