code: def encrypt(self,
                  encryption_context_key: str,
                  plaintext: str) -> Tuple[bytes, Sequence[str]]:
          
          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
docs: 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.