

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 v1: Personalizações e restrições para a especificação do DASH-IF
<a name="speke-constraints"></a>

A especificação DASH-IF CPIX, https://dashif. org/docs/DASHO -IF-CPIX-v2-0.pdf oferece suporte a vários casos de uso e topologias. A especificação da API SPEKE adere à especificação CPIX com as seguintes personalizações e restrições:
+ 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.
+ Para fluxos de trabalho de chaves rotativas, o SPEKE requer o `ContentKeyUsageRule` filtro, `KeyPeriodFilter`. O SPEKE ignora todas as outras `ContentKeyUsageRule` configurações.
+ O SPEKE omite a funcionalidade `UpdateHistoryItemList`. Se a lista estiver presente na resposta, o SPEKE vai ignorá-la.
+ O SPEKE suporta alternância de chaves. O SPEKE usa somente o `ContentKeyPeriod@index para rastrear o período chave.
+ Para oferecer suporte ao MSS PlayReady, o SPEKE usa um parâmetro personalizado sob a `DRMSystem` tag,. `SPEKE:ProtectionHeader`
+ Para o empacotamento HLS, se `URIExtXKey` estiver presente na resposta, ele deve conter os dados completos para adicionar no parâmetro de URI da tag `EXT-X-KEY` de uma lista de reprodução HLS, com nenhum outro requisito de sinalização.
+ Para a lista de reprodução HLS na tag `DRMSystem`, o SPEKE fornece os parâmetros personalizados opcionais `speke:KeyFormat` e `speke:KeyFormatVersions` para os valores dos parâmetros `KEYFORMAT` e `KEYFORMATVERSIONS` da tag `EXT-X-KEY`.

  O vetor de inicialização (IV) HLS sempre segue número do segmento, a menos que especificado explicitamente pelo operador.
+ Ao solicitar chaves, o criptografador pode usar o atributo opcional `@explicitIV` no elemento `ContentKey`. 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 servidor `KID` na resposta ao documento da solicitação.
+ O provedor de chaves pode incluir um valor para o cabeçalho da resposta `Speke-User-Agent`, para se identificar para fins de depuração.
+ O SPEKE não oferece suporte a vários controles ou chaves por conteúdo.

  O criptografador em conformidade com o SPEKE atua como um cliente e envia operações `POST` ao endpoint do provedor de chaves. O criptografador pode enviar uma solicitação `heartbeat` periódica para garantir a integridade da conexão entre o criptografador e o endpoint do provedor de chaves.