Vérification et initialisation

Vous devez effectuer les étapes suivantes pour vérifier que la transchiffrement est autorisée et initialiser un objet qui déchiffrera le contenu :

  1. Si vous avez déjà l’ID de clé du contenu, passez à l’étape 5.
  2. Appelez la fonction WMCreateEditor pour créer un objet d’éditeur de métadonnées et obtenir une instance de l’interface IWMMetadataEditor de cet objet.
  3. Appelez IWMMetadataEditor :: QueryInterface pour récupérer une instance de l’interface IWMDRMEditor .
  4. Appelez IWMDRMEditor :: GetDRMProperty pour accéder à la propriété DRM _ DRMHeader _ KeyId .
  5. Initialisez les API étendues du client Windows Media DRM en appelant la fonction WMDRMStartup .
  6. Appelez la fonction WMDRMCreateProtectedProvider pour créer un objet fournisseur sécurisé et obtenir une instance de l’interface IWMDRMProvider de cet objet.
  7. Appelez IWMDRMProvider :: CreateObject pour créer un objet de gestion de licences et obtenir une instance de son interface IWMDRMLicenseManagement .
  8. Appelez IWMDRMLicenseManagement :: CreateLicenseEnumeration, en passant l’ID de la clé et le droit qui régit les actions à effectuer avec le contenu après qu’il a été chiffré. Cet appel permet de récupérer une instance de l’interface IWMDRMLicense qui peut être utilisée pour énumérer toutes les licences correspondantes.
  9. Appelez IWMDRMLicense :: GetInclusionList pour récupérer la liste des systèmes de protection de contenu (CPS) autorisés, comme spécifié par l’émetteur de licence.
  10. Analyser la liste d’inclusion pour confirmer que le GUID de la sortie CPS est autorisé par la licence.
  11. Si le GUID d’exportation souhaité ne figure pas dans la liste d’inclusion, appelez IWMDRMLicense :: GetNext pour accéder à la prochaine licence applicable (le cas échéant) et répétez les étapes 9 et 10. Si aucune licence n’a le GUID souhaité dans sa liste d’inclusion, l’exportation ne peut pas être effectuée.
  12. Appelez IWMDRMLicense :: CreateSecureDecryptor pour créer un objet déchiffreur. Transmettez le certificat d’application d’exportation. Cet appel fournira un pointeur vers une instance de l’interface IWMDRMDecrypt de l’objet déchiffreur et un objet binaire contenant la valeur initiale. Seule la constante RC4 du _ _ type de _ protection DRM Windows Media est prise en charge en tant qu’argument du paramètre dwFlags pour l’instant.
  13. Utilisez le schéma de chiffrement OAEP RSA pour déchiffrer le vecteur d’initialisation.
  14. Utilisez la bibliothèque d’analyse ASF fournie par Microsoft lorsque vous entrez dans le contrat d’exportation DRM Windows Media, afin de localiser le décalage en octets pour chaque charge utile.

Exportation du contenu compressé