aboutsummaryrefslogtreecommitdiffstats
path: root/internal
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 /internal
parentAvoid an extra copy in ASCII decode (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.
Diffstat (limited to 'internal')
-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
}