@Override public List<Label> getLabels() { return findLabels("1=1"); }
public byte[] sha512(byte[]... data) { return hash("SHA-512", data); }
public void doProofOfWorkWithAck(Plaintext plaintext, long expirationTime) { final ObjectMessage ack = plaintext.getAckMessage(); messageRepo.save(plaintext); Item item = new Item(ack, NETWORK_NONCE_TRIALS_PER_BYTE, NETWORK_EXTRA_BYTES, expirationTime, plaintext); powRepo.putObject(item); cryptography.doProofOfWork(ack, NETWORK_NONCE_TRIALS_PER_BYTE, NETWORK_EXTRA_BYTES, this); }
private void updatePubkey(BitmessageAddress address, Pubkey pubkey) { address.setPubkey(pubkey); LOG.info("Got pubkey for contact " + address); ctx.getAddressRepository().save(address); List<Plaintext> messages = ctx.getMessageRepository().findMessages(PUBKEY_REQUESTED, address); LOG.info("Sending " + messages.size() + " messages for contact " + address); for (Plaintext msg : messages) { ctx.getLabeler().markAsSending(msg); ctx.getMessageRepository().save(msg); ctx.send(msg); } }
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); }
protected void receive(GenericPayload ack) { if (ack.getData().length == Msg.ACK_LENGTH) { Plaintext msg = ctx.getMessageRepository().getMessageForAck(ack.getData()); if (msg != null) { ctx.getLabeler().markAsAcknowledged(msg); ctx.getMessageRepository().save(msg); } } }
public WifImporter importAll() { for (BitmessageAddress identity : identities) { ctx.addresses().save(identity); } return this; }
public void resendUnacknowledged() { List<Plaintext> messages = messageRepository.findMessagesToResend(); for (Plaintext message : messages) { send(message); messageRepository.save(message); } }
@Override public void run() { LOG.info("Doing POW for " + items.size() + " tasks."); for (byte[] initialHash : items) { Item item = powRepo.getItem(initialHash); cryptography.doProofOfWork(item.object, item.nonceTrialsPerByte, item.extraBytes, ProofOfWorkService.this); } } }, delayInMilliseconds);
private byte[] hash(String algorithm, byte[]... data) { MessageDigest mda = md(algorithm); for (byte[] d : data) { mda.update(d); } return mda.digest(); }
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); }
/** * Removes expired objects from the inventory. You should call this method regularly, * e.g. daily and on each shutdown. */ public void cleanup() { ctx.getInventory().cleanup(); }
/** * First 4 bytes of sha512(payload) */ private byte[] getChecksum(byte[] bytes) throws NoSuchProviderException, NoSuchAlgorithmException { byte[] d = cryptography().sha512(bytes); return new byte[]{d[0], d[1], d[2], d[3]}; }
public WifImporter importAll(Collection<BitmessageAddress> identities) { for (BitmessageAddress identity : identities) { ctx.addresses().save(identity); } return this; }
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[] sha1(byte[]... data) { return hash("SHA-1", data); }
public byte[] doubleSha256(byte[] data, int length) { MessageDigest mda = md("SHA-256"); mda.update(data, 0, length); return mda.digest(mda.digest()); }