Skip to main content

A Python program for packing/unpacking encrypted, salted, and authenticated file containers.

Project description

pypi license

nescient, n. (nesh-int) - from Latin ‘unknowing’, ‘hidden’

A Python program for packing/unpacking encrypted, salted, and authenticated file containers.

Nescient provides an easy-to-use, secure, and efficient means of file-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.

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.

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

Prerequisites

Nescient requires Python 3.3 or later.

Windows users 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.

From PyPI

Nescient can be installed from the Python Package Index (PyPI) by running pip install nescient.

From Releases

An arbitrary stable (not development) release can be installed from the github releases by downloading the zip archive and running pip install <path-to-zip.

From latest source

Clone or download the git repo, navigate to the directory, then run:

python3 setup.py sdist
cd dist
pip install Nescient-<version>.tar.gz

Installing from source may require installing compilation tools.

Usage

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.

Nescient also has a GUI mode, which can be run by simply running nescient-ui.

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.

Project details


Download files

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

Source Distribution

Nescient-0.6.1.tar.gz (144.4 kB view details)

Uploaded Source

Built Distribution

Nescient-0.6.1-cp36-cp36m-win_amd64.whl (115.2 kB view details)

Uploaded CPython 3.6m Windows x86-64

File details

Details for the file Nescient-0.6.1.tar.gz.

File metadata

  • Download URL: Nescient-0.6.1.tar.gz
  • Upload date:
  • Size: 144.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for Nescient-0.6.1.tar.gz
Algorithm Hash digest
SHA256 3024db55471f00a0de190e0dfbb090966b344ad3e5ef029952d09ad56d9337cb
MD5 5f9b81837d265d62e9c641ad54f14439
BLAKE2b-256 f2e4878a7348a2d5965f2beecbffc74cb6b7359b19dce6d97368fd4805aab406

See more details on using hashes here.

File details

Details for the file Nescient-0.6.1-cp36-cp36m-win_amd64.whl.

File metadata

File hashes

Hashes for Nescient-0.6.1-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 a26fea3d223a30cd814029e0c507b5f33fd21c0886c5642272089cab24d15b59
MD5 ba325bde1b509c695cd8c8ec3bfb02bc
BLAKE2b-256 74062730eed741c04079a831f00676a01a2c1e0ce3d73f6ca2878571bb703fec

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page