module

Beryl::ZfsKeys::Paper

Séquestre papier d'une clé ZFS : un PDF imprimable par serveur, à garder hors du poste (coffre physique, enveloppe scellée). Il doit suffire à déverrouiller le serveur SANS beryl ni le poste de l'opérateur : la clé en clair, la procédure zpool/zfs à la main, et un QR code qui porte la commande de déverrouillage complète (clé comprise) pour la coller sans faute de frappe.

Chaîne : AsciiDoc généré ici (pur) + QR codes en SVG (shard qr-code), convertis par le binaire asciicrystal-pdf dans un dossier temporaire 0700 ; le PDF (0600) est ensuite renommé à sa place, le dossier temporaire (AsciiDoc et SVG, qui contiennent la clé) supprimé.

Constants

DEFAULT_CONVERTER = "asciicrystal-pdf"

Convertisseur AsciiDoc → PDF par défaut (cherché dans le PATH) ; keys_paper.converter de la config ou --converter le remplacent.

QR_DOCS = "qr-docs.svg"
QR_UNLOCK = "qr-unlock.svg"

Fichiers intermédiaires, relatifs au dossier temporaire.

Class methods

adoc(sheet : Sheet, with_docs_qr : Bool = false) : String

Document AsciiDoc de la feuille. with_docs_qr : un QR code du lien beryl est fourni à côté. Pur.

Source
pdf_name(fqdn : String) : String

Nom du PDF dans le dossier de sortie.

Source
qr_svg(data : String) : String

QR code (correction M) en SVG : un seul <path> (un carré par module noir), marge de 4 modules exigée par la norme. Pur.

Source
unlock_one_liner(sheet : Sheet) : String

Commande de déverrouillage en UNE ligne (contenu du QR code) : sh -c pour marcher aussi sous csh, printf %s (pas de retour à la ligne : ZFS lit exactement 64 caractères). Un pool déjà importé fait échouer son zpool import sans arrêter la suite. Pur.

Source
write_pdf(sheet : Sheet, out_path : String, converter : String = DEFAULT_CONVERTER) : Nil

Produit le PDF out_path (0600). Refuse un fichier déjà présent. Intermédiaires dans un dossier 0700 voisin, supprimé dans tous les cas. converter : binaire asciicrystal-pdf (ou compatible : -o, -n pour ne pas ouvrir le PDF, -N pour ignorer la configuration de l'utilisateur).

Source

Nested types