net.i2p.crypto
Class SHA256Generator

java.lang.Object
  extended by net.i2p.crypto.SHA256Generator

public final class SHA256Generator
extends Object

Defines a wrapper for SHA-256 operation. As of release 0.8.7, uses java.security.MessageDigest by default. If that is unavailable, it uses GNU-Crypto Sha256Standalone


Constructor Summary
SHA256Generator(I2PAppContext context)
           
 
Method Summary
 Hash calculateHash(byte[] source)
          Calculate the SHA-256 hash of the source and cache the result.
 Hash calculateHash(byte[] source, int start, int len)
          Calculate the hash and cache the result.
 void calculateHash(byte[] source, int start, int len, byte[] out, int outOffset)
          Use this if you only need the data, not a Hash object.
static SHA256Generator getInstance()
           
static void main(String[] args)
          Test the GNU and the JVM's implementations for speed Results: 2011-05 eeepc Atom
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SHA256Generator

public SHA256Generator(I2PAppContext context)
Parameters:
context - unused
Method Detail

getInstance

public static final SHA256Generator getInstance()

calculateHash

public final Hash calculateHash(byte[] source)
Calculate the SHA-256 hash of the source and cache the result.

Parameters:
source - what to hash
Returns:
hash of the source

calculateHash

public final Hash calculateHash(byte[] source,
                                int start,
                                int len)
Calculate the hash and cache the result.


calculateHash

public final void calculateHash(byte[] source,
                                int start,
                                int len,
                                byte[] out,
                                int outOffset)
Use this if you only need the data, not a Hash object. Does not cache.

Parameters:
out - needs 32 bytes starting at outOffset

main

public static void main(String[] args)
Test the GNU and the JVM's implementations for speed Results: 2011-05 eeepc Atom
  JVM   strlen  GNU ms  JVM  ms 
        Oracle  387       3861   3565
        Oracle   40        825    635
        Harmony 387       8082   5158
        Harmony  40       4137   1753
        JamVM   387      36301  34100
        JamVM    40       7022   6016
        gij     387     125833   4342
        gij      40      22417    988