Skip to main content

icepack - Encrypting File Archiver

icepack combines age encryption, SSH signatures and ZIP files to create encrypted and verifiable archives. Except for the number of files and their approximate size, no metadata is visible.

Installation

Requirements:

  • Python 3.8
  • age 1.0
  • OpenSSH 8.0

Install with pip or pipx:

$ pip install icepack

If pigz or pbzip2 are installed, they will be used for faster compression.

Basic Usage

Initialize the keys

$ icepack init
Enter passphrase (empty for no passphrase): *****
Enter same passphrase again: *****
The keys have been initialized in /home/username/.config/icepack
Make sure to protect and backup this directory!

Create an archive

$ icepack create $HOME/Documents/ $HOME/my-documents.zip
Documents/Cat Pictures
Documents/Cat Pictures/awww.jpg
Documents/Cat Pictures/grumpy.jpg
Documents/Cat Pictures/socute.jpg
Documents/world-domination.txt
Enter passphrase: *****
Option Description
--comment Archive comment.
--compression, -c Compression type: bz2, gz or none (Default: gz)
--mode Store file/directory modes.
--mtime Store file/directory modification times.
--recipient, -r Allow another public key/alias to extract.

Extract an archive

$ icepack extract $HOME/my-documents.zip $HOME/
Enter passphrase for "/home/username/.config/icepack/identity": *****
Documents/Cat Pictures
Documents/Cat Pictures/awww.jpg
Documents/Cat Pictures/grumpy.jpg
Documents/Cat Pictures/socute.jpg
Documents/world-domination.txt
Option Description
--mode Restore file/directory modes.
--mtime Restore file/directory modification times.

Check the version and dependencies

$ icepack version --dependencies
icepack 1.0.0
✅ age found. (Version: v1.0.0)
✅ age-keygen found.
✅ ssh found. (Version: OpenSSH_8.2p1)
✅ ssh-keygen found.
Option Description
--dependencies, -d Check the dependencies.

Signer Management

To extract archives created by other parties, their public keys need to be added to the list of allowed signers. The signer command supports this.

List allowed signers

$ icepack signer list
ssh-ed25519 AAAAC3NzaC... (Your Key)
ssh-ed25519 AAAAC3NzaC... (Bob)

Add an allowed signer

$ icepack signer add "ssh-ed25519 AAAAC3NzaC..." --alias Alice
$ icepack signer list
ssh-ed25519 AAAAC3NzaC... (Your Key)
ssh-ed25519 AAAAC3NzaC... (Bob)
ssh-ed25519 AAAAC3NzaC... (Alice)
Option Description
--alias, -a Key alias.

Remove an allowed signer

$ icepack signer remove Bob
$ icepack signer list
ssh-ed25519 AAAAC3NzaC... (Your Key)
ssh-ed25519 AAAAC3NzaC... (Alice)

When removing a key, you can specify the key or its alias.

Metadata

Release files for icepack 1.1.0

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

Source distribution (sdist)

Source distribution for icepack 1.1.0
File Size Uploaded Provenance
icepack-1.1.0.tar.gz 28.1 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for icepack 1.1.0
File Interpreter ABI Platform
icepack-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 53.1 kB

Release files / icepack-1.1.0.tar.gz

Download URL icepack-1.1.0.tar.gz
Size 28.1 kB
Tags Source
SHA-256 checksum
How to use checksums
2c877821135f5d33389f78c84a24bb392867276fa0eb6b319d0ac23162620a5a
BLAKE2b-256 checksum
How to use checksums
6a5927f9f4da0e480456f8ef05723fc009396cc9b24bb7e04d5500e4e26dbb44
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.8.16

Release files / icepack-1.1.0-py3-none-any.whl

Download URL icepack-1.1.0-py3-none-any.whl
Size 25.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6901921fdb71da8c9600a2afe048bd1354b3f01c6cfe1d92af29883138554b39
BLAKE2b-256 checksum
How to use checksums
8ac1ef3db59d408458268aee03890d978a626ba5ca1e9d6ece5253f43df6803d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.8.16

Security for icepack 1.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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