There is a bug : the offsets are wrong past the reflector. Because the offset are only taken forward, when we go back from the reflector, we should tack the backward offsets instead.
Added the reverse offset property in the Connection class. Corrected a bug that prevented symmetrical encryption. Refactored tests.