DNSCurve uses Curve25519 Elliptic Curve cryptography and for Key-Establishment by Salsa20, paired with the Message Authentication Code (MAC) function Poly1305, to encrypt and authenticate DNS packets between DNS resolvers and authoritative servers. Public Keys for remote authoritative servers are placed in NS records, so recursive resolvers know whether the server supports DNSCurve. Keys begin with the magic string uz5 and are followed by a 51-byte Base32 encoding of the server's 255-bit Public Key.