JSS 3.1.2

org.mozilla.jss.pkcs11
Class PK11MessageDigest

java.lang.Object
  |
  +--org.mozilla.jss.crypto.JSSMessageDigest
        |
        +--org.mozilla.jss.pkcs11.PK11MessageDigest

public final class PK11MessageDigest
extends JSSMessageDigest

Message Digesting with PKCS #11.


Field Summary
private  DigestAlgorithm alg
           
private  CipherContextProxy digestProxy
           
private  PK11SymKey hmacKey
           
private  PK11Token token
           
 
Constructor Summary
(package private) PK11MessageDigest(PK11Token token, DigestAlgorithm alg)
           
 
Method Summary
 int digest(byte[] outbuf, int offset, int len)
          Completes digesting, storing the result into the provided array.
private static int digest(CipherContextProxy proxy, byte[] outbuf, int offset, int len)
           
 DigestAlgorithm getAlgorithm()
          Returns the algorithm that this digest uses.
private static CipherContextProxy initDigest(DigestAlgorithm alg)
           
private static CipherContextProxy initHMAC(PK11Token token, DigestAlgorithm alg, PK11SymKey key)
           
 void initHMAC(SymmetricKey key)
          Initializes an HMAC digest with the given symmetric key.
 void reset()
          Resets this digest for further use.
 void update(byte[] input, int offset, int len)
          Updates the digest with a portion of an array.
private static void update(CipherContextProxy proxy, byte[] inbuf, int offset, int len)
           
 
Methods inherited from class org.mozilla.jss.crypto.JSSMessageDigest
digest, digest, getOutputSize, update, update
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

token

private PK11Token token

digestProxy

private CipherContextProxy digestProxy

hmacKey

private PK11SymKey hmacKey

alg

private DigestAlgorithm alg
Constructor Detail

PK11MessageDigest

PK11MessageDigest(PK11Token token,
                  DigestAlgorithm alg)
            throws java.security.NoSuchAlgorithmException,
                   java.security.DigestException
Method Detail

initHMAC

public void initHMAC(SymmetricKey key)
              throws java.security.DigestException,
                     java.security.InvalidKeyException
Description copied from class: JSSMessageDigest
Initializes an HMAC digest with the given symmetric key. This also has the effect of resetting the digest.
Overrides:
initHMAC in class JSSMessageDigest
Following copied from class: org.mozilla.jss.crypto.JSSMessageDigest
Throws:
java.security.DigestException - If this algorithm is not an HMAC algorithm.
java.security.InvalidKeyException - If the given key is not valid.

update

public void update(byte[] input,
                   int offset,
                   int len)
            throws java.security.DigestException
Description copied from class: JSSMessageDigest
Updates the digest with a portion of an array.
Overrides:
update in class JSSMessageDigest
Following copied from class: org.mozilla.jss.crypto.JSSMessageDigest
Parameters:
input - An array from which to update the digest.
offset - The index in the array at which to start digesting.
len - The number of bytes to digest.
Throws:
java.security.DigestException - If an error occurs while digesting.

digest

public int digest(byte[] outbuf,
                  int offset,
                  int len)
           throws java.security.DigestException
Description copied from class: JSSMessageDigest
Completes digesting, storing the result into the provided array.
Overrides:
digest in class JSSMessageDigest
Following copied from class: org.mozilla.jss.crypto.JSSMessageDigest
Parameters:
buf - The buffer in which to place the digest output.
offset - The offset in the buffer at which to store the output.
len - The amount of space available in the buffer for the digest output.
Returns:
The number of bytes actually stored into buf.
Throws:
java.security.DigestException - If the provided space is too small for the digest, or an error occurs with the digest.

reset

public void reset()
           throws java.security.DigestException
Description copied from class: JSSMessageDigest
Resets this digest for further use. This clears all input and output streams. If this is an HMAC digest, the HMAC key is not cleared.
Overrides:
reset in class JSSMessageDigest

getAlgorithm

public DigestAlgorithm getAlgorithm()
Description copied from class: JSSMessageDigest
Returns the algorithm that this digest uses.
Overrides:
getAlgorithm in class JSSMessageDigest

initDigest

private static CipherContextProxy initDigest(DigestAlgorithm alg)
                                      throws java.security.DigestException

initHMAC

private static CipherContextProxy initHMAC(PK11Token token,
                                           DigestAlgorithm alg,
                                           PK11SymKey key)
                                    throws java.security.DigestException

update

private static void update(CipherContextProxy proxy,
                           byte[] inbuf,
                           int offset,
                           int len)

digest

private static int digest(CipherContextProxy proxy,
                          byte[] outbuf,
                          int offset,
                          int len)

JSS 3.1.2