public static Data decodeData(final DataInput buffer, PeerAddress originator) throws InvalidKeyException, NoSuchAlgorithmException, InvalidKeySpecException { // mini header for data, 8 bytes ttl and data length if (buffer.readableBytes() < 4 + 4) return null; int ttl = buffer.readInt(); boolean protectedEntry = (ttl & 0x80000000) != 0; ttl &= 0x7FFFFFFF; int dateLength = buffer.readInt(); // if (buffer.readableBytes() < dateLength) return null; final Data data = createData( buffer.array(), buffer.arrayOffset() + buffer.readerIndex(), dateLength, ttl, protectedEntry, originator); buffer.skipBytes(dateLength); return data; }