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 Detail

      • SIGNATURE_BYTES

        public static final int SIGNATURE_BYTES
        40
    • Constructor Detail

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

      • getType

        public SigType getType()
        Returns:
        non-null
        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