@Override
    public byte[] decap(byte[] enc, XECPrivateKey skR) {
        var pkE = deserializePublicKey(enc);
        byte[] dh = KeyUtils.ecdh(skR, pkE);

        byte[] pkRm = serializePublicKey(KeyUtils.extractX25519PublicKey(skR));
        byte[] kemContext = concat(enc, pkRm);

        return extractAndExpand(dh, kemContext);
    }
Section 4.1 DH-Based KEM (DHKEM):

<pre>
def Decap(enc, skR):
  pkE = DeserializePublicKey(enc)
  dh = DH(skR, pkE)

  pkRm = SerializePublicKey(pk(skR))
  kem_context = concat(enc, pkRm)

  shared_secret = ExtractAndExpand(dh, kem_context)
  return shared_secret
</pre>
security-utils/src/main/java/com/yahoo/security/hpke/DHKemX25519HkdfSha256.java