------------
Installation
------------

Python Package
==============

.. code:: shell

   uv tool install cryptolyzer

Docker
======

.. code:: shell

   podman pull coroner/cryptolyzer

Supported Platforms
===================

Packages are built and published for the following operating systems.

.. list-table::
   :header-rows: 1

   * - Operating system
     - Versions
   * - Arch Linux
     - rolling release
   * - Debian
     - >= 13
   * - Fedora
     - >= 43
   * - openSUSE
     - Tumbleweed
   * - Raspbian
     - >= 13
   * - Ubuntu
     - >= 24.04

Operating System Package
========================

The packages are published by the openSUSE Build Service, from two kinds of project. Each
release has its own, named after the version with colons, and there is one development project
carrying the current state of the master branch.

.. list-table::
   :header-rows: 1

   * - Project
     - Repository base address
   * - Release 1.6.1
     - ``https://download.opensuse.org/repositories/home:/pfeiffersz:/cryptolyzer:/1:/6:/1/``
   * - Development
     - ``https://download.opensuse.org/repositories/home:/pfeiffersz:/cryptolyzer:/dev/``

The commands below use the development project. Replace that address with a release one to
install a fixed version instead.

The certificate chain validation, the trust store check and the revocation check need certvalidator
(``python3-certvalidator``, ``python-certvalidator`` on Arch Linux). The packages only recommend it,
as some distributions do not ship it. Without it the certificate chain is reported as the server
sent it, and the validation results are left undetermined.

Deb
---

Replace ``Debian_13`` with the repository matching the operating system: ``Debian_13``,
``Debian_Testing``, ``Debian_Unstable``, ``Raspbian_13``, ``xUbuntu_24.04``,
``xUbuntu_24.10``, ``xUbuntu_25.04``, ``xUbuntu_25.10`` or ``xUbuntu_26.04``.

.. code:: shell

   apt update
   apt install -y ca-certificates curl gnupg

   install -d /etc/apt/keyrings
   curl -fsSL https://download.opensuse.org/repositories/home:/pfeiffersz:/cryptolyzer:/dev/Debian_13/Release.key |
       gpg --dearmor -o /etc/apt/keyrings/cryptolyzer.gpg

   echo 'deb [signed-by=/etc/apt/keyrings/cryptolyzer.gpg] https://download.opensuse.org/repositories/home:/pfeiffersz:/cryptolyzer:/dev/Debian_13/ ./' \
       >/etc/apt/sources.list.d/cryptolyzer.list

   apt update
   apt install -y cryptolyzer

   cryptolyze tls all www.example.com

RPM
---

Replace ``Fedora_43`` with the repository matching the operating system: ``Fedora_43``,
``Fedora_44`` or ``Fedora_Rawhide``.

.. code:: shell

   dnf config-manager addrepo --from-repofile=https://download.opensuse.org/repositories/home:/pfeiffersz:/cryptolyzer:/dev/Fedora_43/home:pfeiffersz:cryptolyzer:dev.repo
   dnf install -y cryptolyzer

   cryptolyze tls all www.example.com

openSUSE
--------

.. code:: shell

   zypper addrepo https://download.opensuse.org/repositories/home:/pfeiffersz:/cryptolyzer:/dev/openSUSE_Tumbleweed/home:pfeiffersz:cryptolyzer:dev.repo
   zypper --gpg-auto-import-keys refresh
   zypper install cryptolyzer

   cryptolyze tls all www.example.com

Arch
----

.. code:: shell

   curl -fsSL https://download.opensuse.org/repositories/home:/pfeiffersz:/cryptolyzer:/dev/Arch/x86_64/home_pfeiffersz_cryptolyzer_dev_Arch.key -o cryptolyzer.key
   pacman-key --init
   pacman-key --add cryptolyzer.key
   pacman-key --lsign-key A73C0F9A26FD1D9B1008F0BD403296D5CF227274

   cat >>/etc/pacman.conf <<EOF
   [cryptolyzer]
   Server = https://download.opensuse.org/repositories/home:/pfeiffersz:/cryptolyzer:/dev/Arch/x86_64
   EOF

   pacman -Sy
   pacman -S cryptolyzer

   cryptolyze tls all www.example.com
