Verificação e inicialização
[O recurso associado a esta página, Windows Media Format 11 SDK, é um recurso herdado. Ele foi substituído por Leitor de Origem e Gravador de Coletor. O Leitor de Origem e o Gravador do Coletor foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use o Leitor de Origem e o Gravador do Coletor em vez do SDK do Windows Media Format 11, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]
Você deve executar as seguintes etapas para verificar se a transscriptografia é permitida e inicializar um objeto que descriptografará o conteúdo:
- Se você já tiver a ID da chave para o conteúdo, pule para a etapa 5.
- Chame a função WMCreateEditor para criar um objeto editor de metadados e obter uma instância da interface IWMMetadataEditor desse objeto.
- Chame IWMMetadataEditor::QueryInterface para obter uma instância da interface IWMDRMEditor .
- Chame IWMDRMEditor::GetDRMProperty para obter a propriedade DRM_DRMHeader_KeyID .
- Inicialize as APIs Estendidas do Cliente DRM do Windows Media chamando a função WMDRMStartup .
- Chame a função WMDRMCreateProtectedProvider para criar um objeto de provedor seguro e obter uma instância da interface IWMDRMProvider desse objeto.
- Chame IWMDRMProvider::CreateObject para criar um objeto de gerenciamento de licenças e obter uma instância de sua interface IWMDRMLicenseManagement .
- Chame IWMDRMLicenseManagement::CreateLicenseEnumeration, passando a ID da chave e o direito que rege as ações a serem executadas com o conteúdo depois que ele é transscriptografado. Essa chamada recuperará uma instância da interface IWMDRMLicense que pode ser usada para enumerar por meio de quaisquer licenças correspondentes.
- Chame IWMDRMLicense::GetInclusionList para recuperar a lista de CPS (sistemas de proteção de conteúdo) autorizados, conforme especificado pelo emissor da licença.
- Analise a lista de inclusão para confirmar se o GUID do CPS de saída é permitido pela licença.
- Se o GUID de exportação desejado não estiver na lista de inclusão, chame IWMDRMLicense::GetNext para obter a próxima licença aplicável (se houver) e repita as etapas 9 e 10. Se nenhuma licença tiver o GUID desejado em sua lista de inclusão, a exportação não poderá ser executada.
- Chame IWMDRMLicense::CreateSecureDecryptor para criar um objeto descriptografia. Passe o certificado do aplicativo de exportação. Essa chamada fornecerá um ponteiro para uma instância da interface IWMDRMDecrypt do objeto descriptografador e um objeto binário que contém a semente. Somente a constante DRM_PROTECTION_TYPE_RC4 do Windows Media tem suporte como um argumento para o parâmetro dwFlags no momento.
- Use o esquema de criptografia OAEP RSA para descriptografar o vetor de inicialização.
- Use a biblioteca de análise do ASF fornecida pela Microsoft quando você inserir o contrato de exportação de DRM do Windows Media para localizar o deslocamento em bytes para cada conteúdo.
Tópicos relacionados