Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.modeshape.common.util
Class SecureHash

    java.lang.Object
      org.modeshape.common.util.SecureHash

    @Immutable
    public class SecureHash

extends Object

A simple utility to generate various kinds of secure hashes.

Nested Class Summary
`static class` | `SecureHash.Algorithm` Commonly-used hashing algorithms.
`static class` | `SecureHash.HashingInputStream`
`static class` | `SecureHash.HashingReader`

Constructor Summary
`SecureHash()`

Method Summary
`static String` | `asHexString(byte[] hash)` Get the string representation of the supplied binary hash.
`static SecureHash.HashingReader` | `createHashingReader(SecureHash.Algorithm algorithm, Reader reader, Charset charset)` Create an Reader instance that wraps another reader and that computes the secure hash (using the algorithm with the supplied name) as the returned Reader is used.
`static SecureHash.HashingReader` | `createHashingReader(String digestName, Reader reader, Charset charset)` Create an Reader instance that wraps another reader and that computes the secure hash (using the algorithm with the supplied name) as the returned Reader is used.
`static SecureHash.HashingInputStream` | `createHashingStream(SecureHash.Algorithm algorithm, InputStream inputStream)` Create an InputStream instance that wraps another stream and that computes the secure hash (using the algorithm with the supplied name) as the returned stream is used.
`static SecureHash.HashingInputStream` | `createHashingStream(String digestName, InputStream inputStream)` Create an InputStream instance that wraps another stream and that computes the secure hash (using the algorithm with the supplied name) as the returned stream is used.
`static byte[]` | `getHash(SecureHash.Algorithm algorithm, byte[] content)` Get the hash of the supplied content, using the supplied digest algorithm.
`static byte[]` | `getHash(SecureHash.Algorithm algorithm, File file)` Get the hash of the supplied content, using the supplied digest algorithm.
`static byte[]` | `getHash(SecureHash.Algorithm algorithm, InputStream stream)` Get the hash of the supplied content, using the supplied digest algorithm.
`static byte[]` | `getHash(String digestName, byte[] content)` Get the hash of the supplied content, using the digest identified by the supplied name.
`static byte[]` | `getHash(String digestName, File file)` Get the hash of the supplied content, using the digest identified by the supplied name.
`static byte[]` | `getHash(String digestName, InputStream stream)` Get the hash of the supplied content, using the digest identified by the supplied name.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### SecureHash

    public SecureHash()

Method Detail

### getHash

    public static byte[] getHash(SecureHash.Algorithm algorithm,
                                 byte[] content)
                          throws NoSuchAlgorithmException

  Get the hash of the supplied content, using the supplied digest algorithm.

  Parameters:
    `algorithm` - the hashing function algorithm that should be used
    `content` - the content to be hashed; may not be null
  Returns:
    the hash of the contents as a byte array
  Throws:
    `NoSuchAlgorithmException` - if the supplied algorithm could not be found
    `IllegalArgumentException` - if the algorithm is null

### getHash

    public static byte[] getHash(SecureHash.Algorithm algorithm,
                                 File file)
                          throws NoSuchAlgorithmException,
                                 IOException

  Get the hash of the supplied content, using the supplied digest algorithm.

  Parameters:
    `algorithm` - the hashing function algorithm that should be used
    `file` - the file containing the content to be hashed; may not be null
  Returns:
    the hash of the contents as a byte array
  Throws:
    `NoSuchAlgorithmException` - if the supplied algorithm could not be found
    `IllegalArgumentException` - if the algorithm is null
    `IOException` - if there is an error reading the file

### getHash

    public static byte[] getHash(SecureHash.Algorithm algorithm,
                                 InputStream stream)
                          throws NoSuchAlgorithmException,
                                 IOException

  Get the hash of the supplied content, using the supplied digest algorithm.

  Parameters:
    `algorithm` - the hashing function algorithm that should be used
    `stream` - the stream containing the content to be hashed; may not be null
  Returns:
    the hash of the contents as a byte array
  Throws:
    `NoSuchAlgorithmException` - if the supplied algorithm could not be found
    `IllegalArgumentException` - if the algorithm is null
    `IOException` - if there is an error reading the stream

### getHash

    public static byte[] getHash(String digestName,
                                 byte[] content)
                          throws NoSuchAlgorithmException

  Get the hash of the supplied content, using the digest identified by the supplied name.

  Parameters:
    `digestName` - the name of the hashing function (or `message digest`) that should be used
    `content` - the content to be hashed; may not be null
  Returns:
    the hash of the contents as a byte array
  Throws:
    `NoSuchAlgorithmException` - if the supplied algorithm could not be found

