public class BcSha256MerkleTreeHash extends java.lang.Object implements MerkleTreeHash
MerkleTreeHash.
A fresh digest is created per call, so a single instance is thread-safe
and can be shared (e.g. inside an
MTCCertAuth or a
MerkleTreeCertificateValidator.ValidationParams
used by concurrent validations).
| Constructor and Description |
|---|
BcSha256MerkleTreeHash() |
| Modifier and Type | Method and Description |
|---|---|
org.bouncycastle.asn1.x509.AlgorithmIdentifier |
getAlgorithmIdentifier() |
int |
getHashSize() |
byte[] |
hashLeaf(byte[] entry)
Hash of a leaf entry: HASH(0x00 || entry).
|
byte[] |
hashNode(byte[] left,
byte[] right)
Hash of an internal node: HASH(0x01 || left || right).
|
byte[] |
hashRaw(byte[] data)
Raw hash with no domain separation prefix: HASH(data).
|
public org.bouncycastle.asn1.x509.AlgorithmIdentifier getAlgorithmIdentifier()
getAlgorithmIdentifier in interface MerkleTreeHashAlgorithmIdentifier that names this hash
function. Used by MerkleTreeCertificateValidator to
cross-check the supplied hash against the logHash field
of the CA's id-pe-mtcCertificationAuthority extension.public int getHashSize()
getHashSize in interface MerkleTreeHashpublic byte[] hashLeaf(byte[] entry)
MerkleTreeHashhashLeaf in interface MerkleTreeHashentry - the raw entry bytespublic byte[] hashNode(byte[] left,
byte[] right)
MerkleTreeHashhashNode in interface MerkleTreeHashleft - left child hashright - right child hashpublic byte[] hashRaw(byte[] data)
MerkleTreeHashhashRaw in interface MerkleTreeHashdata - the input bytes