diff options
| author | Rose Hogenson <rosehogenson@posteo.net> | 2025-10-14 20:54:19 -0700 |
|---|---|---|
| committer | Rose Hogenson <rosehogenson@posteo.net> | 2025-10-14 20:54:19 -0700 |
| commit | b139a9ab417c53e6e0eed3438858d5e29d4cd10b (patch) | |
| tree | e4f9bd125ad559f52cf3a0ca0a30deb59e912136 | |
| parent | ff7f7c7ea6169d651d8376ab64d754fbe82aab8a (diff) | |
| download | sym-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.go | 7 |
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 } |
