From 4814ec284f8a2870e6457c05f414ad31df4e3f57 Mon Sep 17 00:00:00 2001 From: Josselin Poiret Date: Thu, 22 Sep 2022 15:12:44 +0200 Subject: installer: Move to utils and use it for crypt passwords. * gnu/installer/user.scm (, secret?, make-secret, secret-content): Move to utils.scm. * gnu/installer/utils.scm (, secret?, make-secret, secret-content): Moved from user.scm. * gnu/installer/newt/partition.scm (prompt-luks-passwords): Make password a . * gnu/installer/parted.scm (luks-format-and-open): Unwrap secret. Signed-off-by: Mathieu Othacehe --- gnu/installer/newt/partition.scm | 2 +- gnu/installer/parted.scm | 4 ++-- gnu/installer/user.scm | 18 ++---------------- gnu/installer/utils.scm | 19 ++++++++++++++++++- 4 files changed, 23 insertions(+), 20 deletions(-) (limited to 'gnu/installer') diff --git a/gnu/installer/newt/partition.scm b/gnu/installer/newt/partition.scm index e7a97810ac..eda34e0461 100644 --- a/gnu/installer/newt/partition.scm +++ b/gnu/installer/newt/partition.scm @@ -188,7 +188,7 @@ (define (prompt-luks-passwords user-partitions) (if (string=? password confirmation) (user-partition (inherit user-part) - (crypt-password password)) + (crypt-password (make-secret password))) (begin (run-error-page (G_ "Password mismatch, please try again.") diff --git a/gnu/installer/parted.scm b/gnu/installer/parted.scm index 84fdbe24fb..51ba2bebd6 100644 --- a/gnu/installer/parted.scm +++ b/gnu/installer/parted.scm @@ -148,7 +148,7 @@ (define-record-type* (default #f)) (crypt-label user-partition-crypt-label (default #f)) - (crypt-password user-partition-crypt-password + (crypt-password user-partition-crypt-password ; (default #f)) (fs-type user-partition-fs-type (default 'ext4)) @@ -1183,7 +1183,7 @@ (define (luks-format-and-open user-partition) "Format and open the encrypted partition pointed by USER-PARTITION." (let* ((file-name (user-partition-file-name user-partition)) (label (user-partition-crypt-label user-partition)) - (password (user-partition-crypt-password user-partition))) + (password (secret-content (user-partition-crypt-password user-partition)))) (call-with-luks-key-file password (lambda (key-file) diff --git a/gnu/installer/user.scm b/gnu/installer/user.scm index 224040530c..2866e4520f 100644 --- a/gnu/installer/user.scm +++ b/gnu/installer/user.scm @@ -17,17 +17,13 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu installer user) + #:use-module (gnu installer utils) #:use-module (guix records) #:use-module (guix read-print) #:use-module (srfi srfi-1) #:use-module (srfi srfi-9) #:use-module (srfi srfi-9 gnu) - #:export ( - secret? - make-secret - secret-content - - + #:export ( user make-user user-name @@ -38,16 +34,6 @@ (define-module (gnu installer user) users->configuration)) -(define-record-type - (make-secret content) - secret? - (content secret-content)) - -(set-record-type-printer! - - (lambda (secret port) - (format port ""))) - (define-record-type* user make-user user? diff --git a/gnu/installer/utils.scm b/gnu/installer/utils.scm index fb62fb8896..5fd2e2d425 100644 --- a/gnu/installer/utils.scm +++ b/gnu/installer/utils.scm @@ -23,6 +23,8 @@ (define-module (gnu installer utils) #:use-module (guix build utils) #:use-module (guix i18n) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-9) + #:use-module (srfi srfi-9 gnu) #:use-module (srfi srfi-19) #:use-module (srfi srfi-34) #:use-module (srfi srfi-35) @@ -33,7 +35,12 @@ (define-module (gnu installer utils) #:use-module (ice-9 regex) #:use-module (ice-9 format) #:use-module (ice-9 textual-ports) - #:export (read-lines + #:export ( + secret? + make-secret + secret-content + + read-lines read-all nearest-exact-integer read-percentage @@ -58,6 +65,16 @@ (define-module (gnu installer utils) with-silent-shepherd)) +(define-record-type + (make-secret content) + secret? + (content secret-content)) + +(set-record-type-printer! + + (lambda (secret port) + (format port ""))) + (define* (read-lines #:optional (port (current-input-port))) "Read lines from PORT and return them as a list." (let loop ((line (read-line port)) -- cgit v1.2.3