Skip to main content
Archived

This project has been archived by its maintainers, and is no longer receiving any updates.

Salvage distributes sensitive data to multiple people such that it can only be recovered by several people working together. This is useful for storing information with both a low risk of losing access to it and a low risk of accidental disclosure. A classic application is to create a “recovery kit” for a server or infrastructure, which can be used in the event that conventionally stored keys and credentials become lost or unavailable.

Salvage works by encrypting a file or directory with a random master key and then applying a simple key-splitting scheme to distribute the key across multiple shares. You can create a kit for any number of participants with any threshold required to recover the information. For example, you might create a kit for five people, any three of whom may combine their shares to recover the data.

Salvage runs under Python 2.7 or Python 3.2 and later. The only external dependency is gpg, for the cryptography. For maximum utility, it is packaged as a single flat Python script that can be run with no installation. The algorithms and file formats are simple and carefully documented to ensure that recovery is always possible even if this software is unavailable for some reason.

Installation

$ pip install salvage

This package will only install the salvage executable. It does not depend on any Python packages.

Quick Start

To create a new salvage kit for five participants with a recovery threshold of three:

% salvage new 5 3 path/to/source/dir

This will create five shares, each containing an encrypted archive and some metadata. To decrypt and unpack the archive:

% salvage recover path/to/share1 path/to/share2 path/to/share3

The three paths must be three of the shares generated in the first step. The master key will be reconstructed and the data will be decrypted and unpacked.

See salvage -h for additional options.

Release files for salvage 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for salvage 0.1.3
File Size Uploaded
salvage-0.1.3.tar.gz 98.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for salvage 0.1.3
File Interpreter ABI Platform
salvage-0.1.3-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 116.1 kB

Release files / salvage-0.1.3.tar.gz

Download URL salvage-0.1.3.tar.gz
Size 98.8 kB
Tags Source
SHA-256 checksum
How to use checksums
4728f50e39c7ce33a745277ef48bd1510864ea095ce331e952ccb39690d224aa
BLAKE2b-256 checksum
How to use checksums
6fe6c297848380d3997e019cf0a0dc3e4b15d3e92f5e8890c05a456ce186dde6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / salvage-0.1.3-py2.py3-none-any.whl

Download URL salvage-0.1.3-py2.py3-none-any.whl
Size 17.3 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
6b6fe96c7f304202a4eeaa10596117c930305554baa8f2b00dac882df4082b97
BLAKE2b-256 checksum
How to use checksums
cec4594c647ec6a5128be226ee5509ef4445beb4426be73338f6789d2fc0b06e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page