SQ(1)

NAME
sq-packet - Low-level packet manipulation

SYNOPSIS
sq packet armor [OPTIONS] FILE
sq packet dearmor [OPTIONS] FILE
sq packet dump [OPTIONS] FILE
sq packet decrypt [OPTIONS] FILE
sq packet split [OPTIONS] FILE
sq packet join [OPTIONS] FILE

DESCRIPTION
Low-level packet manipulation.

An OpenPGP data stream consists of packets. These tools allow working with packet streams. They are mostly of interest to developers, but `sq packet dump` may be helpful to a wider audience both to provide valuable information in bug reports to OpenPGP-related software, and as a learning tool.

SUBCOMMANDS

  sq packet armor
Convert binary to ASCII.

To make encrypted data easier to handle and transport, OpenPGP data can be transformed to an ASCII representation called ASCII Armor. sq emits armored data by default, but this subcommand can be used to convert existing OpenPGP data to its ASCII-encoded representation.

The converse operation is `sq packet dearmor`.

  sq packet dearmor
Convert ASCII to binary.

To make encrypted data easier to handle and transport, OpenPGP data can be transformed to an ASCII representation called ASCII Armor. sq transparently handles armored data, but this subcommand can be used to explicitly convert existing ASCII-encoded OpenPGP data to its binary representation.

The converse operation is `sq packet armor`.

  sq packet dump
List packets.

Creates a human-readable description of the packet sequence. Additionally, it can print cryptographic artifacts, and print the raw octet stream similar to hexdump(1), annotating specifically which bytes are parsed into OpenPGP values.

If the packet stream includes an encryption container, `sq` will attempt to decrypt it.

  sq packet decrypt
Unwrap an encryption container.

Decrypts a message, dumping the content of the encryption container without further processing. The result is a valid OpenPGP message that can, among other things, be inspected using `sq packet dump`.

  sq packet split
Split a message into packets.

Splitting a packet sequence into individual packets, then recombining them freely with `sq packet join` is a great way to experiment with OpenPGP data.

By default, the packets are written to stdout as a sequence of ASCII armored blocks. It is possible to edit this file directly (e.g., moving, adding, or removing packets), and then use `sq packet join` to assemble the stream.

Alternatively, if a `--output-prefix` is given, the packets are written into individual files starting with the prefix, and can be reassembled with `sq packet join`.

The converse operation is `sq packet join`.

  sq packet join
Join packets split across files.

Splitting a packet sequence into individual packets, then recombining them freely with `sq packet join` is a great way to experiment with OpenPGP data.

The converse operation is `sq packet split`.

EXAMPLES

  sq packet armor

Convert a binary OpenPGP message to an ASCII armored OpenPGP message.

    sq packet armor message.bin

Convert a binary OpenPGP message to an ASCII armored OpenPGP message explicitly choosing the armor label.

    sq packet armor --label=message message.bin

  sq packet dearmor

Convert an ASCII armored OpenPGP message to a binary OpenPGP message.

    sq packet dearmor --output=message.bin message.pgp

  sq packet dump

Print the packets of a certificate.

    sq packet dump juliet.pgp

Print the packets including cryptographic artifacts of a certificate.

    sq packet dump --mpis juliet.pgp

Print the packets including a dump of every byte of a certificate.

    sq packet dump --hex juliet.pgp

Prints the packets of an encrypted message, decrypting it using a secret key file.

    sq packet dump --recipient-file bob-secret.pgp message.pgp

  sq packet decrypt

Unwrap the encryption revealing the signed message.

    sq packet decrypt --recipient-file bob-secret.pgp message.pgp

  sq packet split

Split a certificate into individual packets printed to stdout.

    sq packet split --output=- juliet.pgp

Split a inline-signed message into individual packets written to individual files with the prefix 'packet'.

    sq packet split --output-prefix packet document.pgp

Then reassemble the message, transforming it into an old-style signed message with a prefix signature.

    sq packet join --output prefix-signature.pgp --label message \
        packet-2-Signature-Packet packet-1-Literal-Data-Packet

  sq packet join

Split a inline-signed message into individual packets written to individual files with the prefix 'packet'.

    sq packet split --output-prefix packet document.pgp

Then reassemble the message, transforming it into an old-style signed message with a prefix signature.

    sq packet join --output prefix-signature.pgp --label message \
        packet-2-Signature-Packet packet-1-Literal-Data-Packet

SEE ALSO
sq(1), sq-packet-armor(1), sq-packet-dearmor(1), sq-packet-dump(1), sq-packet-decrypt(1), sq-packet-split(1), sq-packet-join(1).

For the full documentation see <https://book.sequoia-pgp.org/>.

VERSION
1.4.0