On May 10, 2017, at 9:18 AM, Mark Baushke <mdb%juniper.net@localhost> wrote:Eric Rescorla <ekr%rtfm.com@localhost> has brought to my attention that in More details can be found in the Internet Draft at: This refers to: I have also implemented curve25519-sha256%libssh.org@localhost key exchange as documented at: OpenSSH also implements this, and makes it available under both this name and more recently as just “curve25519-sha256”. Here, the public key values exchanged in messages like KEX_ECDH_INIT and KEX_ECDH_REPLY are opaque byte strings similar to the above. As discussed in https://tools.ietf.org/html/draft-ietf-curdle-ssh-curves-04, the final computed shared secret value is converted to an integer by taking the 32-byte point obtained by scalar multiplication and treating the bytes as a bigendian (network byte order) value, but this value is never directly sent on the wire, so I’m not sure the “mpint" encoding ever applies to it. The only values on the wire are the public keys and signature values, all of which are encoded as strings. |