summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVivien Kraus <vivien@planete-kraus.eu>2022-12-29 12:07:56 +0100
committerVivien Kraus <vivien@planete-kraus.eu>2022-12-29 16:03:34 +0100
commite58efa14c1497fa27433cd4d71ad5824e376b1a1 (patch)
treedf103062e7b7797c320aac4bd542249c0196d076
parenta37d792b4840a3810c688fd254b3f745d0082c51 (diff)
Hourra pour le hachage avec gnutls+guile !
-rw-r--r--guix.scm12
-rw-r--r--init.org6
-rw-r--r--org/_posts/2022-12-29-on-peut-maintenant-hacher-des-données-avec-gnutls-et-guile.org60
-rw-r--r--org/images/twinky.jpgbin0 -> 356134 bytes
4 files changed, 75 insertions, 3 deletions
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 <<srcdir(file="org")>>
- :base-extension "css\\|pdf\\|png\\|svg\\|scm"
+ :base-extension "css\\|pdf\\|png\\|jpg\\|svg\\|scm"
:publishing-directory <<builddir(file="code")>>
: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ées-avec-gnutls-et-guile.org b/org/_posts/2022-12-29-on-peut-maintenant-hacher-des-données-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ées-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
+ <<exemple-hash>>
+ EOF
+ )
+#+end_src
diff --git a/org/images/twinky.jpg b/org/images/twinky.jpg
new file mode 100644
index 0000000..bbeb2d0
--- /dev/null
+++ b/org/images/twinky.jpg
Binary files differ