diff options
-rw-r--r-- | gnu/installer/newt/partition.scm | 2 | ||||
-rw-r--r-- | gnu/installer/parted.scm | 4 | ||||
-rw-r--r-- | gnu/installer/user.scm | 18 | ||||
-rw-r--r-- | gnu/installer/utils.scm | 19 |
4 files changed, 23 insertions, 20 deletions
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 @@ encryption of partition ~a (label: ~a).") file-name crypt-label) (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 @@ (default #f)) (crypt-label user-partition-crypt-label (default #f)) - (crypt-password user-partition-crypt-password + (crypt-password user-partition-crypt-password ; <secret> (default #f)) (fs-type user-partition-fs-type (default 'ext4)) @@ -1183,7 +1183,7 @@ USER-PARTITION if it is encrypted, or the plain file-name otherwise." "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 <http://www.gnu.org/licenses/>. (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> - secret? - make-secret - secret-content - - <user> + #:export (<user> user make-user user-name @@ -38,16 +34,6 @@ users->configuration)) -(define-record-type <secret> - (make-secret content) - secret? - (content secret-content)) - -(set-record-type-printer! - <secret> - (lambda (secret port) - (format port "<secret>"))) - (define-record-type* <user> 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 @@ #: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 @@ #:use-module (ice-9 regex) #:use-module (ice-9 format) #:use-module (ice-9 textual-ports) - #:export (read-lines + #:export (<secret> + secret? + make-secret + secret-content + + read-lines read-all nearest-exact-integer read-percentage @@ -58,6 +65,16 @@ with-silent-shepherd)) +(define-record-type <secret> + (make-secret content) + secret? + (content secret-content)) + +(set-record-type-printer! + <secret> + (lambda (secret port) + (format port "<secret>"))) + (define* (read-lines #:optional (port (current-input-port))) "Read lines from PORT and return them as a list." (let loop ((line (read-line port)) |