public byte[] sha1(byte[]... data) { return hash("SHA-1", data); }
private byte[] hash(String algorithm, byte[]... data) { MessageDigest mda = md(algorithm); for (byte[] d : data) { mda.update(d); } return mda.digest(); }
public void checkProofOfWork(ObjectMessage object, long nonceTrialsPerByte, long extraBytes) throws IOException { byte[] target = getProofOfWorkTarget(object, nonceTrialsPerByte, extraBytes); byte[] value = doubleSha512(object.getNonce(), getInitialHash(object)); if (Bytes.lt(target, value, 8)) { throw new InsufficientProofOfWorkException(target, value); } }
public void doProofOfWork(ObjectMessage object, long nonceTrialsPerByte, long extraBytes, ProofOfWorkEngine.Callback callback) { nonceTrialsPerByte = max(nonceTrialsPerByte, NETWORK_NONCE_TRIALS_PER_BYTE); extraBytes = max(extraBytes, NETWORK_EXTRA_BYTES); byte[] initialHash = getInitialHash(object); byte[] target = getProofOfWorkTarget(object, nonceTrialsPerByte, extraBytes); context.getProofOfWorkEngine().calculateNonce(initialHash, target, callback); }
public Pubkey createPubkey(long version, long stream, byte[] privateSigningKey, byte[] privateEncryptionKey, long nonceTrialsPerByte, long extraBytes, Pubkey.Feature... features) { return Factory.createPubkey(version, stream, createPublicKey(privateSigningKey), createPublicKey(privateEncryptionKey), nonceTrialsPerByte, extraBytes, features); }
@Override public byte[] getInitialHash(ObjectMessage object) { return sha512(object.getPayloadBytesWithoutNonce()); }
public byte[] sha512(byte[] data, int offset, int length) { MessageDigest mda = md("SHA-512"); mda.update(data, offset, length); return mda.digest(); }
public byte[] sha512(byte[]... data) { return hash("SHA-512", data); }
public byte[] doubleSha512(byte[]... data) { MessageDigest mda = md("SHA-512"); for (byte[] d : data) { mda.update(d); } return mda.digest(mda.digest()); }
public byte[] ripemd160(byte[]... data) { return hash("RIPEMD160", data); }
public byte[] doubleSha512(byte[] data, int length) { MessageDigest mda = md("SHA-512"); mda.update(data, 0, length); return mda.digest(mda.digest()); }
public byte[] doubleSha256(byte[] data, int length) { MessageDigest mda = md("SHA-256"); mda.update(data, 0, length); return mda.digest(mda.digest()); }