com.ibm.crypto.fips.provider
Class SHA

java.lang.Object
  |
  +--java.security.MessageDigestSpi
        |
        +--com.ibm.crypto.fips.provider.SHA
All Implemented Interfaces:
AlgorithmStatus, java.lang.Cloneable

public final class SHA
extends java.security.MessageDigestSpi
implements java.lang.Cloneable, AlgorithmStatus

This class implements the Secure Hash Algorithm (SHA) developed by the National Institute of Standards and Technology along with the National Security Agency. This is the updated version of SHA fip-180 as superseded by fip-180-1.

Version:
1.0, 07/13/99
Author:
Janelle Zhang

Constructor Summary
SHA()
          Standard constructor, creates a new SHA instance, allocates its buffers from the heap.
 
Method Summary
 java.lang.Object clone()
          Clones this object.
protected  byte[] engineDigest()
           
protected  int engineDigest(byte[] buf, int offset, int len)
           
protected  int engineGetDigestLength()
          Return the digest length in bytes
protected  void engineReset()
           
protected  void engineUpdate(byte b)
          Update adds the passed byte to the digested data.
protected  void engineUpdate(byte[] input, int offset, int len)
          Update adds the selected part of an array of bytes to the digest.
 void init()
          Initialize the SHA information
protected  java.lang.Object internalClone()
          Clones this object.
protected  byte[] internalDigest()
           
protected  int internalDigest(byte[] buf, int offset, int len)
           
protected  int internalGetDigestLength()
          Return the digest length in bytes
protected  void internalInit()
          Initialize the SHA information
protected  void internalReset()
           
protected  void internalUpdate(byte b)
          Update adds the passed byte to the digested data.
protected  void internalUpdate(byte[] input, int offset, int len)
          Update adds the selected part of an array of bytes to the digest.
 boolean isFipsApproved()
          Module identifies if the cryptographic operation (algorithm) is FIPS certified
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SHA

public SHA()
Standard constructor, creates a new SHA instance, allocates its buffers from the heap.
Method Detail

isFipsApproved

public boolean isFipsApproved()
Description copied from interface: AlgorithmStatus
Module identifies if the cryptographic operation (algorithm) is FIPS certified
Specified by:
isFipsApproved in interface AlgorithmStatus
See Also:
AlgorithmStatus.isFipsApproved()

init

public void init()
Initialize the SHA information
Throws:
FIPSRuntimeException - if SelfTest.isFipsRunnable returns false.

internalInit

protected void internalInit()
Initialize the SHA information

engineReset

protected void engineReset()
Overrides:
engineReset in class java.security.MessageDigestSpi
Throws:
FIPSRuntimeException - if SelfTest.isFipsRunnable returns false.

internalReset

protected void internalReset()

engineGetDigestLength

protected int engineGetDigestLength()
Return the digest length in bytes
Overrides:
engineGetDigestLength in class java.security.MessageDigestSpi
Throws:
FIPSRuntimeException - if SelfTest.isFipsRunnable returns false.

internalGetDigestLength

protected int internalGetDigestLength()
Return the digest length in bytes

engineUpdate

protected void engineUpdate(byte b)
Update adds the passed byte to the digested data.
Overrides:
engineUpdate in class java.security.MessageDigestSpi
Throws:
FIPSRuntimeException - if SelfTest.isFipsRunnable returns false.

internalUpdate

protected void internalUpdate(byte b)
Update adds the passed byte to the digested data.

engineUpdate

protected void engineUpdate(byte[] input,
                            int offset,
                            int len)
Update adds the selected part of an array of bytes to the digest. This version is more efficient than the byte-at-a-time version; it avoids data copies and reduces per-byte call overhead.
Overrides:
engineUpdate in class java.security.MessageDigestSpi
Throws:
FIPSRuntimeException - if SelfTest.isFipsRunnable returns false.

internalUpdate

protected void internalUpdate(byte[] input,
                              int offset,
                              int len)
Update adds the selected part of an array of bytes to the digest. This version is more efficient than the byte-at-a-time version; it avoids data copies and reduces per-byte call overhead.

engineDigest

protected byte[] engineDigest()
Overrides:
engineDigest in class java.security.MessageDigestSpi
Throws:
FIPSRuntimeException - if SelfTest.isFipsRunnable returns false.

internalDigest

protected byte[] internalDigest()

engineDigest

protected int engineDigest(byte[] buf,
                           int offset,
                           int len)
                    throws java.security.DigestException
Overrides:
engineDigest in class java.security.MessageDigestSpi
Throws:
FIPSRuntimeException - if SelfTest.isFipsRunnable returns false.

internalDigest

protected int internalDigest(byte[] buf,
                             int offset,
                             int len)
                      throws java.security.DigestException

clone

public java.lang.Object clone()
Clones this object.
Overrides:
clone in class java.security.MessageDigestSpi
Throws:
FIPSRuntimeException - if SelfTest.isFipsRunnable returns false.

internalClone

protected java.lang.Object internalClone()
Clones this object.