def encrypt(self,
                encryption_context_key: str,
                plaintext: str) -> Tuple[bytes, Sequence[str]]:
        """
        Encrypt a plaintext string value.

        The return value will include *both* the resulting binary ciphertext and the
        master key ids used for encryption. In the likely case that the encryptor was initialized
        with master key aliases, these master key ids returned will represent the unaliased key.

        """
        encryption_context = dict(
            microcosm=encryption_context_key,
        )

        cyphertext, header = encrypt(
            source=plaintext,
            materials_manager=self.materials_manager,
            encryption_context=encryption_context,
        )

        key_ids = [
            self.unpack_key_id(encrypted_data_key.key_provider)
            for encrypted_data_key in header.encrypted_data_keys
        ]
        return cyphertext, key_ids
Encrypt a plaintext string value.

        The return value will include *both* the resulting binary ciphertext and the
        master key ids used for encryption. In the likely case that the encryptor was initialized
        with master key aliases, these master key ids returned will represent the unaliased key.