Package net.i2p.data

Class Signature

All Implemented Interfaces:
DataStructure

public class Signature extends SimpleDataStructure
Defines the signature as defined by the I2P data structure spec. By default, a signature is a 40-byte array verifying the authenticity of some data using the DSA-SHA1 algorithm. The signature is the 20-byte R followed by the 20-byte S, both are unsigned integers. As of release 0.9.8, signatures of arbitrary length and type are supported. See SigType.
Author:
jrandom
  • Field Details

    • SIGNATURE_BYTES

      public static final int SIGNATURE_BYTES
      40
  • Constructor Details

    • Signature

      public Signature()
    • Signature

      public Signature(SigType type)
      Unknown type not allowed as we won't know the length to read in the data.
      Parameters:
      type - non-null
      Since:
      0.9.8
    • Signature

      public Signature(byte[] data)
    • Signature

      public Signature(SigType type, byte[] data)
      Should we allow an unknown type here?
      Parameters:
      type - non-null
      Since:
      0.9.8
  • Method Details

    • 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
    • getType

      public SigType getType()
      Returns:
      non-null
      Since:
      0.9.8
    • toString

      public String toString()
      Overrides:
      toString in class SimpleDataStructure
      Since:
      0.9.8
    • hashCode

      public int hashCode()
      Description copied from class: SimpleDataStructure
      We assume the data has enough randomness in it, so use the first 4 bytes for speed. If this is not the case, override in the extending class.
      Overrides:
      hashCode in class SimpleDataStructure
      Since:
      0.9.17
    • equals

      public boolean equals(Object obj)
      Description copied from class: SimpleDataStructure
      Warning - this returns true for two different classes with the same size and same data, e.g. SessionKey and SessionTag, but you wouldn't put them in the same Set, would you?
      Overrides:
      equals in class SimpleDataStructure
      Since:
      0.9.17