@Test
    void x25519_public_key_deserialization_clears_msb() {
        var alice_priv = xecPrivFromHex("77076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c2a");
        var bob_public = xecPubFromHex( "de9edb7d7b7dc1b4d35b61c2ece435373f8343c85b78674dadfc7e146f882bcf"); // note msb toggled in last byte
        var expectedShared = "4a5d9d5ba4ce2de1728e3bf480350f25e07e21c947d19e3376f09b3c1e161742";
        byte[] sharedAliceToBob = KeyUtils.ecdh(alice_priv, bob_public);
        assertEquals(expectedShared, hex(sharedAliceToBob));
    }
RFC 7748 Section 6.1, Curve25519 Diffie-Hellman test vector
security-utils/src/test/java/com/yahoo/security/KeyUtilsTest.java