

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: Componentes de carga útil padrão
<a name="standard-payload-components-v2"></a>

Por meio de uma única solicitação SPEKE, o criptografador pode solicitar várias chaves de conteúdo, juntamente com a sinalização de manifestação necessária para vários formatos de empacotamento, de acordo com o contrato de criptografia definido para um determinado conteúdo.

Para cobrir todos esses aspectos, um documento CPIX padrão é composto por três seções de lista obrigatórias, além de uma seção de lista opcional para rotação de chaves de conteúdo em tempo real.

**<cpix:CPIX><cpix: ContentKeyList > seção e elemento de nível superior**  
Esta é uma seção obrigatória, relevante para streaming ao vivo e VOD, definindo as diferentes chaves de conteúdo que precisam ser usadas pelo criptografador. O elemento `<cpix:ContentKeyList>` pode conter um ou vários elementos `<cpix:ContentKey>` secundários, cada um deles descrevendo uma chave de conteúdo distinta.

De acordo com a especificação CPIX, os valores possíveis do atributo `ContentKey@commonEncryptionScheme` são definidos na especificação Criptografia comum em arquivos de formato de mídia base ISO (ISO/IEC 23001-7:2016):
+ 'cenc': amostra completa do modo AES-CTR e criptografia de subamostra NAL de vídeo
+ 'cbc1': amostra completa do modo AES-CBC e criptografia de subamostra NAL de vídeo
+ 'cens': criptografia parcial de padrão NAL de vídeo no modo AES-CTR
+ 'cbcs': criptografia parcial de padrão NAL de vídeo no modo AES-CBC

O exemplo a seguir mostra um documento CPIX com uma única chave de conteúdo não criptografada:

```
<cpix:CPIX contentId="abc123" version="2.3" xmlns:cpix="urn:dashif:org:cpix" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc">
	<cpix:ContentKeyList>
		<cpix:ContentKey explicitIV="OFj2IjCsPJFfMAxmQxLGPw==" kid="98ee5596-cd3e-a20d-163a-e382420c6eff" commonEncryptionScheme="cbcs">
			<cpix:Data>
				<pskc:Secret>
					<pskc:PlainValue>5dGAgwGuUYu4dHeHtNlxJw==</pskc:PlainValue>
				</pskc:Secret>
			</cpix:Data>
		</cpix:ContentKey>
	</cpix:ContentKeyList>
	...
</cpix:CPIX>
```

Por padrão, as chaves de conteúdo não são criptografadas, como no exemplo abaixo. Mas a criptografia das chaves de conteúdo pode ser solicitada pelo criptografador por meio da inclusão do elemento<cpix : >. DeliveryDataList Consulte a seção Criptografia de chave de conteúdo para obter mais detalhes.


| Elemento suportado pelo SPEKE | Atributos obrigatórios | Atributos opcionais | Elementos secundários obrigatórios | Elementos secundários opcionais | 
| --- | --- | --- | --- | --- | 
|  <cpix:CPIX>  |  contentId, version, xmlns:cpix, xmlns:pskc  |  name, xmlns:enc  |  um <cpix: ContentKeyList >, um<cpix : List>, um <cpix: DRMSystem > ContentKeyUsageRuleList  |  um <cpix: DeliveryDataList >, um <cpix : >ContentKeyPeriodList  | 
|  <clix : >ContentKeyList  |  -  |  id  |  pelo menos um <cpix : >ContentKey  |  -  | 
|  <clix : >ContentKey  |  criança commonEncryptionScheme, Dados  |  id, Algorithm, explicitIV  |  um <pskc:Secret>  |  -  | 
|  <pskc:Secret>  |  PlainValue or EncryptedValue  |  ValueMAC  |  -  |  <enc: EncryptionMethod >, <enc : >CipherData  | 

**<cpix : Lista>seção DRMSystem**  
Esta é uma seção obrigatória, relevante para streaming ao vivo e VOD, definindo os diferentes sistemas DRM que precisam ser aproveitados junto com as chaves de conteúdo.

O exemplo a seguir mostra uma lista de sistemas DRM com uma única especificação de sistema PlayReady DRM:

```
<cpix:DRMSystemList>
	<cpix:DRMSystem kid="98ee5596-cd3e-a20d-163a-e382420c6eff" systemId="9a04f079-9840-4286-ab92-e65be0885f95">
		<cpix:HLSSignalingData playlist="media">HicXmbZ2m[...]4==</cpix:HLSSignalingData>
		<cpix:HLSSignalingData playlist="master">HicXmbZ2m[...]jEi</cpix:HLSSignalingData>
		<cpix:ContentProtectionData>t7WwH24FI[...]YCC</cpix:ContentProtectionData>
		<cpix:PSSH>FFFFanBzc[...]A==</cpix:PSSH>
		<cpix:SmoothStreamingProtectionHeaderData>s5RrJ12HL[...]UBB</cpix:SmoothStreamingProtectionHeaderData>
	</cpix:DRMSystem>
</cpix:DRMSystemList>
```

