Consider this example |
|
Did you know that any record on your pilot which may look like this |
|
On your PC it will look like this |
|
If you need it to look like this | |
You need ReadThis! |
I started to develop ReadThis! about a year ago when I found out that all my 'private'
information is quite public if I sync my pilot at the office
I checked several of the encryption programs that were available at the time and found
that none was what I was looking for.
So I decided to try my luck in writing my first Pilot application: ReadThis! that would
let me encrypt anything I see fit without constraining me to a
certain application or database.
It was more important to me to know what I have in my memos (when viewing them on PC) then
the actual content which I could decrypt on my Pilot.
Later I also added the PC decoder just to be on the safe side, to be able to decrypt stuff
if I forget the pilot at the office (never happened) but still it's nice to be on the safe
side :)
I was asked by many users during this time when permanent licenses will be available, my
answer was that until I was sure ReadThis! is ready there won't
be any permanent license available as I really hated (and it happened more than once) to
pay for a shareware and find out that on a daily basis it crashes my Pilot.
Schachar
- Text markers
- Set text markers for faster encryption / decryption and automatic
- Automatic encryption / decryption when exiting / entering view
- Don't want to forget to re-encrypt text when you leave a memo?
mark it with text markersand set encrypt on exit- Better write protection of encrypted fields
- Encrypted fields are protected whenever ReadHack! is activated
no matter if ReadThis! is configured or not.
- New key expiration type: Session
- Keeps a key in memory as long as the pilot is turned on.
If encrypt on exit is active any active memo with markers will be encrypted
on exit.
![]() |
This is the main screen of ReadThis! you will have to enter this screen when ever you reset your pilot, or upgrade to a new version of ReadThis! or ReadThis! hack. Since ReadThis! hack is configured by ReadThis! it is automatically disabled when ever any of these parameters changed (as in pilot reset or version change) and usually just starting ReadThis! will enable it again. |
Key Lifetime | The amount of time a key will be kept in memory before it is
being automatically cleared by ReadThis! While a key is in memory you can encrypt/decrypt without being asked to enter the pass phrase. |
Key ID | The KeyID of the Default-Key The Default-Key can only be set from ReadThis! main screen. When you enter a key in the passphrase pop-up dialog if you enter the passphrase of the default-key ReadThis! will not ask for confirmation of the key. For all other keys there will be a confirmation pop-up window where you will have to re-enter the passphrase |
Encrypt on exit | Will automatically encrypt all text within text markers when exiting a view. |
Decrypt on entry | Will automatically decrypt all text within text markers when entering a view. |
Keep first line | If enabled during the encryption of full memo the first line (subject) will be kept in clear text. |
Enable dbl-click | Enable selection of text to decrypt / encrypt by double
clicking on it. This is a good choice if you don't have any other hack that collides with double clicking such as select hack. |
Set Key | Sets the key into memory, if it's the first key or a key
other then the Default-Key a confirmation dialog will be displayed and a new KeyID will be displayed. |
Clear Key | Clears the key from memory This can also be done from any other application by dragging the pen across the upper side of the screen from the right corner to the left corner. |
Save | Saves the setting of the check boxes. |
Undo | Loads the current configuration (if you changed things before pressing save) |
![]() |
|
![]() |
You may now either cancel the operation pressing 'No' or Press 'Yes' and set a key. |
![]() |
You may now either cancel the operation pressing 'No' or Press 'Yes' and set a key. |
![]() |
Press Cancel to cancel key change OK to set a new key different from the Default-Key |
There are three types of license key that can be entered:
Encrypted text format
Encrypted text has the format of: {RTXXkkkkkkqq....................qq}
Where
See more information in the technical information section
Encrypted text can be decrypted in two ways:
Note that if only one encrypted text is available on the
screen it will be decrypted no matter where u double click or release the
ReadThis! pointer.
Using text markers (Auto
Encrypt/Decrypt)
Text markers are a new feature from version 2.5 of ReadThis! (need ReadHack version
3.5 and above).
Text markers bound text inside a memo, note or any other edittable text on screen and
will enable you to quickly encrypt
and decrypt texts within the bounds of the markers. Marked text fields can be also
configured to automatically decrypt / encrypt
when exiting / entering a view.
Text markers bound a text with .< (Dot, smaller than) to mark a beginning of a
block and >. (Greater than, Dot) to mark a block end.
here is a screen shot of text with markers.
Note: Auto encrypt / decrypt does not work in table based user interfaces such as
To-Do, Address book (it does work in the attached memo, but not in the fields) it only
works on full screen text fields.
![]() |
As you can see there are two marked text blocks
in this memo. Double clicking in one of them (assuming double click option was enabled) or, dropping the ReadThis! pointer will encrypt the text only within the bounds of the markers. If Encrypt on exit was selected the text will be automatically encrypted when you leave this memo. |
![]() |
This is how the memo will look like after only
one text has been encrypted. Note that the markers remain unchanged. |
Currently ReadThis! comes with built-in XOR encryption which is just simple hashing of
the message using
binary XOR with the MD5 hash of the passphrase and the ability to use an external cipher.
Version 2.00 of ReadThis! will set the cipher type in the ReadThis! message header (
{RT...) to XR for the internal cipher
and ID for ANY external cipher. In future releases this will change to fully supported
multiple encryption engines.
Please note that I take no responsibility on how close if at all any
external cipher is safe or resembles the algorithm it should supply
I just included it as a free demo to any of you who want to write or adapt an algorithm to
be used in ReadThis.
Also included below is the full encoding format used for any
techy of you that doesn't trust me :)
Currently available external; cipher an IDEA sample for external cipher the IDEA
code I used comes from Eric Young's (eay@mincom.oz.au)
SSLeay-0.6.5 implementation and the source code is included as well. It can be down loaded
at http://members.xoom.com/PixIL/Software/ReadThis
additional free modules will be added in the future.
A free PC decoder can be downloaded
at http://members.xoom.com/PixIL/Software/ReadThis
The PC decoder will enable you to view encrypted information on your PC
To decrypt information on your PC copy the encrypted text and paste it in the PC decoder
text window or drag and drop it into the window.
The PC Decoder will decode all encrypted messages which were encrypted with the currently
set key. If the text contains multiple encrypted parts using different keys
you will have to decrypt with a key, change it to the next key, decrypt and so on. The PC
decoder can be added to PalmPilot Desktop by pressing the add to PalmPilot desktop button,
or removed in the same manner. ReadThis PC decoder will remain in the system tray until
the quit button was pressed. Only one instance of ReadThis! PC decoder will run.
Here are some problems that users came up with and they answers
Q: | ReadThis! hack is activated but still I can't see the ReadThis! pointer or use the double click-feature |
A: | When ever any system parameter of ReadThis! changes it
internally disables ReadThis! hack. Running ReadThis! configuration program should solve the problem. |
Q: | I am not sure which of the ciphers ReadThis! uses |
A: | Check the two letter after the ReadThis! header if it looks
like: {RTXR it uses the built-in XOR cipher if it looks like: {RTID it uses the external cipher module |
Q: | Your supplied license key does not work. |
A: | Check if your supplied Pilot username is exactly as it
appears in the hot sync welcome message on your pilot including all spaces, special characters and case. |
Q: | Autoencrypt / Autodecrypy does not work in address book , To-Do |
A: | Auto Encrypt/Decrypt does not work on any table based user interfaces such as To-Do list address book etc. It only works when the entire screen is one text field. |
Every ReadThis! encrypted message is composed of 5 parts:
All encoded numbers are in big-engine so if you want to check it on a PC don't forget to swap bytes.
Encoding method:
I encode every 6 bits of original message to an ASCII character starting at the base of
ASCII character 48
every encoded field is terminated with qq 2 X ASCII character 113
Passphrase, key and KeyID:
The key is created by calculating an MD5 hash of the passphrase the KeyID is the lower 32
bits of the MD5 of the key.
Encrypting text:
Before encryption a 2 bytes representing the length of the original text string excluding
the null at the end are added to the original text.
A buffer of 2+length of text+completion to multiple of 8 bytes is created and filled with
random numbers (from pilot built-in random number generator)
The text is copied into the buffer and to the encryption engine. The result string is
encoded as explained above.
Decrypting text:
Before decryption ReadThis! checks for the 2 characters cipherID and compare that the
KeyID in memory is the same as in the message.
The decoded encrypted message buffer is transferred to the encryption engine for
decryption a buffer is allocated for the size of the string +1 as the 2 bytes
at the beginning of the decrypted buffer indicate and copied into it.
Please read included license and copyright text file
THIS SOFTWARE IS PROVIDED BY SCHACHAR LEVIN ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANY SCHACHAR LEVIN OR ANY OTHER PARTY BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE USER ACCEPTS FULL RESPONSIBILITY FOR ANY DAMAGES, CONSEQUENTIAL OR OTHERWISE, RESULTING FROM ITS USE.
Please direct problems, wishes and comments to pixel.il@usa.net
Free PC Decoder and free external ciphers as well as software updates can be downloaded
at
http://members.xoom.com/PixIL/Software/ReadThis
Version 2.62
Version 2.61
Version 2.60 (pre-release)
Version 2.53
Version 2.52
Version 2.51
Version 2.50