Refine search
/** * Generate hash of the given input using the given Digest. * * @param input input data. * @param digest the digest to use for hashing * @return hashed data. */ public static byte[] hash(byte[] input, Digest digest) { byte[] retValue = new byte[digest.getDigestSize()]; digest.update(input, 0, input.length); digest.doFinal(retValue, 0); return retValue; }
Digest md = new SHA256Digest() md.reset(); md.update(data, 0, data.length); byte[] hash = new byte[md.getDigestSize()]; md.doFinal(hash, 0);
protected String getPRFName() { if (prf != null) { return prf.getAlgorithmName(); } else { return "No PRF enabled"; } }
public static BigInteger calculateX(Digest digest, BigInteger N, byte[] salt, byte[] identity, byte[] password) { byte[] output = new byte[digest.getDigestSize()]; digest.update(identity, 0, identity.length); digest.update((byte)':'); digest.update(password, 0, password.length); digest.doFinal(output, 0); digest.update(salt, 0, salt.length); digest.update(output, 0, output.length); digest.doFinal(output, 0); return new BigInteger(1, output); }
private static BigInteger hashGen(Digest d, byte[] seed, int count) { int dLen = d.getDigestSize(); int pos = count * dLen; byte[] buf = new byte[pos]; for (int i = 0; i < count; ++i) { pos -= dLen; hash(d, seed, buf, pos); inc(seed, 1); } return new BigInteger(1, buf); }
@Override public byte[] digest() { byte[] output = new byte[digest.getDigestSize()]; digest.doFinal(output, 0); return output; }
@Override public void reset() { digest.reset(); } }
public static int getDigestSize(Digest digest) { if (digest instanceof Xof) { return digest.getDigestSize() * 2; } return digest.getDigestSize(); }
public static void signPrehash(byte[] sk, int skOff, byte[] ctx, Digest ph, byte[] sig, int sigOff) { byte[] m = new byte[PREHASH_SIZE]; if (PREHASH_SIZE != ph.doFinal(m, 0)) { throw new IllegalArgumentException("ph"); } byte phflag = 0x01; implSign(sk, skOff, ctx, phflag, m, 0, m.length, sig, sigOff); }
public static BigInteger calculateX(Digest digest, BigInteger N, byte[] salt, byte[] identity, byte[] password) { byte[] output = new byte[digest.getDigestSize()]; digest.update(identity, 0, identity.length); digest.update((byte)':'); digest.update(password, 0, password.length); digest.doFinal(output, 0); digest.update(salt, 0, salt.length); digest.update(output, 0, output.length); digest.doFinal(output, 0); return new BigInteger(1, output); }
static byte[] signature(Digest digest) { byte[] out = new byte[digest.getDigestSize()]; digest.doFinal(out, 0); return out; } }
/** * reset the internal state */ public void reset() { contentDigest.reset(); }
/** * update the internal digest with the byte b */ public void update( byte b) { digest.update(b); }
public DigestRandomGenerator( Digest digest) { this.digest = digest; this.seed = new byte[digest.getDigestSize()]; this.seedCounter = 1; this.state = new byte[digest.getDigestSize()]; this.stateCounter = 1; }
private static BigInteger hashPaddedPair(Digest digest, BigInteger N, BigInteger n1, BigInteger n2) { int padLength = (N.bitLength() + 7) / 8; byte[] n1_bytes = getPadded(n1, padLength); byte[] n2_bytes = getPadded(n2, padLength); digest.update(n1_bytes, 0, n1_bytes.length); digest.update(n2_bytes, 0, n2_bytes.length); byte[] output = new byte[digest.getDigestSize()]; digest.doFinal(output, 0); return new BigInteger(1, output); }