From e58efa14c1497fa27433cd4d71ad5824e376b1a1 Mon Sep 17 00:00:00 2001 From: Vivien Kraus Date: Thu, 29 Dec 2022 12:07:56 +0100 Subject: Hourra pour le hachage avec gnutls+guile ! MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- guix.scm | 12 +++++ init.org | 6 +-- ...er-des-donn\303\251es-avec-gnutls-et-guile.org" | 60 +++++++++++++++++++++ org/images/twinky.jpg | Bin 0 -> 356134 bytes 4 files changed, 75 insertions(+), 3 deletions(-) create mode 100644 guix.scm create mode 100644 "org/_posts/2022-12-29-on-peut-maintenant-hacher-des-donn\303\251es-avec-gnutls-et-guile.org" create mode 100644 org/images/twinky.jpg diff --git a/guix.scm b/guix.scm new file mode 100644 index 0000000..b59fea4 --- /dev/null +++ b/guix.scm @@ -0,0 +1,12 @@ +(use-modules (vkraus packages blog) + (guix packages) + (guix gexp)) + +(package + (inherit blog) + (source + (local-file "." "blog-source" + #:recursive? #t + #:select? + (lambda (file stat) + (not (string-suffix? ".git" file)))))) diff --git a/init.org b/init.org index 08b6489..f41dd17 100644 --- a/init.org +++ b/init.org @@ -73,7 +73,7 @@ méta-données. :body-only t) #+end_src -** Projets contenant les fichiers annexes +** Projet contenant les fichiers annexes Ce projet contient des fichiers qui n’ont pas besoin d’être touchés par org-mode. @@ -82,13 +82,13 @@ par org-mode. #+begin_src emacs-lisp :eval no :noweb no-export ("blog-annexes" :base-directory <> - :base-extension "css\\|pdf\\|png\\|svg\\|scm" + :base-extension "css\\|pdf\\|png\\|jpg\\|svg\\|scm" :publishing-directory <> :recursive t :publishing-function org-publish-attachment) #+end_src -** Projets contenant les tangles +** Projet contenant les tangles Lorsqu’il y a du code dans les articles, il faut sauvegarder le code. #+name: configuration-tangle diff --git "a/org/_posts/2022-12-29-on-peut-maintenant-hacher-des-donn\303\251es-avec-gnutls-et-guile.org" "b/org/_posts/2022-12-29-on-peut-maintenant-hacher-des-donn\303\251es-avec-gnutls-et-guile.org" new file mode 100644 index 0000000..d6592ae --- /dev/null +++ "b/org/_posts/2022-12-29-on-peut-maintenant-hacher-des-donn\303\251es-avec-gnutls-et-guile.org" @@ -0,0 +1,60 @@ +#+options: toc:nil + +#+begin_export html +--- +layout: default +title: On peut maintenant hacher des données avec GnuTLS + Guile ! +excerpt: La cryptographie, c’est compliqué. En Guile Scheme, ça l’est encore plus ! Heureusement, on peut utiliser GnuTLS en Guile. +--- +#+end_export + +Chers amis des chats et du lisp, bonjour. Je me présente : Twinky. Je +reprends ce blog afin de continuer le travail de mon prédécesseur : +vous transmettre la passion des chats et du développement +informatique. + +[[file:../../../code/images/twinky.jpg]] + +Aujourd’hui, je vous informe que l’humain a agrémenté le code de +gnutls/guile [[https://gitlab.com/gnutls/guile/-/merge_requests/5][avec les fonctions de hachage]]. Ou devrais-je dire, les +fonctions de chachage ? À vous de juger. Le programme [[exemple-hash]] +montre ce qu’on peut faire avec ! Sympa, non ? + +#+name: exemple-hash +#+caption: Exemple d’utilisation de la fonction de hachage +#+begin_src scheme :eval no + (use-modules (gnutls) (ice-9 match) (rnrs bytevectors) + (srfi srfi-26)) + + (define chiffre->hex + (cute string-ref "0123456789abcdef" <>)) + + (define (chiffres->hex . chiffres) + (list->string (map chiffre->hex chiffres))) + + (define (octet->hex octet) + (call-with-values + (cute euclidean/ octet 16) + chiffres->hex)) + + (define octets->hex + (cute map octet->hex <>)) + + (define (->hex octets) + (string-join (octets->hex (bytevector->u8-list octets)) "")) + + (let* ((message "Bonjour les amis des chats !") + (condensat (hash-direct digest/sha256 (string->utf8 message)))) + (format #t "Quand je hache « ~a », j’obtiens : + ,#+begin_example + ~a + ,#+end_example" + message (->hex condensat))) +#+end_src + +#+begin_src shell :eval yes :exports results :results output drawer :noweb yes + guile -s <(cat <> + EOF + ) +#+end_src diff --git a/org/images/twinky.jpg b/org/images/twinky.jpg new file mode 100644 index 0000000..bbeb2d0 Binary files /dev/null and b/org/images/twinky.jpg differ -- cgit v1.2.3