private static XYZT fromBytesNegateVarTime(byte[] s) throws GeneralSecurityException {
      long[] x = new long[Field25519.LIMB_CNT];
      long[] y = Field25519.expand(s);
      long[] z = new long[Field25519.LIMB_CNT];
      z[0] = 1;
      long[] t = new long[Field25519.LIMB_CNT];
      long[] u = new long[Field25519.LIMB_CNT];
      long[] v = new long[Field25519.LIMB_CNT];
      long[] vxx = new long[Field25519.LIMB_CNT];
      long[] check = new long[Field25519.LIMB_CNT];
      Field25519.square(u, y);
      Field25519.mult(v, u, Ed25519Constants.D);
      Field25519.sub(u, u, z); // u = y^2 - 1
      Field25519.sum(v, v, z); // v = dy^2 + 1

      long[] v3 = new long[Field25519.LIMB_CNT];
      Field25519.square(v3, v);
      Field25519.mult(v3, v3, v); // v3 = v^3
      Field25519.square(x, v3);
      Field25519.mult(x, x, v);
      Field25519.mult(x, x, u); // x = uv^7

      pow2252m3(x, x); // x = (uv^7)^((q-5)/8)
      Field25519.mult(x, x, v3);
      Field25519.mult(x, x, u); // x = uv^3(uv^7)^((q-5)/8)

      Field25519.square(vxx, x);
      Field25519.mult(vxx, vxx, v);
      Field25519.sub(check, vxx, u); // vx^2-u
      if (isNonZeroVarTime(check)) {
        Field25519.sum(check, vxx, u); // vx^2+u
        if (isNonZeroVarTime(check)) {
          throw new GeneralSecurityException("Cannot convert given bytes to extended projective "
              + "coordinates. No square root exists for modulo 2^255-19");
        }
        Field25519.mult(x, x, Ed25519Constants.SQRTM1);
      }

      if (!isNonZeroVarTime(x) && (s[31] & 0xff) >> 7 != 0) {
        throw new GeneralSecurityException("Cannot convert given bytes to extended projective "
            + "coordinates. Computed x is zero and encoded x's least significant bit is not zero");
      }
      if (getLsb(x) == ((s[31] & 0xff) >> 7)) {
        neg(x, x);
      }

      Field25519.mult(t, x, y);
      return new XYZT(new XYZ(x, y, z), t);
    }
Decodes {@code s} into an extented projective point.
See Section 5.1.3 Decoding in https://tools.ietf.org/html/rfc8032#section-5.1.3
java_src/src/main/java/com/google/crypto/tink/internal/Ed25519.java