diff --git a/pads/readme.md b/pads/readme.md new file mode 100644 index 0000000..287c36c --- /dev/null +++ b/pads/readme.md @@ -0,0 +1,63 @@ + +# pads + +Pads is an implementation of a simple one time pad algorithm. +There are 5 programs, two pairs of server client programs and +one program to generate random keys. + +The client validates the input and sends it to the server in +a chunk of 70001 chars. The server receives that; one for the +text and one for the key. The server encrypts the text with +the super special algorithm and then returns the encrypted or +decrypted text in another 70001 byte TCP stream. + +To handle multiple connections, the process forks, does the transfer +encrypts the message, sends the text, and then kills the process. +The main process waits for the dead processes after receiving new +connections. + + +## Compiling + +It is highly recommended to use the make command to compile the +5 required programs. + +Simply type: + +``` +make +``` + +## Running + +### servers + +dec and enc server's both require the port to be specified as a +launch argument: + +``` +./enc_server 69 +./dec_server 420 +``` + +consider running them in the background with '&' and choosing ports +greater than 1024. + +### clients + +The clients communicate with their respective servers **only**. To +connect, you specify the password file, key file, and port as launch args: + +``` +./enc_client plaintext_file key_file 69 +``` + +### keygen + +The keygen program takes the number of characters as a launch argument: + +``` +./keygen 69 +``` + +consider redirecting output with `> somefile`