aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRose Hogenson <rosehogenson@posteo.net>2025-10-14 20:54:19 -0700
committerRose Hogenson <rosehogenson@posteo.net>2025-10-14 20:54:19 -0700
commitb139a9ab417c53e6e0eed3438858d5e29d4cd10b (patch)
treee4f9bd125ad559f52cf3a0ca0a30deb59e912136
parentff7f7c7ea6169d651d8376ab64d754fbe82aab8a (diff)
downloadsym-b139a9ab417c53e6e0eed3438858d5e29d4cd10b.tar.zst
Avoid even more copies in ascii decode
This way the contents get written directly into the base64 decoder's internal buffer, instead of first being buffered inside the bufio.Reader.
-rw-r--r--internal/sym/dec.go7
1 files changed, 2 insertions, 5 deletions
diff --git a/internal/sym/dec.go b/internal/sym/dec.go
index 93130a4..d9480bb 100644
--- a/internal/sym/dec.go
+++ b/internal/sym/dec.go
@@ -32,7 +32,7 @@ func decryptBinary(w io.Writer, r io.Reader, password string) error {
}
func decrypt(w io.Writer, r io.Reader, password string) error {
- bufReader := bufio.NewReader(r)
+ bufReader := bufio.NewReaderSize(r, 81)
b, err := bufReader.Peek(1)
if err != nil {
if err == io.EOF {
@@ -47,10 +47,7 @@ func decrypt(w io.Writer, r io.Reader, password string) error {
return errors.New("invalid input")
}
for {
- _, err := bufReader.ReadBytes('\n')
- if err != nil {
- return err
- }
+ bufReader.ReadLine()
if b, err := bufReader.Peek(1); err != nil || b[0] != '-' {
break
}