github.com/code-to-go/safepool.lib@v0.0.0-20221205180519-ee25e63c226e/security/eccrypt.go (about) 1 package security 2 3 import ( 4 "github.com/code-to-go/safepool.lib/core" 5 6 eciesgo "github.com/ecies/go/v2" 7 ) 8 9 func EcEncrypt(identity Identity, data []byte) ([]byte, error) { 10 pk, err := eciesgo.NewPublicKeyFromBytes(identity.EncryptionKey.Public) 11 if core.IsErr(err, "cannot convert bytes to secp256k1 public key: %v") { 12 return nil, err 13 } 14 data, err = eciesgo.Encrypt(pk, data) 15 if core.IsErr(err, "cannot encrypt with secp256k1: %v") { 16 return nil, err 17 } 18 return data, err 19 } 20 21 func EcDecrypt(identity Identity, data []byte) ([]byte, error) { 22 data, err := eciesgo.Decrypt(eciesgo.NewPrivateKeyFromBytes(identity.EncryptionKey.Private), data) 23 if core.IsErr(err, "cannot decrypt with secp256k1: %v") { 24 return nil, err 25 } 26 return data, nil 27 }