bloat/encrypt.go

33 lines
663 B
Go

package bloat
import (
"bytes"
"fmt"
"filippo.io/age"
"filippo.io/age/armor"
)
func (b *Bloat[T]) encrypt(plain []byte) ([]byte, error) {
buf := &bytes.Buffer{}
armorWriter := armor.NewWriter(buf)
w, err := age.Encrypt(armorWriter, b.Enc.Recipient()) // my wrapper doesn't support multiple recipients yet
if err != nil {
return []byte{}, err
}
_, err = w.Write(plain)
if err != nil {
fmt.Println(err)
return []byte{}, err
}
if err := w.Close(); err != nil {
fmt.Println("failed to close")
return []byte{}, err
}
if err := armorWriter.Close(); err != nil {
return []byte{}, err
}
// return armored bytes
return buf.Bytes(), err
}