ZS

Section: User Commands (1)
Updated: March 2025
 

NAME

zs - Zeichensalat, compress, sign and encode or decode, verify, decompress and run executables  

SYNOPSIS

zs [OPTION|zeichensalat]  

DESCRIPTION

zs, short for Zeichensalat (German for mojibake) is a tool to make/run compressed, signed executables copy/pastes using less than 500 unicode characters. It is intended to be used on the fediverse (or in chats). Note: the goal is to reduce the number of characters not bytes. At the moment each deflate compressed byte is represented by one unicode character. The encoding is very similar to base256U but doesn't use some problematic symbols. As signature algorithm Ed25519 is used. Future versions might use different compression, signature and encoding algorithms.  

OPTIONS

-h, --help display this help
-c
create private and public key pair if it doesn't exist yet
-E
create an executable shell script (executable is read from fd 3 and result is written to stdout)
-e
just encode from fd 3 (similar to base64)
-d
just decode from fd 3 (similar to base64 -d)
-p
display public key
--version
display version

with exactly one non-option argument that argument is processed as input otherwise without any arguments:

Decode from file descriptor 3 to file, check signature (ask if unknown signatory), decompress and run. This mode of operation is used by the shell scripts created with -E at the moment.  

CREDITS

Thanks to seb for testing and feedback. Thanks to cendyne for <https://cendyne.dev/posts/2022-03-06-ed25519-signatures.html>. Thanks to KIAaze for <https://stackoverflow.com/questions/77244714/how-can-i-extract-the-32-byte-ed25519-public-key-from-a-pem-file-and-how-can-i>  

AUTHORS

Jens Thiele (karme@karme.de)  

FILES

~/.zeichensalat/known_keys
Public key store including name, key and trust value.

~/.zeichensalat/private.pem

Password encrypted private key.

~/.zeichensalat/public.bin

Own public key.
 

EXAMPLES

# create private and public key pair

$ zs -c

# compress, sign and encode the example to /tmp/x

zs -e 3<example > /tmp/x

# decode, verify signature and decompress from /tmp/x

zs -d 3</tmp/x

# decode, verify signature and decompress from argument

zs $(cat /tmp/x)

# create executable shell script

zs -E 3<example  

SEE ALSO

base64(1), gzexe(1), bzexe(1), upx-ucl(1), makeself(1), <https://en.wikipedia.org/wiki/Fediverse>, base256U <https://github.com/fleschutz/base256U>, deflate compression <https://en.wikipedia.org/wiki/Deflate>

RELEASES


 

Index

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
CREDITS
AUTHORS
FILES
EXAMPLES
SEE ALSO

This document was created by man2html, using the manual pages.
Time: 13:40:22 GMT, March 26, 2025