Para obter uma lista completa do sistema DRMIDs, consulte a [seção Proteção de conteúdo do repositório de identificadores](https://dashif.org/identifiers/content_protection/) DASH-IF.


| Elemento suportado pelo SPEKE | Atributos obrigatórios | Atributos opcionais | Elementos secundários obrigatórios | Elementos secundários opcionais | 
| --- | --- | --- | --- | --- | 
|  <cpix : Lista>DRMSystem  |  -  |  id  |  pelo menos um <cpix : >DRMSystem  |  -  | 
|  <clix : >DRMSystem  |  kid, systemId  |  id, name, PSSH  |  -  |  ContentProtectionData, SmoothStreamingProtectionHeaderData, dois <cpix: HLSSignaling Data> elementos com valor de atributo de playlist diferente  | 

 `DRMSystem@PSSH` é obrigatório se o encapsulamento ISO-BMFF for aplicado a segmentos de mídia. O elemento `DRMSystem.ContentProtectionData` innerXML `<pssh>` é utilizado pelo criptografador somente para fins de sinalização de manifesto.

Se `DRMSystem@PSSH` estiver presente e `DRMSystem.ContentProtectionData` contiver um `<pssh>` elemento innerXML, ambos os valores devem ser idênticos.

Se a sinalização `DRMSystem` deve ser transmitida em manifestos HLS, ambos os elementos `<cpix:HLSSignalingData playlist="media">` e `<cpix:HLSSignalingData playlist="master">` devem ser incluídos na solicitação e na resposta do CPIX.

**<cpix : >seção ContentKeyPeriodList**  
Essa é uma seção opcional, relevante somente para transmissão em tempo real, que define os períodos criptográficos aplicados ao conteúdo.

O elemento `<cpix:ContentKeyPeriodList>` pode conter um ou vários elementos `<cpix:ContentKeyPeriod>` secundários, cada um deles descrevendo uma chave de conteúdo distinta. Usar UUIDs como parte do valor do atributo id é uma abordagem comumente usada.

```
<cpix:ContentKeyPeriodList>
	<cpix:ContentKeyPeriod id="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f" index="1" />
</cpix:ContentKeyPeriodList>
```


| Elemento suportado pelo SPEKE | Atributos obrigatórios | Atributos opcionais | Elementos secundários obrigatórios | Elementos secundários opcionais | 
| --- | --- | --- | --- | --- | 
|  <clix : >ContentKeyPeriodList  |  -  |  id  |  pelo menos um <cpix : >ContentKeyPeriod  |  -  | 
|  <clix : >ContentKeyPeriod  |  id, index  |  -  |  -  |  -  | 

Se forem usados períodos criptográficos, as chaves de criptografia também precisarão ser anexadas a um dos períodos criptográficos no documento CPIX, conforme mostrado na seção abaixo.

**<cpix : >seção ContentKeyUsageRuleList**  
Esta é uma seção obrigatória, relevante para streaming ao vivo e VOD, que define como as diferentes chaves de conteúdo protegerão as faixas dentro do streamset e durante os períodos criptográficos.

O elemento <cpix: ContentKeyUsageRuleList > pode conter um ou vários elementos secundários <cpix: ContentKeyUsageRule >, cada um deles descrevendo as faixas às quais uma determinada chave de conteúdo é aplicada pelo criptografador, potencialmente durante um período criptográfico específico. É necessário que pelo menos um elemento <cpix: AudioFilter > ou um <cpix: VideoFilter > esteja presente em um elemento<cpix : >. ContentKeyUsageRule

O exemplo a seguir mostra uma lista simples com apenas uma regra aplicando uma única chave de conteúdo a todas as faixas de áudio e vídeo durante um período criptográfico específico.

```
<cpix:ContentKeyUsageRuleList>
	<cpix:ContentKeyUsageRule kid="98ee5596-cd3e-a20d-163a-e382420c6eff" intendedTrackType="ALL">
		<cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/>
		<cpix:AudioFilter />
		<cpix:VideoFilter />
	</cpix:ContentKeyUsageRule>
</cpix:ContentKeyUsageRuleList>
```


| Elemento suportado pelo SPEKE | Atributos obrigatórios | Atributos opcionais | Elementos secundários obrigatórios | Elementos secundários opcionais | 
| --- | --- | --- | --- | --- | 
|  <clix : >ContentKeyUsageRuleList  |  -  |  id  |  pelo menos um <cpix : >ContentKeyUsageRule  |  -  | 
|  <clix : >ContentKeyUsageRule  |  criança, intendedTrackType  |  -  |  pelo menos um <cpix: AudioFilter > ou um <cpix : >(\$1) VideoFilter  |  <clix : >KeyPeriodFilter  | 
|  <clix : >KeyPeriodFilter  |  periodId  |  -  |  -  |  -  | 
|  <clix : >AudioFilter  |  -  |  minChannels, maxChannels  |  -  |  -  | 
|  <clix : >VideoFilter  |  -  |  minPixels, maxPixels, hdr, minFps, maxFps  |  -  |  -  | 

 *(\$1) Para obter uma explicação detalhada sobre o uso de uma ou várias chaves de conteúdo para proteger uma ou várias faixas em um streamset, consulte a seção Documentação do [Contrato de Criptografia](encryption-contract-v2.md)*. 