33 lines
663 B
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
|
|
}
|