public class Haval extends BaseHash
The HAVAL message-digest algorithm is a variable output length, with variable number of rounds. By default, this implementation allows HAVAL to be used as a drop-in replacement for MD5.
References:
Modifier and Type | Field and Description |
---|---|
static int |
HAVAL_128_BIT |
static int |
HAVAL_160_BIT |
static int |
HAVAL_192_BIT |
static int |
HAVAL_224_BIT |
static int |
HAVAL_256_BIT |
static int |
HAVAL_3_ROUND |
static int |
HAVAL_4_ROUND |
static int |
HAVAL_5_ROUND |
static int |
HAVAL_VERSION |
Constructor and Description |
---|
Haval()
Calls the constructor with two argument using
HAVAL_128_BIT as
the value for the output size (i.e. |
Haval(int size)
Calls the constructor with two arguments using the designated output
size, and
HAVAL_3_ROUND for the value of number of rounds. |
Haval(int size,
int rounds)
Constructs a
Haval instance with the designated output
size (in bytes). |
Modifier and Type | Method and Description |
---|---|
java.lang.Object |
clone()
Returns a clone copy of this instance.
|
protected byte[] |
getResult()
Constructs the result from the contents of the current context.
|
protected byte[] |
padBuffer()
Returns the byte array to use as padding before completing a hash
operation.
|
protected void |
resetContext()
Resets the instance for future re-use.
|
boolean |
selfTest()
A basic test.
|
protected void |
transform(byte[] in,
int i)
The block digest transformation per se.
|
public static final int HAVAL_VERSION
public static final int HAVAL_128_BIT
public static final int HAVAL_160_BIT
public static final int HAVAL_192_BIT
public static final int HAVAL_224_BIT
public static final int HAVAL_256_BIT
public static final int HAVAL_3_ROUND
public static final int HAVAL_4_ROUND
public static final int HAVAL_5_ROUND
public Haval()
Calls the constructor with two argument using HAVAL_128_BIT
as
the value for the output size (i.e. 128
bits, and
HAVAL_3_ROUND
for the value of number of rounds.
public Haval(int size)
Calls the constructor with two arguments using the designated output
size, and HAVAL_3_ROUND
for the value of number of rounds.
size
- the output size in bytes of this instance.java.lang.IllegalArgumentException
- if the designated output size is invalid.HAVAL_128_BIT
,
HAVAL_160_BIT
,
HAVAL_192_BIT
,
HAVAL_224_BIT
,
HAVAL_256_BIT
public Haval(int size, int rounds)
Constructs a Haval
instance with the designated output
size (in bytes). Valid output size
values are 16
,
20
, 24
, 28
and 32
.
Valid values for rounds
are in the range 3..5
inclusive.
size
- the output size in bytes of this instance.rounds
- the number of rounds to apply when transforming data.java.lang.IllegalArgumentException
- if the designated output size is invalid,
or if the number of rounds is invalid.HAVAL_128_BIT
,
HAVAL_160_BIT
,
HAVAL_192_BIT
,
HAVAL_224_BIT
,
HAVAL_256_BIT
,
HAVAL_3_ROUND
,
HAVAL_4_ROUND
,
HAVAL_5_ROUND
public java.lang.Object clone()
IMessageDigest
Returns a clone copy of this instance.
clone
in interface IMessageDigest
clone
in class BaseHash
protected void transform(byte[] in, int i)
BaseHash
The block digest transformation per se.
protected byte[] padBuffer()
BaseHash
Returns the byte array to use as padding before completing a hash operation.
protected byte[] getResult()
BaseHash
Constructs the result from the contents of the current context.
protected void resetContext()
BaseHash
resetContext
in class BaseHash
public boolean selfTest()
IMessageDigest
A basic test. Ensures that the digest of a pre-determined message is equal to a known pre-computed value.
selfTest
in interface IMessageDigest
selfTest
in class BaseHash
Copyright © 2025. All rights reserved.