Package java.security

Class MessageDigestSpi

  • Direct Known Subclasses:
    MessageDigest, OpenSSLMessageDigestJDK

    public abstract class MessageDigestSpi
    extends Object
    MessageDigestSpi is the Service Provider Interface (SPI) definition for MessageDigest. Examples of digest algorithms are MD5 and SHA. A digest is a secure one way hash function for a stream of bytes. It acts like a fingerprint for a stream of bytes.
    See Also:
    MessageDigest
    • Constructor Detail

      • MessageDigestSpi

        public MessageDigestSpi()
    • Method Detail

      • engineGetDigestLength

        protected int engineGetDigestLength()
        Returns the engine digest length in bytes. If the implementation does not implement this function 0 is returned.
        Returns:
        the digest length in bytes, or 0.
      • engineUpdate

        protected abstract void engineUpdate​(byte input)
        Updates this MessageDigestSpi using the given byte.
        Parameters:
        input - the byte to update this MessageDigestSpi with.
        See Also:
        engineReset()
      • engineUpdate

        protected abstract void engineUpdate​(byte[] input,
                                             int offset,
                                             int len)
        Updates this MessageDigestSpi using the given byte[].
        Parameters:
        input - the byte array.
        offset - the index of the first byte in input to update from.
        len - the number of bytes in input to update from.
        Throws:
        IllegalArgumentException - if offset or len are not valid in respect to input.
      • engineUpdate

        protected void engineUpdate​(ByteBuffer input)
        Updates this MessageDigestSpi using the given input.
        Parameters:
        input - the ByteBuffer.
      • engineDigest

        protected abstract byte[] engineDigest()
        Computes and returns the final hash value for this MessageDigestSpi. After the digest is computed the receiver is reset.
        Returns:
        the computed one way hash value.
        See Also:
        engineReset()
      • engineDigest

        protected int engineDigest​(byte[] buf,
                                   int offset,
                                   int len)
                            throws DigestException
        Computes and stores the final hash value for this MessageDigestSpi. After the digest is computed the receiver is reset.
        Parameters:
        buf - the buffer to store the result in.
        offset - the index of the first byte in buf to store in.
        len - the number of bytes allocated for the digest.
        Returns:
        the number of bytes written to buf.
        Throws:
        DigestException - if an error occures.
        IllegalArgumentException - if offset or len are not valid in respect to buf.
        See Also:
        engineReset()
      • engineReset

        protected abstract void engineReset()
        Puts this MessageDigestSpi back in an initial state, such that it is ready to compute a one way hash value.
      • clone

        public Object clone()
                     throws CloneNotSupportedException
        Description copied from class: Object
        Creates and returns a copy of this Object. The default implementation returns a so-called "shallow" copy: It creates a new instance of the same class and then copies the field values (including object references) from this instance to the new instance. A "deep" copy, in contrast, would also recursively clone nested objects. A subclass that needs to implement this kind of cloning should call super.clone() to create the new instance and then create deep copies of the nested, mutable objects.
        Overrides:
        clone in class Object
        Returns:
        a copy of this object.
        Throws:
        CloneNotSupportedException - if this object's class does not implement the Cloneable interface.