Skip to content

Commit 44a4fcc

Browse files
committed
age,cmd/age: improve error messages for mixed up identities/recipients
Not sure why ParseRecipients was hiding errors, when ParseIdentities doesn't. For #643
1 parent 2e0f1ef commit 44a4fcc

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

cmd/age/parse.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,9 @@ func parseRecipientsFile(name string) ([]age.Recipient, error) {
9191
warningf("recipients file %q: ignoring unsupported SSH key of type %q at line %d", name, t, n)
9292
continue
9393
}
94+
if strings.HasPrefix(line, "AGE-") {
95+
return nil, fmt.Errorf("%q: error at line %d: apparent identity found in recipients file", name, n)
96+
}
9497
// Hide the error since it might unintentionally leak the contents
9598
// of confidential files.
9699
return nil, fmt.Errorf("%q: malformed recipient at line %d", name, n)
@@ -235,6 +238,9 @@ func parseIdentities(f io.Reader) ([]age.Identity, error) {
235238
}
236239
i, err := parseIdentity(line)
237240
if err != nil {
241+
if strings.HasPrefix(line, "age1") {
242+
return nil, fmt.Errorf("error at line %d: apparent recipient found in identities file", n)
243+
}
238244
return nil, fmt.Errorf("error at line %d: %v", n, err)
239245
}
240246
ids = append(ids, i)

parse.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,7 @@ func ParseRecipients(f io.Reader) ([]Recipient, error) {
8787
}
8888
r, err := parseRecipient(line)
8989
if err != nil {
90-
// Hide the error since it might unintentionally leak the contents
91-
// of confidential files.
92-
return nil, fmt.Errorf("malformed recipient at line %d", n)
90+
return nil, fmt.Errorf("error at line %d: %v", n, err)
9391
}
9492
recs = append(recs, r)
9593
}

0 commit comments

Comments
 (0)