Plainsight, a textual steganography tool.

The goal of Plainsight is to help you avoid being flagged as 'suspicious' by
internet censors. For example, by encoding files with Plainsight, one could
potentially evade the Great Firewall of China, by making your data look like
harmless English prose... instead of the encrypted archive that it really is.


TODO:
  add to pypi
  tests (especially for EOF and the like)
  support for other languages
  more throughput
  tighter code


Author: Robert Winslow
Source: http://github.com/rw/plainsight
Email: robert.winslow@gmail.com


How to use (from a bash-like shell):

# clone the repository:
$ git clone git://github.com/rw/plainsight.git

# enter it:
$ cd plainsight

# install the required plugins (or use virtualenv):
$ sudo pip install argparse bitstring progressbar

# download a copy of 'The Adventures of Sherlock Holmes'
$ curl -O http://www.gutenberg.org/cache/epub/1661/pg1661.txt

# type your message to encode:
$ echo 'Meet at Union Square at noon. The password is FuriousGreen.' > cleartext

# then, pipe it through Plainsight:
$ cat cleartext | ./plainsight.py -m encipher -f pg1661.txt > ciphertext

# the output will be gibberish that Doyle could've written:
$ cat ciphertext |fold -s
which was the case, of a light. And, his hand. "BALLARAT." only applicant?" 
decline be walking we do, the point of the little man in a strange, her 
husband's hand, going said road, path but you do know what I have heard of you, 
I found myself to get away from home and for the ventilator little cold night, 
and I he had left my friend Sherlock of our visitor and he had an idea was not 
to abuse step I of you, I knew what I was then the first signs it is the 
daughter, at least a fellow-countryman. had come. as I have already explained, 
the garden. what you can see a of importance. your hair. a picture upon of the 
money which had brought a you have a little good deal in way: out to my wife 
and hurry." made your hair. a charge me a series events, and excuse no sign his 
note-book has come away and in my old Sherlock was already down to do with the 
twisted

# now, decipher that ciphertext:
$ cat ciphertext | ./plainsight.py -m decipher -f pg1661.txt > deciphered
