As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
API SPEKE v2: Personalizações e restrições para a especificação do DASH-IF
A especificação CPIX 2.3
Perfil do CPIX
-
O SPEKE segue o fluxo de trabalho de criptografador e consumidor.
-
Para chaves de conteúdo criptografadas, o SPEKE aplica as seguintes restrições:
-
O SPEKE não oferece suporte à verificação de assinatura digital (XMLDSIG) para cargas de solicitação ou resposta.
-
O SPEKE exige 2048 certificados baseados em RSA.
-
-
O SPEKE aproveita apenas um subconjunto das funcionalidades do CPIX:
-
O SPEKE omite a funcionalidade
UpdateHistoryItemList. Se a lista estiver presente na resposta, o SPEKE vai ignorá-la. -
O SPEKE omite a funcionalidade da chave raiz/folha. Se o atributo
ContentKey@dependsOnKeyestiver presente na resposta, o SPEKE vai ignorá-la. -
O SPEKE omite o elemento
BitrateFiltere o atributoVideoFilter@wcg. Se esses elementos ou atributos estiverem presentes na carga útil do CPIX, o SPEKE a ignorará.
-
-
Somente os elementos ou atributos referenciados como “Suportados” na página Componentes de Carga Útil Padrão ou na página do contrato de criptografia podem ser usados em documentos CPIX trocados com o SPEKE v2.
-
Quando incluídos em uma solicitação CPIX pelo criptografador, todos os elementos e atributos devem conter um valor válido na resposta CPIX do provedor de chaves. Caso contrário, o criptografador deve parar e gerar um erro.
-
O SPEKE suporta a rotação de chaves com
KeyPeriodFilterelementos. O SPEKE usa apenas oContentKeyPeriod@indexpara rastrear o período chave. -
Para a sinalização HLS, vários
DRMSystem.HLSSignalingDataelementos devem ser usados: um com um valor deDRMSystem.HLSSignalingData@playlistatributo de 'media' e outro com um valor deDRMSystem.HLSSignalingData@playlistatributo de 'master'. -
Ao solicitar chaves, o criptografador pode usar o atributo opcional
@explicitIVno elementoContentKey. O provedor de chaves pode responder com um IV usando@explicitIV, mesmo se o atributo não estiver incluído na solicitação. -
O criptografador cria o identificador de chaves (
KID), que permanece o mesmo para qualquer período de chave e ID de conteúdo. O provedor de chaves inclui o servidorKIDna resposta ao documento da solicitação. -
O criptografador deve incluir um valor para o atributo
CPIX@contentId. Ao receber um valor vazio para esse atributo, o provedor da chave deve retornar um erro com a descrição “CPIX@contentId ausente”. O valorCPIX@contentIdnão pode ser substituído pelo provedor da chave.O valor
CPIX@id, se não for nulo, deve ser ignorado pelo provedor da chave. -
O criptografador deve incluir um valor para o atributo
CPIX@version. Ao receber um valor vazio para esse atributo, o provedor da chave deve retornar um erro com a descrição “CPIX@version ausente”. Ao receber uma solicitação com uma versão não compatível, a descrição do erro retornada pelo provedor da chave deve ser “CPIX@version não compatível”.O valor
CPIX@versionnão pode ser substituído pelo provedor da chave. -
O criptografador deve incluir um valor para o atributo
ContentKey@commonEncryptionSchemepara cada chave solicitada. Ao receber um valor vazio para esse atributo, o provedor da chave retornará um erro com a descrição “Missing ContentKey @ commonEncryptionScheme for KIDid”.Um documento CPIX exclusivo não pode misturar vários valores para atributos
ContentKey@commonEncryptionSchemediferentes. Ao receber essa combinação, o provedor da chave deve retornar um erro com a descrição “Não compatível ContentKey @ commonEncryptionScheme combinação”.Nem todos os valores
ContentKey@commonEncryptionSchemesão compatíveis com todas as tecnologias DRM. Ao receber essa combinação, o provedor da chave retornará um erro com a descrição 'ContentKey@ commonEncryptionScheme não compatível com DRMSystemid'.O valor
ContentKey@commonEncryptionSchemenão pode ser substituído pelo provedor da chave. -
Ao receber valores diferentes para
DRMSystem@PSSHe elementoDRMSystem.ContentProtectionDatainnerXML<pssh>no corpo da resposta CPIX, o criptografador deve parar e gerar um erro.
API para CPIX
-
O provedor da chave deve incluir um valor para o cabeçalho da resposta
X-Speke-User-AgentHTTP. -
O criptografador em conformidade com o SPEKE atua como um cliente e envia operações ao endpoint do provedor de chaves.
-
O criptografador deve incluir um valor para o cabeçalho da solicitação
X-Speke-VersionHTTP, com a versão SPEKE usada com a solicitação, formulada como. MajorVersion MinorVersion, como '2.0' para SPEKE v2.0. Se o provedor da chave não for compatível com a versão SPEKE usada pelo criptografador para a solicitação atual, ele retornará um erro com a descrição “Versão SPEKE não compatível” e não tentará processar o documento CPIX da melhor maneira possível.O valor do cabeçalho
X-Speke-Versiondefinido pelo criptografador não pode ser modificado pelo provedor da chave na resposta à solicitação. -
Ao receber erros no corpo da resposta, o criptografador deve gerar um erro e não repetir a solicitação com um versionamento do SPEKE v1.0.
Se o provedor da chave não retornar um erro, mas falhar em retornar um documento CPIX que inclua as informações obrigatórias, o criptografador deverá parar e gerar um erro.
A tabela a seguir resume as mensagens padrão que devem ser retornadas pelo provedor da chave no corpo da mensagem. O código de resposta HTTP em casos de erro deve ser 4XX ou 5XX, nunca 200. O código de erro 422 pode ser usado para todos os erros relacionados ao SPEKE/CPIX.
| Caso de erro | Mensagem de erro |
|---|---|
|
CPIX@contentId não está definido |
CPIX@contentId ausente |
|
CPIX@version não está definido |
CPIX@version ausente |
|
CPIX@version não é suportado |
CPIX@version não compatível |
|
ContentKey@ não commonEncryptionScheme está definido |
Falta ContentKey @ commonEncryptionScheme para KID |
|
Vários commonEncryptionScheme valores ContentKey @ usados em um único documento CPIX |
Combinação ContentKey @ commonEncryptionScheme não compatível |
|
ContentKey@ não commonEncryptionScheme é compatível com a tecnologia DRM |
ContentKey@ commonEncryptionScheme não compatível com DRMSystem |
|
X-Speke-Version o valor do cabeçalho não é uma versão compatível do SPEKE |
Versão de SPEKE não compatível |
|
O contrato de criptografia está malformado |
Contrato de criptografia malformado |
|
O contrato de criptografia contradiz as restrições dos níveis de segurança do DRM |
O contrato de criptografia CPIX solicitado não é compatível |
|
O contrato de criptografia não inclui VideoFilter nenhum AudioFilter elemento |
Contrato de criptografia CPIX ausente |