def METHOD_NAME(self, hn_pub_key, fresh=True):
    """
    generate_sharedkey - Generates a shared keystream based on a UE ephemeral keypair (regenerated
    if fresh is True) and the HN public key
    Args:
        hn_pub_key: hn_pub_key
        fresh: True
    Returns: None
    """
    if fresh:
        # regenerate a new UE ephemeral keypair
        self.EC.generate_keypair()
    # get the UE ephemeral pubkey
    self.ephemeral_key = self.EC.get_pubkey()
    # generate the shared keystream by mixing the UE ephemeral key with HN pubkey
    self.shared_key = KDF(self.ephemeral_key, self.EC.METHOD_NAME(hn_pub_key))