ppvtcrypt 1.0 Examples line 17 1.1 Encrypting a backup line 20 1.2 Unpacking a random file for view line 28 2.0 Building line 39 3.0 Reading passwords from a file line 53 4.0 Tools line 60 5.0 Licence line 66 This is an intentionally minimal encryption tool. It does not attempt to do signing, integrity checking, or authentication. The only operations are encrypting and decrypting a stream of bytes, with a single cipher using a single KDF. Run “ppvtcrypt -h” for a synopsis. 1.0 Examples 1.1 Encrypting a backup Archive the directory “directory_to_store” into the encrypted, LZIP compressed POSIX.1-2001 format tar archive “backup.tar.lz.ppen”: tar -cvf - --posix --lzip directory_to_store | ppvtcrypt >backup.tar.lz.ppen 1.2 Unpacking a random file for view Decrypt the file “ciphertext.text.ppen” into “plaintext.text”, pass phrase will be requested from the controlling TTY: ppvtcrypt -d plaintext.text When reading the pass phrase from the terminal, ppvtcrypt turns off terminal echo and waits for input with the following prompt: ? 2.0 Building The build.zsh script will run tests and build everything using venv. If you have the necessary dependencies installed on the host, running the make targets directly is another option. The sledgehammer approach of adding the bin directory to your PATH and the src directory to your PYTHONPATH works too, at least for quick testing. Quick build and install: ./build.zsh pip3 install --user ./dist/ppvtcrypto-x.y.z.tar.gz The ppvtcrypt script will then usually be installed to: ~/.local/bin 3.0 Reading passwords from a file Putting cleartext passwords in a file is rarely a good idea, the intention of ppvtcrypt's “-p” option is reading the password from a FIFO. (For integration with a password vault.) 4.0 Tools The subdirectory “tools” contain a collection of different scripts which build on ppvtcrypt or were used when writing ppvtcrypt. 5.0 Licence Copyright 2019-2022 Steinar Knutsen Licensed under the EUPL, Version 1.2 or – as soon they will be approved by the European Commission – subsequent versions of the EUPL (the “Licence”); You may not use this work except in compliance with the Licence. You may obtain a copy of the Licence at: https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 Unless required by applicable law or agreed to in writing, software distributed under the Licence is distributed on an “AS IS” basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the Licence for the specific language governing permissions and limitations under the Licence.