Code Monkey home page Code Monkey logo

bore's Introduction

Bore: Boring file encryption

This is a work in progress.

It hasn't been tested and reviewed heavily enough yet, which makes it too interesting to use for now. Check back in a little while to see if it's gotten boring in the meantime.

What is bore?

Bore is a command-line tool to solve the task of securely encrypting a file using either a secret key file, or a secret password that's hard to guess.

Bore aims to ensure (not in the legal sense) the following facts:

  • If you keep the key file secret, or you use a strong password which you keep secret
  • Then you can encrypt any number of files of any size
  • You can send and receive the resulting ciphertexts (files ending in .bore) to and from anywhere
  • The contents of the files will remain secret
    • Caveat: The lengths of the files will not be secret
  • You can decrypt the ciphertexts with the same key/password you used to encrypt them
  • You will either get back the exact same files that you started with, or an error
    • Caveat: Files are identified by name, so if you encrypt two files with the same name, you won't be able to tell later which one is which.

What isn't bore?

  • Bore does not solve the problem of sending files to someone other than yourself.
  • Bore is not suitable for use as a library.
  • Bore might contain mistakes and is thus not suitable for life-and-death situations.

Usage

Key generation

bore gen-key <keyfile>

Encrypting

With a key:

bore seal -f <keyfile> <data>

With a strong password:

bore seal -p <password-file> <data>

Decrypting

bore open -f <keyfile> <data>.bore

or

bore open -p <password-file> <data>.bore

How does bore work?

It uses sodiumoxide::crypto::secretstream to authenticated-encrypt files in chunks. It also authenticated-encrypts the original filename. sodiumoxide is a Rust wrapper around libsodium, which is a portable implementation of the NaCl API.

TODO

  • GUI
  • Better handling of OS strings vs Rust strings
  • Unit and integration tests
  • Write clear guide on how to generate a strong password
  • rename seal and open

Copyright

Bore Copyright 2019 Lily Chung

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this software except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

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.