diff --git a/crypto/cipher/keyexchange.go b/crypto/cipher/keyexchange.go new file mode 100644 index 000000000..b55e81302 --- /dev/null +++ b/crypto/cipher/keyexchange.go @@ -0,0 +1,13 @@ +package cipher + +import ( + "github.com/mailchain/mailchain/crypto" +) + +type KeyExchange interface { + // EphemeralKey generates a private/public key pair. + EphemeralKey() (private crypto.PrivateKey, public crypto.PublicKey, err error) + + // SharedSecret computes a secret value from ephemeralKey private key and recipientKey public key. + SharedSecret(ephemeralKey crypto.PrivateKey, recipientKey crypto.PublicKey) ([]byte, error) +}