@Test
  public void testCurveMultWithMbs_ignoresMsbAndDoesNotChangeInput() throws Exception {
    byte[] kOriginal = new byte[Field25519.FIELD_LEN];
    kOriginal[0] = 9;
    kOriginal[31] = (byte) 0x80; // set MSB

    byte[] k = Arrays.copyOf(kOriginal, Field25519.FIELD_LEN);
    byte[] e = Arrays.copyOf(kOriginal, Field25519.FIELD_LEN);
    e[0] &= (byte) 248;
    e[31] &= (byte) 127;
    e[31] |= (byte) 64;

    long[] x = new long[Field25519.LIMB_CNT + 1];

    Curve25519.curveMult(x, e, k);
    expect
        .that(Hex.encode(Field25519.contract(x)))
        .isEqualTo("422c8e7a6227d7bca1350b3e2bb7279f7897b87bb6854b783c60e80311ae3079");
    expect.that(k).isEqualTo(kOriginal);
  }
1st iteration test in Section 5.2 of RFC 7748. https://tools.ietf.org/html/rfc7748, but with
the MSB set.
java_src/src/test/java/com/google/crypto/tink/internal/Curve25519Test.java