Démarrage rapide : Chiffrer et déchiffrer du texte à l’aide du Kit de développement logiciel (SDK) MIP (C#)

Ce guide de démarrage rapide vous montre comment utiliser davantage de kits SDK de protection MIP. En utilisant l’un des modèles de protection que vous avez répertoriés dans le guide de démarrage rapide précédent, vous utilisez un gestionnaire Protection pour chiffrer du texte ad hoc. La classe de gestionnaire Protection expose différentes opérations pour l’application et la suppression de la protection.

Conditions préalables

Si ce n’est déjà fait, veillez à remplir les conditions préalables suivantes avant de continuer :

  • Démarrage rapide complet : Répertoriez d’abord les modèles de protection (C#), qui créent une solution de démarrage Visual Studio pour répertorier les modèles de protection disponibles pour l’utilisateur authentifié. Ce guide de démarrage rapide « Chiffrer et déchiffrer du texte » s’appuie sur le précédent.
  • Optionnellement: passez en revue les concepts des gestionnaires de protection dans le SDK MIP.

Ajouter une logique pour définir et obtenir un modèle de protection

Ajoutez une logique pour chiffrer du texte ad hoc à l’aide de l’objet moteur de protection.

  1. Dans Explorateur de solutions, ouvrez le fichier .cs dans votre projet qui contient l’implémentation de la Main() méthode. Il a par défaut le même nom que le projet qui le contient, que vous avez spécifié lors de la création du projet.

  2. Vers la fin de l’élément Main() body, à l’endroit où vous vous êtes arrêté dans le démarrage rapide précédent, insérez le code suivant :

    //Set text to encrypt and template ID
    string inputText = "<Sample-text>";
    string templateId = "<template-id>";
    //Create a template based publishing descriptor
    ProtectionDescriptor protectionDescriptor = new ProtectionDescriptor(templateId);
    
    //Create publishing settings using protection descriptor
    PublishingSettings publishingSettings = new PublishingSettings(protectionDescriptor);
    
    //Generate Protection Handler for publishing
    var publishingHandler = Task.Run(async() => await protectionEngine.CreateProtectionHandlerForPublishingAsync(publishingSettings)).Result;
    
    //Encrypt text using Publishing handler
    long bufferSize = publishingHandler.GetProtectedContentLength(inputText.Length, true);
    byte[] inputTextBuffer = Encoding.ASCII.GetBytes(inputText);
    byte[] encryptedTextBuffer = new byte[bufferSize];
    publishingHandler.EncryptBuffer(0, inputTextBuffer, encryptedTextBuffer, true);
    Console.WriteLine("Original text: {0}", inputText);
    Console.WriteLine("Encrypted text: {0}", Encoding.UTF8.GetString(encryptedTextBuffer));
    
    //Create a Protection handler for consumption using the same publishing license
    var serializedPublishingLicense = publishingHandler.GetSerializedPublishingLicense();
    PublishingLicenseInfo plInfo = PublishingLicenseInfo.GetPublishingLicenseInfo(serializedPublishingLicense, mipContext);
    ConsumptionSettings consumptionSettings = new ConsumptionSettings(plInfo);
    var consumptionHandler = protectionEngine.CreateProtectionHandlerForConsumption(consumptionSettings);
    
    //Use the handler to decrypt the encrypted text
    long buffersize = encryptedTextBuffer.Length;
    byte[] decryptedBuffer = new byte[bufferSize];
    var bytesDecrypted = consumptionHandler.DecryptBuffer(0, encryptedTextBuffer, decryptedBuffer, true);
    byte[] OutputBuffer = new byte[bytesDecrypted];
    for (int i = 0; i < bytesDecrypted; i++){
       OutputBuffer[i] = decryptedBuffer[i];
    }
    
    Console.WriteLine("Decrypted content: {0}", Encoding.UTF8.GetString(OutputBuffer));
    Console.WriteLine("Press a key to quit.");
    Console.ReadKey();
    
    
  3. Vers la fin de Main(), recherchez le bloc d’arrêt de l’application créé par le premier guide de démarrage rapide et ajoutez les lignes du gestionnaire :

    // Application Shutdown
    publishingHandler = null;
    consumptionHandler = null;
    protectionEngine = null;
    protectionProfile = null;
    mipContext = null;
    
  4. Remplacez les valeurs d’espace réservé dans le code source en utilisant les valeurs suivantes :

    Espace réservé Valeur
    <exemple de texte> Exemple de texte que vous souhaitez chiffrer, par exemple : My secure text.
    <identifiant-modèle> Un ID de modèle copié depuis la sortie de la console dans le démarrage rapide précédent, par exemple : bb7ed207-046a-4caf-9826-647cff56b990.

Concevoir et tester l’application

Générez et testez votre application cliente.

  1. Utilisez Ctrl+Maj+B (Build Solution) pour générer votre application cliente. Si vous n’avez pas d’erreurs de build, utilisez F5 (Démarrer le débogage) pour exécuter votre application.

  2. Si votre projet génère et s’exécute correctement, l’application peut demander l’authentification via MSAL chaque fois que le SDK appelle votre AcquireToken() méthode. Si des informations d’identification mises en cache existent déjà, MSAL ne vous invite pas à vous connecter, et l’application affiche la liste des étiquettes, suivie des informations sur l’étiquette appliquée et le fichier modifié.

 Original content: My secure text
 Encrypted content: c?_hp???Q??+<?
 Decrypted content: My secure text
 Press a key to quit.

Étapes suivantes