private byte[] decryptNoPrefix(final byte[] ciphertext, final byte[] contextInfo)
      throws GeneralSecurityException {
    if (ciphertext.length < encapsulatedKeyLength) {
      throw new GeneralSecurityException("Ciphertext is too short.");
    }
    byte[] info = contextInfo;
    if (info == null) {
      info = new byte[0];
    }
    byte[] encapsulatedKey = Arrays.copyOf(ciphertext, encapsulatedKeyLength);
    byte[] aeadCiphertext =
        Arrays.copyOfRange(ciphertext, encapsulatedKeyLength, ciphertext.length);
    HpkeContext context =
        HpkeContext.createRecipientContext(
            encapsulatedKey, recipientPrivateKey, kem, kdf, aead, info);
    return context.open(aeadCiphertext, EMPTY_ASSOCIATED_DATA);
  }
Hybrid Public Key Encryption (HPKE) decryption.

<p>HPKE RFC: https://www.rfc-editor.org/rfc/rfc9180.html
java_src/src/main/java/com/google/crypto/tink/hybrid/internal/HpkeDecrypt.java