Schützen von Dateien mit DRM Version 7 oder höher
Um Dateien mit Windows Media DRM Version 7 oder höher zu schützen, verwenden Sie die IWMDRMWriter::SetDRMAttribute-Methode des Writerobjekts, um DRM-Attribute zu festlegen. Da DRM Version 7 und höher eindeutige Lizenzen für jede geschützte Datei oder jeden Satz von Dateien aktivieren, verfügt die IWMDRMWriter-Schnittstelle auch über Methoden zum Erstellen von Schlüsseln. Diese Methoden werden nur zur Vereinfachung bereitgestellt.
Führen Sie zum Schützen von ASF-Dateien mit DRM Version 7 oder höher die folgenden Schritte aus:
Verknüpfen Sie wmstubDRM.lib, und entlinken Sie bei Bedarf die Datei wmvcore.lib.
Rufen Sie die WMCreateWriter-Funktion auf, um den DRM-Writer zu erstellen. Das erste Argument ist reserviert und muss auf NULL festgelegt werden.
Legen Sie ein Profil fest, das vom Writer verwendet werden soll, indem Sie IWMWriter::SetProfile oder IWMWriter::SetProfileByID aufrufen. Sie müssen ein Profil im Writer festlegen, bevor Sie DRM-Attribute festlegen. DRM wird nur für Profile unterstützt, die die Windows Media Audio- oder Windows Media Video-Codecs verwenden.
Abrufen der IWMDRMWriter-Schnittstelle des Writerobjekts.
Rufen Sie IWMDRMWriter::SetDRMAttribute auf, und legen Sie Advanced _ _ DRM verwenden auf TRUE fest.
Wenn Sie einen neuen Schlüsselseed generieren müssen, rufen Sie IWMDRMWriter::GenerateKeySeed auf. In den meisten Fällen wird ein zuvor generierter Schlüsselwert wiederverwendt. Dieser Wert muss geheim bleiben. es wird nicht in die Datei geschrieben.
Rufen Sie IWMDRMWriter::GenerateKeyID auf, um eine Schlüssel-ID zu erstellen. Dies ist der zweite Wert, der zum Erstellen des tatsächlichen Schlüssels verwendet wird. Im Gegensatz zum Schlüssel-Seeding ist die Schlüssel-ID öffentlich und wird im DRM-Header klar in die Datei geschrieben. Erstellen Sie eine neue Schlüssel-ID für jede neue Datei, die Sie erstellen.
Rufen Sie bei Bedarf IWMDRMWriter::GenerateSigningKeyPair auf, um einen öffentlichen und privaten Schlüssel zu generieren, der zum Signieren des erweiterten DRM ASF-Headerobjekts verwendet wird. Weitere Informationen zu diesen Schlüsseln finden Sie unter IWMDRMWriter::GenerateSigningKeyPair.
Beziehen Sie bei Bedarf die Werte zum Auffüllen des digitalen Signaturobjekts des DRM-Headers. Wenn auf Ihrem System keine funktionierende Version von Windows Media Rights Manager installiert ist, müssen Sie das digitale Signaturobjekt des ASF-Dateiheaders konfigurieren, indem Sie die folgenden vier Attribute angeben, die alle von Microsoft erhalten werden müssen:
- DRM _ LASignatureRootCert
- DRM _ LASignatureCert
- DRM _ LASignatureLicSrvCert
- DRM _ LASignaturePrivKey
Wenn Sie Windows Media Rights Manager installiert haben, müssen diese Attribute nicht in Ihrer Anwendung festgelegt werden. Die DRM-Komponente ruft diese Attribute ab und verwendet sie, um den Header automatisch zu signieren. Wenn Sie eine aktivierte Version von Windows Media Rights Manager auf einem anderen Computer haben und diese Werte für digitale Signaturobjekt wiederverwenden möchten, finden Sie sie in der Registrierung. Das Lizenzserverzertifikat wird unter HKEY LOCAL MACHINE SOFTWARE Microsoft WM Rights Manager License Server Certs:cert1 gespeichert, und das Stammzertifikat wird unter _ _ \ \ \ \ \ HKEY _ LOCAL MACHINE SOFTWARE Microsoft WM Rights Manager License Server _ \ \ \ \ \ Certs:cert2 gespeichert. Wenn Sie Dateien mit DRM Version 7 schützen, müssen Sie die Werte aus diesen Registrierungsschlüsseln verwenden. Verwenden Sie für die DRM _ LASignaturePrivKey-Eigenschaft entweder GenerateSigningKeysEx (über das Windows Media Rights Manager SDK) oder den von Windows Media Rights Manager installierten Wert unter HKEY _ LOCAL MACHINE SOFTWARE Microsoft WM Rights Manager License _ \ \ \ \ Server:Info _ Cert0. Verwenden Sie für die EIGENSCHAFT DRM _ LASignatureCert entweder GenerateSigningKeysEx (über das Windows Media Rights Manager SDK) oder den wert, der von Windows Media Rights Manager unter HKEY _ LOCAL MACHINE SOFTWARE Microsoft WM Rights Manager License Server _ \ \ \ \ \ Certs:cert0 installiert wird.
Rufen Sie IWMDRMWriter::SetDRMAttribute so oft wie erforderlich auf, um das Writer-Objekt zu konfigurieren, wodurch die erforderlichen DRM-Headerattribute nach Bedarf festgelegt werden. Diese Eigenschaften bleiben für die Lebensdauer des Writerobjekts oder so lange erhalten, bis sie mit einem neuen Wert zurückgesetzt werden. Sie müssen nicht für jede neue Datei zurückgesetzt werden, die Sie erstellen.
Die folgenden Eigenschaften sind für das Writer-Objekt erforderlich:
Die folgenden Eigenschaften sind optional:
Darüber hinaus können Sie benutzerdefinierte DRM-Dateiattribute direkt mithilfe des DRM _ DRMHeader-Basisattributs angeben. Sie können ein beliebiges zusätzliches Attribut hinzufügen, z. B. "DRMHeader.RequireSAP", um zusätzliche Informationen zu kommunizieren, die vom Lizenzserver beim Erstellen der Lizenz verwendet werden. Der Lizenzserver muss im Voraus über zusätzliche Eigenschaften informiert werden, die Sie hinzufügen. Es gibt keine Möglichkeit, unbekannte Eigenschaften programmgesteuert zu finden.
Schreiben Sie die Datei mithilfe der METHODEN der IWMWriter-Schnittstelle, wie an anderer Stelle in dieser Dokumentation beschrieben. Um einen Live-DRM-Stream zu erstellen, schreiben Sie einfach in eine Netzwerksenke. Sie können auch in eine Pushsenke schreiben.
Erstellen Sie bei Bedarf eine Lizenz für die Datei mithilfe Windows Media Rights Manager. Diese Aufgabe kann auch von einem Lizenzserver eines Drittanbieters ausgeführt werden. Bei Live-DRM-Szenarien müssen Endbenutzer eine Lizenz erwerben, bevor der Stream beginnt, oder wenn sie zum ersten Mal versuchen, eine Verbindung damit herzustellen.
Hinweis: DRM wird von der x64-basierten Version dieses SDK nicht unterstützt.