Skip to main content

Python wrapper for the otpnitro crypto library

Project description

About

OTP Nitro is a secure One Time Pad implementation to use on computers or as assistant on manual operations.

CLI Usage

  • Generate OTP pages on the “TST” book:

    C:\> .\otpnitro.exe -g -r TST
    OTP Nitro 0.1
    -------------
    [I] Generating OTP: TST. OK
    
  • Encrypt message:

    C:\> otpnitro.exe -e -s CPX -r TST -m "ESTO ES UNA PRUEBA"
    OTP Nitro 0.1
    -------------
    [I] Encrypted msg:
    TST DE CPX 11 = RHJQG AKZQV RUMKV IYHJY YQYVT =
    
  • Decrypt message:

    C:\> otpnitro.exe -d -p 11 -s CPX -r TST -m "RHJQG AKZQV RUMKV IYHJY YQYVT"
    OTP Nitro 0.1
    -------------
    [I] Decrypted msg:
    TST DE CPX 11 = ESTO ES UNA PRUEBA =
    
  • Decrypt formated message:

    C:\> otpnitro.exe -d -f "TST DE CPX 11 = RHJQG AKZQV RUMKV IYHJY YQYVT ="
    OTP Nitro 0.1
    -------------
    [I] Decrypted msg:
    TST DE CPX 11 = ESTO ES UNA PRUEBA =
    
  • Burn a page:

    C:\> otpnitro.exe -b -p 11 -r TST
    OTP Nitro 0.1
    -------------
    [I] Burn page 11. OK
    

GUI Usage

  1. Introduction

    OTPNITRO is a secure One Time Pad implementation to use on computers or as assistant on manual operation.

  2. Concepts

    In this chapter we describe the basic concepts to use in this app.

    1. Books

      The cipher data is stored on books, every book have “pages” where the data is generated. The books usually have very short names, from 3 to 5 characters.

    2. Pages

      The pages store the cipher to crypt and decrypt, every page is unique and after use it you must burn the used page.

    3. From field

      The recipient is anyone who have the same book than you used to crypt the message and you must identify yourself as sender in the from field. The IDs usually have very short names, from 3 to 5 characters.

    4. Formatted message

      To have a send/receive standar format, please use this one:

      <BOOK> DE <FROM> <PAGE> = <MESSAGE> =
      

      Example:

      TST DE CPX 2 = QSZBO IGFIY NVTVY BFXCB KROAP =
      
  3. Operations

    In this chapter we describe the basic operations.

    1. Generate a book
      The first operation is generate a book, to do this, please use the menu: Books -> Generate Book or press CTRL + G keys.
    2. Crypt
      To crypt a message you must provide a valid book in the selector, an arbitrary ID in the form field and a message unformated to crypt. The page will be selected automatically. Later you must use the menu: Crypto -> Crypt or press CTRL + E keys.
    3. Decrypt
      To decrypt a message you can provide a formatted message, in this case you only must select the “Formatted msg” option. If you dont have the format, you can enter all fields manually. Later you must use the menu: Crypto -> Decrypt or press CTRL + D keys.
    4. Burn page
      It is recommended to burn the page after use, but if you want to do this manually (or later) you can use the menu: Crypto -> Burn page or press CTRL + B keys.
    5. Refresh books
      If you modify or delete any book in the filesystem you must refresh the books in the app. To do that you can use the menu: Crypto -> Refresh books or press CTRL + R keys.
  4. Internals

    In this chapter we describe internal operations, know bugs or missing features.

    1. Settings
      The settings/config file must be located on %APPDATA%/.otpnitro/otpnitro.ini or $HOME/.otpnitro/otpnitro.ini
    2. Book storing
      By default the books are stored on %APPDATA%/.otpnitro/PAGES or $HOME/.otpnitro/PAGES (this can be changed in the config file)
    3. Max pages parameter
      Is the number of pages generated for book. (this value limits the number of messages to be crypted on a book)
    4. Max chars parameter
      Is the number of characters generated for page. (this value limits the number of text to be crypted)
    5. Project URL
      For more information, updates, etc. you can visit the project homepage.
  5. License

    This program is under the GPLv3 license.

  6. Authors
  7. Acknowledges

CLI compile guide

Compile:

  1. Generic / Debian:

    make
    
  2. FreeBSD:

    CXX=clang++ gmake
    

Install:

  1. Generic:

    make install
    
  2. FreeBSD:

    CXX=clang++ gmake freebsd-cli
    
  3. Debian:

    make debian-cli
    

GUI compile guide

First you must install the U++ enviroment. Once installed you must add the otpnitrogui project. (Windows users also must install MinGW)

http://www.haibane.org/files/otp00.png

Next you must put the otpnitro path in the package textbox.

http://www.haibane.org/files/otp01.png

Click on the output mode button.

http://www.haibane.org/files/otp02.png

Fill all settings as in the image.

http://www.haibane.org/files/otp03.png

Next select “Build methods” menu

http://www.haibane.org/files/otp04.png

Again fill all options and add the otpnitro path to “lib directories”

http://www.haibane.org/files/otp05.png

Ok, you can build all now pressing the F7 key.

Install:

  1. Generic:

    make install
    
  2. FreeBSD:

    CXX=clang++ gmake freebsd
    
  3. Debian:

    make debian
    

Bindings

OTP Nitro supports bindings to other languages using SWIG

  1. Python
    1. Compile:

      make bindings
      
    2. Install:

      make python-otpnitro
      ( Install the .deb or .tzx package )
      
    3. Usage

      Once installed:

      >> import otpnitro
      >> page = otpnitro.Page()
      >> print page.list()
      

API

The API documentation is located here:

Features

  • Generate pages and books
  • Encrypt messages
  • Decrypt messages
  • Burn pages (secure delete)
  • Automatic text format (header)
  • GUI using Ultimate++
  • API and library
  • Bindings

TODO

  • Automatic file parse daemon
  • Print pages

License

OTP Nitro is released under the GPLv3 license.

Project details


Release history Release notifications

This version
History Node

1.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
otpnitro-1.0.tar.gz (42.3 kB) Copy SHA256 hash SHA256 Source None Jun 30, 2014

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page