summaryrefslogtreecommitdiff
path: root/shroud/secret.scm
diff options
context:
space:
mode:
Diffstat (limited to 'shroud/secret.scm')
-rw-r--r--shroud/secret.scm21
1 files changed, 11 insertions, 10 deletions
diff --git a/shroud/secret.scm b/shroud/secret.scm
index 22d2961..a43ba54 100644
--- a/shroud/secret.scm
+++ b/shroud/secret.scm
@@ -23,8 +23,8 @@
#:export (make-secret
secret?
secret-id
- secret-username
- secret-password
+ secret-contents
+ secret-ref
alist->secret
secret->alist
load-secrets
@@ -32,25 +32,26 @@
secrets-by-id))
(define-record-type <secret>
- (make-secret id username password)
+ (make-secret id contents)
secret?
(id secret-id)
- (username secret-username)
- (password secret-password))
+ (contents secret-contents))
+
+(define (secret-ref secret key)
+ "Return the secret data associated with KEY in SECRET."
+ (assoc-ref (secret-contents secret) key))
(define (alist->secret alist)
"Convert ALIST into a <secret> record."
(make-secret (assq-ref alist 'id)
- (assq-ref alist 'username)
- (assq-ref alist 'password)))
+ (assq-ref alist 'contents)))
(define (secret->alist secret)
"Convert SECRET into an alist."
(match secret
- (($ <secret> id username password)
+ (($ <secret> id contents)
`((id . ,id)
- (username . ,username)
- (password . ,password)))))
+ (contents . ,contents)))))
(define (load-secrets file)
"Load secrets from FILE, or return '() if FILE does not exist."