Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/aarant/nescient
Store, encrypt and decrypt files to and from encrypted, authenticated containers.
https://github.com/aarant/nescient
cryptography encryption-tool python python3
Last synced: 23 days ago
JSON representation
Store, encrypt and decrypt files to and from encrypted, authenticated containers.
- Host: GitHub
- URL: https://github.com/aarant/nescient
- Owner: aarant
- License: mit
- Created: 2016-12-25T04:02:41.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2021-03-25T04:55:59.000Z (over 3 years ago)
- Last Synced: 2024-10-04T20:37:34.848Z (about 1 month ago)
- Topics: cryptography, encryption-tool, python, python3
- Language: Python
- Homepage:
- Size: 1.82 MB
- Stars: 5
- Watchers: 0
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
.. |pypi| image:: https://img.shields.io/pypi/v/nescient.svg
.. _pypi: https://pypi.python.org/pypi/Nescient
.. |license| image:: https://img.shields.io/github/license/arantonitis/nescient.svg
.. _license: https://github.com/arantonitis/nescient/tree/master/LICENSE
.. |travis| image:: https://travis-ci.org/arantonitis/nescient.svg?branch=master
.. _travis: https://travis-ci.org/arantonitis/nescient/
.. |appveyor| image:: https://ci.appveyor.com/api/projects/status/r5p0hg36srwi2k06?svg=true
.. _appveyor: https://ci.appveyor.com/project/arantonitis/nescient
.. |nessie| image:: https://raw.githubusercontent.com/arantonitis/nescient/master/nescient/nessie.png
:height: 64px
:width: 64px
:align: middle
:alt:|nessie| Nescient
*****************
|pypi|_ |license|_ |travis|_ |appveyor|_*nescient, n. (nesh-int) - from Latin 'unknowing', 'hidden'*
Store, encrypt and decrypt files to and from encrypted, authenticated containers.
Nescient provides an easy-to-use, secure, and efficient means of file or memory level encryption.
Several use cases include:
* Backing up multiple files to a reliable yet insecure location.
* Providing additional, file-level encryption to supplement full disk encryption, securing packed files even while the machine is on with the disk-level encryption key loaded in memory.
* Sharing files with others securely, by transferring a Nescient container through an insecure channel and providing a password through a separate secure channel.
* Using Nescient's cryptographic classes to efficiently implement secure protocols.
Nescient is:
* **open source**: It is licensed under the permissive MIT license.
* **multiplatform**: As a Python project, Nescient works on all the major operating systems (Windows, macOS, and Linux)
* **transparent**: The means with which Nescient encrypts and packs files is documented, and the algorithms used are tested both against official test vectors and arbitrary data to ensure correctness.
* **fast**: All core crypto code is written in Cython and compiled to C extensions, making it fast enough to be practically usable for large files. The fastest cipher modes achieve speeds of 10 cycles/byte.
Nescient supports the following packing modes:
* The AES block cipher for encryption, with either 128, 192, or 256 bit keys, in CBC mode, and SHA-256 for generating authentication tags.
* The ChaCha20 stream cipher with 256 bit keys and SHA-256 for generating authentication tags.
Installation
============Windows
-------
Nescient is available as a pre-packaged, standalone Windows executable, downloadable from the `github releases`_. The executable can be used in GUI-mode, by double-clicking, or can be run with command line arguments.From PyPI
---------
Nescient requires Python 3.4 or later.Windows users installing Nescient as a Python package are **strongly suggested** to have a 64-bit Python installation on their machines. Otherwise, installation may require installing the Microsoft C++ Visual Build Tools to compile Nescient's C extensions.
Install Nescient from the Python Package Index (PyPI) by running ``pip install nescient``.
.. note::
* On most Linux systems, installation may require running pip with root permissions, or running ``pip install nescient --user`` instead.
* On most Linux systems, there may be two versions of pip available: The Python 3 version is typically called ``pip3``.
From Releases
-------------
An arbitrary stable (not development) release can be installed from the `github releases`_ by downloading the zip archive and running ``pip install .tar.gz
Installing from source may require installing compilation tools... _github releases: https://github.com/arantonitis/nescient/releases
.. _git repo: https://github.com/arantonitis/nescientUsage
=====
Nescient has a GUI mode, which can be run by simply running ``nescient-ui``, or ``nescient`` with no arguments.Nescient can pack or unpack files into/from ``.nesc`` containers. Some typical usage might be:
``nescient pack file1 file2``
``nescient unpack file1.nesc``
Unless otherwise specified via command line flags, Nescient packs and unpacks files in place, overwriting their data.
Command line help can be viewed with ``nescient -h``.
Development
===========
Nescient versioning functions on a ``MAJOR.MINOR.PATCH.[DEVELOP]`` model. Only stable, non development releases will be published to PyPI. Because Nescient is still a beta project, the ``MAJOR`` increment will be 0. Minor increments represent new features. Patch increments represent problems fixed with existing features.Planned features include:
* New cipher modes for existing algorithms, like the GCM authenticated mode, and additional encryption algorithms.
* Integrated compression when packing files.
* GUI mode enhancements.
* Documentation.