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