Using Ed25519 signing keys for encryption

Using Ed25519 signing keys for encryption

So that’s what a X25519 public key is: a u coordinate on the Montgomery curve obtained by multiplying the basepoint by a secret scalar, which is the private key. An Ed25519 public key instead is the compressed encoding of a point on the Edwards curve obtained by multiplying the basepoint by a secret scalar derived from the private key. If we use the same secret scalar to calculate both an Ed25519 and a X25519 public key, we will get two points that are birationally equivalent, so we can convert from one to the other with the maps above.

Source: blog.filippo.io