\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{geometry}
\geometry{top=15mm, bottom=15mm, left=1cm, right=1cm}
\usepackage[french]{babel}
\usepackage{pslatex}
\usepackage[colorlinks=true,urlcolor=black]{hyperref}
\usepackage{graphicx}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\footrulewidth}{0.4pt}
\fancyfoot[L]{Uubu.fr}
\fancyfoot[R]{ven. mai 27 11:06:29 CEST 2016}
\lfoot{\Large \textit{Uubu.fr}}
\hypersetup{pdfinfo={
Title={sign-efi-sig-list},
Author={Sylvain Girod},
Creator={Bash script from uubu.fr's format version 1},
Producer={Bash script and PDFLaTeX},
Subject={Outils de signature de variables},
CreationDate={D:20160527110629},
ModDate={D:20160527110629},
Keywords={boot;sécurité;chiffrement}
}}
\begin{document}
 
\begin{center}
{\Huge sign-efi-sig-list }
\end{center}
\vspace{1cm}
 
\begin{flushleft}
 
{\large Outils de signature de variables}
 
\vspace{10mm}
 
\hspace{1mm}  Produit un fichier de sortie avec un en-tête d'authentification pour mettre à jours une variable. Cette sortie peut être signée par les clés usuelles directement ou peut être splité pour une signature externe en utilisant les options -o et -i.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge OPTIONS }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} -r]{Le certificat est rsa2048 au lieu de x509}
\item[\hspace{1mm} -m]{Utilise un compteur monotonique au lieu d'un timestamp}
\item[\hspace{1mm} -a]{Prépare la variable pour APPEND\_WRITE au lieu d'un remplacement}
\item[\hspace{1mm} -o]{Ne signe pas, mais sort un fichier du bundle exact à signer}
\item[\hspace{1mm} -t timestamp]{utiliser le timestamp spécifié.}
\item[\hspace{1mm} -i]{Prend une signature détachée au format PEM produit pas -o et complète la création de la mise à jours}
\item[\hspace{1mm} -g guid]{Utilise le guid comme guid propriétaire de la signature}
\item[\hspace{1mm} -c crt]{Le certificat de signature au format PEM}
\end{description}
 
\vspace{1cm}{\huge Exemples }
 
\
 
\hspace{1mm} Pour signer une simple mise à jours dans db qui a été préparé comme liste de signature EFI dans DB.esl et sort le résultat avec l'en-tête d'authentification dans DB.auth \\
\hspace{1mm} \textbf{sign-efi-sig-list -a -c KEK.crt -k KEK.key db DB.esl DB.auth} \\
\hspace{1mm} Pour faire une signature détachée: \\
\hspace{1mm} \textbf{sign-efi-sig-list -a -t 'Jul 21 09:39:37 BST 2012' -o db DB.esl DB.forsig} \\
\hspace{1mm} Signer le fichier DB.forsig à la manière openssl. Noter que les standards imposent sha256 \\
\hspace{1mm} \textbf{openssl smime -sign -binary -in DB.forsig -out DB.signed -signer KEK.crt -inkey KEK.key -outform DER -md sha256} \\
\hspace{1mm} Qui produit une signature PKCS7 détachée dans DB.signed. Maintenant le placer dans le programme: \\
\hspace{1mm} \textbf{sign-efi-sig-list -a -i DB.signed -t 'Jul 21 09:39:37 BST 2012' db DB.auth} \\
\hspace{1mm} Pour supprimer une clé, simplement signer un fichier de liste de signature, donc pour produire une mise à jours de variable qui va supprime le PK: \\
\hspace{1mm} \textbf{> null.esl} \\
\hspace{1mm} Puis le signer: \\
\hspace{1mm} \textbf{sign-efi-sig-list -c PK.crt -k PK.key PK null.esl PK.auth} \\
\hspace{1mm} Utiliser UpdateVars.efi pour l'appliquer: \\
\hspace{1mm} \textbf{UpdateVars [-a] db DB.auth} \\
\hspace{1mm} où le flag -a doit être présent si le fichier DB.auth a été créé comme ajout, et absent s'il remplace la variable. \\
\end{flushleft}
\end{document}