### getHash

    public static byte[] getHash(String digestName,
                                 File file)
                          throws NoSuchAlgorithmException,
                                 IOException

  Get the hash of the supplied content, using the digest identified by the supplied name.

  Parameters:
    `digestName` - the name of the hashing function (or `message digest`) that should be used
    `file` - the file whose content is to be hashed; may not be null
  Returns:
    the hash of the contents as a byte array
  Throws:
    `NoSuchAlgorithmException` - if the supplied algorithm could not be found
    `IOException` - if there is an error reading the file

### getHash

    public static byte[] getHash(String digestName,
                                 InputStream stream)
                          throws NoSuchAlgorithmException,
                                 IOException

  Get the hash of the supplied content, using the digest identified by the supplied name. Note that this method never closes the supplied stream.

  Parameters:
    `digestName` - the name of the hashing function (or `message digest`) that should be used
    `stream` - the stream containing the content to be hashed; may not be null
  Returns:
    the hash of the contents as a byte array
  Throws:
    `NoSuchAlgorithmException` - if the supplied algorithm could not be found
    `IOException` - if there is an error reading the stream

### createHashingStream

    public static SecureHash.HashingInputStream createHashingStream(SecureHash.Algorithm algorithm,
                                                                    InputStream inputStream)
                                                             throws NoSuchAlgorithmException

  Create an InputStream instance that wraps another stream and that computes the secure hash (using the algorithm with the supplied name) as the returned stream is used. This can be used to compute the hash of a stream while the stream is being processed by another reader, and saves from having to process the same stream twice.

  Parameters:
    `algorithm` - the hashing function algorithm that should be used
    `inputStream` - the stream containing the content that is to be hashed
  Returns:
    the hash of the contents as a byte array
  Throws:
    `NoSuchAlgorithmException`

### createHashingStream

    public static SecureHash.HashingInputStream createHashingStream(String digestName,
                                                                    InputStream inputStream)
                                                             throws NoSuchAlgorithmException

  Create an InputStream instance that wraps another stream and that computes the secure hash (using the algorithm with the supplied name) as the returned stream is used. This can be used to compute the hash of a stream while the stream is being processed by another reader, and saves from having to process the same stream twice.

  Parameters:
    `digestName` - the name of the hashing function (or `message digest`) that should be used
    `inputStream` - the stream containing the content that is to be hashed
  Returns:
    the hash of the contents as a byte array
  Throws:
    `NoSuchAlgorithmException`

### createHashingReader

    public static SecureHash.HashingReader createHashingReader(SecureHash.Algorithm algorithm,
                                                               Reader reader,
                                                               Charset charset)
                                                        throws NoSuchAlgorithmException

  Create an Reader instance that wraps another reader and that computes the secure hash (using the algorithm with the supplied name) as the returned Reader is used. This can be used to compute the hash while the content is being processed, and saves from having to process the same content twice.

  Parameters:
    `algorithm` - the hashing function algorithm that should be used
    `reader` - the reader containing the content that is to be hashed
    `charset` - the character set used within the supplied reader; may not be null
  Returns:
    the hash of the contents as a byte array
  Throws:
    `NoSuchAlgorithmException`

### createHashingReader

    public static SecureHash.HashingReader createHashingReader(String digestName,
                                                               Reader reader,
                                                               Charset charset)
                                                        throws NoSuchAlgorithmException

  Create an Reader instance that wraps another reader and that computes the secure hash (using the algorithm with the supplied name) as the returned Reader is used. This can be used to compute the hash while the content is being processed, and saves from having to process the same content twice.

  Parameters:
    `digestName` - the name of the hashing function (or `message digest`) that should be used
    `reader` - the reader containing the content that is to be hashed
    `charset` - the character set used within the supplied reader; may not be null
  Returns:
    the hash of the contents as a byte array
  Throws:
    `NoSuchAlgorithmException`

### asHexString

    public static String asHexString(byte[] hash)

  Get the string representation of the supplied binary hash.

  Parameters:
    `hash` - the binary hash
  Returns:
    the hex-encoded representation of the binary hash, or null if the hash is null

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2008-2011 JBoss, a division of Red Hat. All Rights Reserved.