def _encrypt_data_key(
        self, data_key: DataKey, algorithm: AlgorithmSuite, encryption_context: Dict[Text, Text]
    ) -> NoReturn:
        """Encrypt a data key and return the ciphertext.

        :param data_key: Unencrypted data key
        :type data_key: :class:`aws_encryption_sdk.structures.RawDataKey`
            or :class:`aws_encryption_sdk.structures.DataKey`
        :param algorithm: Algorithm object which directs how this Master Key will encrypt the data key
        :type algorithm: aws_encryption_sdk.identifiers.Algorithm
        :param dict encryption_context: Encryption context to use in encryption
        :raises NotImplementedError: when called
        """
        raise NotImplementedError("CountingMasterKey does not support encrypt_data_key")
Encrypt a data key and return the ciphertext.

        :param data_key: Unencrypted data key
        :type data_key: :class:`aws_encryption_sdk.structures.RawDataKey`
            or :class:`aws_encryption_sdk.structures.DataKey`
        :param algorithm: Algorithm object which directs how this Master Key will encrypt the data key
        :type algorithm: aws_encryption_sdk.identifiers.Algorithm
        :param dict encryption_context: Encryption context to use in encryption
        :raises NotImplementedError: when called