package org.bouncycastle.cert.dane;

import java.io.OutputStream;

import org.bouncycastle.asn1.x509.AlgorithmIdentifier;
import org.bouncycastle.operator.DigestCalculator;

A calculator which produces a truncated digest from a regular one, with the truncation achieved by dropping off the right most octets.
/** * A calculator which produces a truncated digest from a regular one, with the truncation * achieved by dropping off the right most octets. */
public class TruncatingDigestCalculator implements DigestCalculator { private final DigestCalculator baseCalculator; private final int length;
Default constructor - truncate to 28.
Params:
  • baseCalculator – actual calculator for working out the digest.
/** * Default constructor - truncate to 28. * * @param baseCalculator actual calculator for working out the digest. */
public TruncatingDigestCalculator(DigestCalculator baseCalculator) { this(baseCalculator, 28); }
Constructor specifying a length.
Params:
  • baseCalculator – actual calculator for working out the digest.
  • length – length in bytes of the final result.
/** * Constructor specifying a length. * * @param baseCalculator actual calculator for working out the digest. * @param length length in bytes of the final result. */
public TruncatingDigestCalculator(DigestCalculator baseCalculator, int length) { this.baseCalculator = baseCalculator; this.length = length; } public AlgorithmIdentifier getAlgorithmIdentifier() { return baseCalculator.getAlgorithmIdentifier(); } public OutputStream getOutputStream() { return baseCalculator.getOutputStream(); } public byte[] getDigest() { byte[] rv = new byte[length]; byte[] dig = baseCalculator.getDigest(); System.arraycopy(dig, 0, rv, 0, rv.length); return rv; } }