Protection des fichiers avec DRM version 7 ou ultérieure
[La fonctionnalité associée à cette page, le Kit de développement logiciel (SDK) Windows Media Format 11, est une fonctionnalité héritée. Il a été remplacé par lecteur source et enregistreur récepteur. Le lecteur source et l’enregistreur récepteur ont été optimisés pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise le lecteur source et l’enregistreur récepteur au lieu du Kit de développement logiciel (SDK) Windows Media Format 11, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]
Pour protéger les fichiers avec Windows Media DRM version 7 ou ultérieure, utilisez la méthode IWMDRMWriter::SetDRMAttribute de l’objet writer pour définir des attributs DRM. Étant donné que drm version 7 et versions ultérieures activent des licences uniques pour chaque fichier protégé ou jeu de fichiers, l’interface IWMDRMWriter a également des méthodes pour créer des clés. Ces méthodes ne sont fournies qu’à des fins pratiques.
Pour protéger les fichiers ASF à l’aide de DRM version 7 ou ultérieure, procédez comme suit :
Lien vers WMStubDRM.lib et, si nécessaire, dissocier wmvcore.lib.
Appelez la fonction WMCreateWriter pour créer l’enregistreur DRM. Le premier argument est réservé et doit être défini sur NULL.
Définissez un profil que l’enregistreur doit utiliser en appelant IWMWriter::SetProfile ou IWMWriter::SetProfileByID. Vous devez définir un profil dans l’enregistreur avant de définir des attributs DRM. DRM est pris en charge uniquement pour les profils qui utilisent les codecs Windows Media Audio ou Windows Media Video
Obtenez l’interface IWMDRMWriter de l’objet writer.
Appelez IWMDRMWriter::SetDRMAttribute et définissez Use_Advanced_DRM sur TRUE.
Si vous devez générer une nouvelle valeur initiale de clé, appelez IWMDRMWriter::GenerateKeySeed. Dans la plupart des cas, vous réutiliserez une graine de clé qui a été générée précédemment. Cette valeur doit rester secrète ; il n’est pas écrit dans le fichier.
Appelez IWMDRMWriter::GenerateKeyID pour créer un ID de clé, qui est la deuxième valeur utilisée pour créer la clé réelle. Contrairement à la clé initiale, l’ID de clé est public et est écrit dans le fichier dans l’en-tête DRM en clair. Créez un ID de clé pour chaque nouveau fichier que vous créez.
Appelez IWMDRMWriter::GenerateSigningKeyPair si nécessaire pour générer une clé publique et privée qui sera utilisée pour signer l’objet ADVANCED DRM ASF Header. Pour plus d’informations sur ces clés, consultez IWMDRMWriter::GenerateSigningKeyPair.
Si nécessaire, obtenez les valeurs pour remplir l’objet de signature numérique de l’en-tête DRM. Si vous n’avez pas de version opérationnelle de Windows Media Rights Manager installée sur votre système, vous devez configurer l’objet de signature numérique de l’en-tête de fichier ASF en spécifiant les quatre attributs suivants, qui doivent tous être obtenus auprès de Microsoft :
Si Windows Media Rights Manager est installé, il n’est pas nécessaire de définir ces attributs dans votre application. Le composant DRM récupère ces attributs et les utilise pour signer automatiquement l’en-tête. Si vous disposez d’une version activée de Windows Media Rights Manager sur un autre ordinateur et que vous souhaitez réutiliser ces valeurs d’objet de signature numérique, vous pouvez les trouver dans le Registre. Le certificat du serveur de licences est stocké sous HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WM Rights Manager\License Server\Certs:cert1 et le certificat racine est stocké sous HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WM Rights Manager\License Server\Certs:cert2. Lorsque vous protégez des fichiers avec DRM version 7, vous devez utiliser les valeurs de ces clés de Registre. Pour la propriété DRM_LASignaturePrivKey, utilisez GenerateSigningKeysEx (via le Kit de développement logiciel (SDK) Windows Media Rights Manager ou réutilisez la valeur installée par Windows Media Rights Manager sous HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WM Rights Manager\License Server:Info_Cert0. Pour la propriété DRM_LASignatureCert , utilisez GenerateSigningKeysEx (via le Kit de développement logiciel (SDK) Windows Media Rights Manager) ou la valeur installée par Windows Media Rights Manager sous HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WM Rights Manager\License Server\Certs:cert0.
Appelez IWMDRMWriter::SetDRMAttribute autant de fois que nécessaire pour configurer l’objet writer, ce qui définit les attributs d’en-tête DRM requis si nécessaire. Ces propriétés persistent pendant la durée de vie de l’objet writer ou jusqu’à ce qu’elles soient réinitialisées avec une nouvelle valeur. Ils n’ont pas besoin d’être réinitialisés pour chaque nouveau fichier que vous créez.
Les propriétés suivantes sont requises par l’objet writer :
Les propriétés suivantes sont facultatives :
En outre, vous pouvez spécifier des attributs de fichier DRM définis par l’utilisateur directement à l’aide de l’attribut de base DRM_DRMHeader . Vous pouvez ajouter n’importe quel attribut supplémentaire de votre choix, tel que « DRMHeader.RequireSAP », par exemple, afin de communiquer des informations supplémentaires qui seront utilisées par le serveur de licences lors de la création de la licence. Le serveur de licences doit être informé à l’avance des propriétés supplémentaires que vous ajoutez. Il n’existe aucun moyen de découvrir des propriétés inconnues par programmation.
Écrivez le fichier à l’aide des méthodes d’interface IWMWriter , comme décrit ailleurs dans cette documentation. Pour créer un flux DRM en direct, il vous suffit d’écrire dans un récepteur réseau. Vous pouvez également écrire dans un récepteur push.
Si nécessaire, créez une licence pour le fichier à l’aide de Windows Media Rights Manager. Cette tâche peut également être effectuée par un serveur de licences tiers. Pour les scénarios drm en direct, les utilisateurs finaux devront obtenir une licence soit avant le début du flux, soit au moment où ils tentent de s’y connecter pour la première fois.
Note La gestion des droits numériques n’est pas prise en charge par la version x64 de ce Kit de développement logiciel (SDK).
Rubriques connexes