@Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Plaintext plaintext = (Plaintext) o; return Objects.equals(encoding, plaintext.encoding) && Objects.equals(from, plaintext.from) && Arrays.equals(message, plaintext.message) && Arrays.equals(ack, plaintext.ack) && Arrays.equals(to.getRipe(), plaintext.to.getRipe()) && Arrays.equals(signature, plaintext.signature) && Objects.equals(status, plaintext.status) && Objects.equals(sent, plaintext.sent) && Objects.equals(received, plaintext.received) && Objects.equals(labels, plaintext.labels); }
@Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Plaintext plaintext = (Plaintext) o; return Objects.equals(encoding, plaintext.encoding) && Objects.equals(from, plaintext.from) && Arrays.equals(message, plaintext.message) && Objects.equals(getAckMessage(), plaintext.getAckMessage()) && Arrays.equals(to == null ? null : to.getRipe(), plaintext.to == null ? null : plaintext.to.getRipe()) && Arrays.equals(signature, plaintext.signature) && Objects.equals(status, plaintext.status) && Objects.equals(sent, plaintext.sent) && Objects.equals(received, plaintext.received) && Objects.equals(labels, plaintext.labels); }
@Override public BitmessageAddress findIdentity(byte[] ripeOrTag) { for (BitmessageAddress address : find("private_key is not null")) { if (address.getVersion() > 3) { if (Arrays.equals(ripeOrTag, address.getTag())) return address; } else { if (Arrays.equals(ripeOrTag, address.getRipe())) return address; } } return null; }
@Override public BitmessageAddress findContact(byte[] ripeOrTag) { for (BitmessageAddress address : find("public_key is null")) { if (address.getVersion() > 3) { if (Arrays.equals(ripeOrTag, address.getTag())) return address; } else { if (Arrays.equals(ripeOrTag, address.getRipe())) return address; } } return null; }
public GetPubkey(BitmessageAddress address) { super(address.getVersion()); this.stream = address.getStream(); if (address.getVersion() < 4) this.ripeTag = address.getRipe(); else this.ripeTag = address.getTag(); }
public GetPubkey(BitmessageAddress address) { super(address.getVersion()); this.stream = address.getStream(); if (address.getVersion() < 4) this.ripeTag = address.getRipe(); else this.ripeTag = address.getTag(); }
private void tryToFindMatchingPubkey(BitmessageAddress address) { for (ObjectMessage object : ctx.getInventory().getObjects(address.getStream(), address.getVersion(), ObjectType.PUBKEY)) { try { Pubkey pubkey = (Pubkey) object.getPayload(); if (address.getVersion() == 4) { V4Pubkey v4Pubkey = (V4Pubkey) pubkey; if (Arrays.equals(address.getTag(), v4Pubkey.getTag())) { v4Pubkey.decrypt(address.getPublicDecryptionKey()); if (object.isSignatureValid(v4Pubkey)) { address.setPubkey(v4Pubkey); ctx.getAddressRepo().save(address); break; } else { LOG.debug("Found pubkey for " + address + " but signature is invalid"); } } } else { if (Arrays.equals(pubkey.getRipe(), address.getRipe())) { address.setPubkey(pubkey); ctx.getAddressRepo().save(address); break; } } } catch (Exception e) { LOG.debug(e.getMessage(), e); } } }
public void write(OutputStream out, boolean includeSignature) throws IOException { Encode.varInt(from.getVersion(), out); Encode.varInt(from.getStream(), out); Encode.int32(from.getPubkey().getBehaviorBitfield(), out); out.write(from.getPubkey().getSigningKey(), 1, 64); out.write(from.getPubkey().getEncryptionKey(), 1, 64); if (from.getVersion() >= 3) { Encode.varInt(from.getPubkey().getNonceTrialsPerByte(), out); Encode.varInt(from.getPubkey().getExtraBytes(), out); } if (type == Type.MSG) { out.write(to.getRipe()); } Encode.varInt(encoding, out); Encode.varInt(message.length, out); out.write(message); if (type == Type.MSG) { Encode.varInt(ack.length, out); out.write(ack); } if (includeSignature) { if (signature == null) { Encode.varInt(0, out); } else { Encode.varInt(signature.length, out); out.write(signature); } } }
if (Arrays.equals(pubkey.getRipe(), address.getRipe())) { address.setPubkey(pubkey); addressRepository.save(address);
out.write(to.getRipe());
buffer.put(to.getRipe());