Udostępnij przez


Weryfikacja i inicjowanie

[Funkcja skojarzona z tą stroną, windows Media Format 11 SDK, jest starszą funkcją. Został zastąpiony przez Source Reader i składnik zapisywania ujścia . czytnika źródeł i składników zapisywania ujścia zostały zoptymalizowane pod kątem systemów Windows 10 i Windows 11. Firma Microsoft zdecydowanie zaleca, aby nowy kod używał czytnika źródeł i modułu zapisywania ujścia zamiast zestawu SDK windows Media Format 11, jeśli jest to możliwe. Firma Microsoft sugeruje, że istniejący kod, który używa starszych interfejsów API, należy przepisać go do korzystania z nowych interfejsów API, jeśli to możliwe.]

Należy wykonać następujące kroki, aby sprawdzić, czy transszyfracja jest dozwolona i zainicjować obiekt, który odszyfruje zawartość:

  1. Jeśli masz już identyfikator klucza zawartości, przejdź do kroku 5.
  2. Wywołaj funkcję WMCreateEditor, aby utworzyć obiekt edytora metadanych i uzyskać wystąpienie interfejsu IWMMetadataEdi tor.
  3. Wywołaj IWMMetadataEditor::QueryInterface, aby uzyskać wystąpienie interfejsu IWMDRMEditor.
  4. Wywołaj IWMDRMEditor::GetDRMProperty, aby uzyskać właściwość DRM_DRMHeader_KeyID.
  5. Zainicjuj rozszerzone interfejsy API klienta DRM systemu Windows Media, wywołując funkcję WMDRMStartup.
  6. Wywołaj funkcję WMDRMCreateProtectedProvider, aby utworzyć bezpieczny obiekt dostawcy i uzyskać wystąpienie interfejsu IWMDRMProvider.
  7. Wywołaj IWMDRMProvider::CreateObject, aby utworzyć obiekt zarządzania licencjami i uzyskać wystąpienie jego interfejsu IWMDRMLicenseManagement.
  8. Wywołaj IWMDRMLicenseManagement::CreateLicenseEnumeration, przekazując identyfikator klucza i prawo do akcji, które mają być wykonywane z zawartością po jej transszyfrowaniu. To wywołanie spowoduje pobranie wystąpienia interfejsu IWMDRMLicense, który może służyć do wyliczania za pomocą dowolnych pasujących licencji.
  9. Wywołaj IWMDRMLicense::GetInclusionList, aby pobrać listę autoryzowanych systemów ochrony zawartości (CPS) określonych przez wystawcę licencji.
  10. Przeanalizuj listę dołączania, aby potwierdzić, że identyfikator GUID danych wyjściowych CPS jest dozwolony przez licencję.
  11. Jeśli żądany identyfikator GUID eksportu nie znajduje się na liście dołączania, wywołaj IWMDRMLicense::GetNext, aby uzyskać kolejną odpowiednią licencję (jeśli istnieje) i powtórz kroki 9 i 10. Jeśli żadna licencja nie ma żądanego identyfikatora GUID na liście dołączania, nie można wykonać eksportu.
  12. Wywołaj IWMDRMLicense::CreateSecureDecryptor, aby utworzyć obiekt odszyfrowywania. Przekaż certyfikat aplikacji eksportu. To wywołanie zapewni wskaźnik do wystąpienia obiektu odszyfrowywania IWMDRMDecrypt interfejsu i obiektu binarnego zawierającego inicjator. Obecnie tylko stała DRM_PROTECTION_TYPE_RC4 usługi Windows Media jest obsługiwana jako argument dla parametru dwFlags.
  13. Użyj schematu szyfrowania OAEP RSA, aby odszyfrować wektor inicjowania.
  14. Użyj biblioteki analizy ASF dostarczonej przez firmę Microsoft podczas wprowadzania w umowie eksportowania drM systemu Windows Media, aby zlokalizować przesunięcie w bajtach dla każdego ładunku.

eksportowanie skompresowanej zawartości