Giter Club home page Giter Club logo

ot7's Introduction

OT7 - ONE-TIME PAD ENCRYPTION TOOL

DESCRIPTION: OT7 is an implementation of the one-time pad encryption method. It's a portable command line tool that works on many operating systems.

Encryption is needed to protect property held on data storage devices and when traveling on the internet.

OT7 produces an encrypted file that remains secret when sent over unsecure channels.

Features:

    - Flexible key management using a configuration file.
    - Password protection in case a key file is ever stolen.
    - Optional erasure of message keys after use for forward security.
    - Base64 or binary encrypted code format.
    - Encrypted code format is designed to defeat protocol analysis.
    - Optional padding bytes to hide the size of the message.
    - All working memory buffers are cleared after use.
    - Completely documented source code to make validation easier.
    - Informative return codes to support the use of OT7 in scripts.
    - Built in help function.

Requires:

    - C compiler and a command line environment.
    - User-generated random key files.

OT7 should build with most C compilers, with possible minor adjustments needed for linking file i/o routines.

    To build OT7:       gcc OT7.c -o ot7

    To build ot7test:   gcc ot7test.c -o ot7test

Here's a simple encryption example:

1. Make a file named hello.txt containing "Hello world!".
2. Generate a key file named 123.key. For this example, any file can be used as
   a key file by renaming it to "123.key".
3. Encrypt the file using this command: 

      ./ot7 -e hello.txt -KeyID 123 -oe hello.b64

The encrypted message is contained in hello.b64, and looks something like this:

      Av1mMo7FOEgeSc20wbVcbju7k3/0UMkp8SlR9HbwTW+mSKOGJI8CpQP7TgO8ZaLmt965HoBuYaAW
      4SVzGlQNC8afIZ8tRuUPxw==

To decrypt the message, use this command:

      ./ot7 -d hello.b64 -KeyID 123 -od hello2.txt

The resulting file hello2.txt contains the original message "Hello world!".

More options are available to make using OT7 easier.

To list the OT7 user guide, use the help command:

      ./ot7 -h

Or to save the user guide to a file, type:

      ./ot7 -h > help.txt

LICENSE: This is public domain software. I am grateful to Edward Snowden for revealing why encryption is necessary. Please consider donating to his defense fund at http://freesnowden.is .

January 17, 2015 status - OT7 is released for general use. It has passed the ot7test program on Debian (64-bit) and Mac OSX (PowerPC).

ot7's People

Contributors

otseven avatar

Watchers

Steve G. avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.