private byte[] encodeAndChecksumOriginalDetails(FreenetURI thisKey, FreenetURI origKey,
byte[] clientDetails, boolean isFinalFetch) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeUTF(thisKey.toASCIIString());
dos.writeUTF(origKey.toASCIIString());
dos.writeBoolean(isFinalFetch);
dos.writeInt(clientDetails.length);
dos.write(clientDetails);
dos.writeInt(maxRetries);
dos.writeInt(cooldownTries);