SPEKEAPIv2 - Personalizzazioni e vincoli alla specifica -IF DASH - Specifiche per lo scambio di chiavi Secure Packager ed Encoder API

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

SPEKEAPIv2 - Personalizzazioni e vincoli alla specifica -IF DASH

La specifica DASH Industry Forum CPIX 2.3 supporta una serie di casi d'uso e topologie. La specifica SPEKE API v2.0 definisce sia un CPIX Profile che un for. API CPIX Per raggiungere questi due obiettivi, aderisce alle CPIX specifiche con le seguenti personalizzazioni e vincoli:

CPIXProfilo
  • SPEKE segue il flusso di lavoro Encryptor Consumer.

  • Per le chiavi di contenuto crittografate, SPEKE applica le seguenti restrizioni:

    • SPEKEnon supporta la verifica della firma digitale (XMLDSIG) per i payload di richiesta o risposta.

    • SPEKErichiede certificati RSA basati su 2048.

  • SPEKEsfrutta solo un sottoinsieme di funzionalità: CPIX

    • SPEKE omette la funzionalità UpdateHistoryItemList. Se l'elenco è presente nella risposta, SPEKE lo ignora.

    • SPEKEomette la funzionalità dei tasti root/leaf. Se l'ContentKey@dependsOnKeyattributo è presente nella risposta, lo ignora. SPEKE

    • SPEKEomette l'BitrateFilterelemento e l'VideoFilter@wcgattributo. Se questi elementi o attributi sono presenti nel CPIX payload, lo SPEKE ignora.

  • Solo gli elementi o gli attributi indicati come «Supportati» nella pagina Standard Payload Components o nella pagina del contratto di crittografia possono essere utilizzati nei CPIX documenti scambiati con la v2. SPEKE

  • Se inclusi in una CPIX richiesta dell'encryptor, tutti gli elementi e gli attributi devono riportare un valore valido nella risposta del fornitore di chiavi. CPIX In caso contrario, l'encryptor si fermerà e genererà un errore.

  • SPEKEsupporta la rotazione dei tasti con KeyPeriodFilter elementi. SPEKEutilizza solo il ContentKeyPeriod@index per tenere traccia del periodo chiave.

  • Per la HLS segnalazione, devono essere utilizzati più DRMSystem.HLSSignalingData elementi: uno con il valore di DRMSystem.HLSSignalingData@playlist attributo 'media' e l'altro con il valore di DRMSystem.HLSSignalingData@playlist attributo 'master'.

  • Al momento di richiedere le chiavi, il componente di crittografia potrebbe utilizzare l'attributo facoltativo @explicitIV dell'elemento ContentKey. Il provider di chiavi è in grado di rispondere con un IV utilizzando @explicitIV, anche se l'attributo non è incluso nella richiesta.

  • Il componente di crittografia crea l'identificatore chiave (KID), che rimane uguale per un determinato periodo di chiavi e ID di contenuti. Il provider di chiavi include KID nella risposta al documento di richiesta.

  • L'encryptor deve includere un valore per l'attributo. CPIX@contentId Quando riceve un valore vuoto per questo attributo, il fornitore della chiave restituirà un errore con la descrizione 'Missing @ 'CPIX. contentId CPIX@contentIdil valore non può essere sovrascritto dal fornitore della chiave.

    CPIX@idil valore, se non nullo, deve essere ignorato dal fornitore della chiave.

  • L'encryptor deve includere un valore per l'attributo. CPIX@version Quando riceve un valore vuoto per questo attributo, il fornitore della chiave restituirà un errore con la descrizione 'Missing @version 'CPIX. Quando si riceve una richiesta con una versione non supportata, la descrizione dell'errore restituita dal fornitore della chiave è «CPIXUnsupported @version».

    CPIX@versionil valore non può essere sovrascritto dal fornitore di chiavi.

  • L'encryptor deve includere un valore per l'ContentKey@commonEncryptionSchemeattributo per ogni chiave richiesta. Quando riceve un valore vuoto per questo attributo, il fornitore della chiave restituirà un errore con la descrizione 'Missing ContentKey @ commonEncryptionScheme for '. KID id

    Un CPIX documento unico non può combinare più valori per ContentKey@commonEncryptionScheme attributi diversi. Quando riceve una tale combinazione, il fornitore della chiave restituirà un errore con la descrizione «Combinazione @ non conforme ContentKey». commonEncryptionScheme

    Non tutti i ContentKey@commonEncryptionScheme valori sono compatibili con tutte le tecnologie. DRM Quando riceve una tale combinazione, il fornitore della chiave restituirà un errore con la descrizione «ContentKey@ commonEncryptionScheme non compatibile con DRMSystemid».

    ContentKey@commonEncryptionSchemeil valore non può essere sovrascritto dal fornitore della chiave.

  • Quando riceve valori diversi per DRMSystem@PSSH XML <pssh> un elemento DRMSystem.ContentProtectionData interno nel corpo della CPIX risposta, il criptatore si ferma e genera un errore.

API per CPIX
  • Il fornitore della chiave deve includere un valore per l'intestazione della X-Speke-User-Agent HTTP risposta.

  • Un SPEKE criptatore conforme a -compliant funge da client e invia le POST operazioni all'endpoint del fornitore di chiavi.

  • L'encryptor deve includere un valore per l'intestazione della richiesta, con la X-Speke-Version HTTP versione utilizzata con la SPEKE richiesta, formulata come. MajorVersion MinorVersion, come '2.0' per la v2.0. SPEKE Se il fornitore di chiavi non supporta la SPEKE versione utilizzata dall'encryptor per la richiesta corrente, restituirà un errore con la descrizione «SPEKEVersione non supportata» e non tenterà di elaborare il documento con la CPIX massima diligenza.

    Il valore di X-Speke-Version intestazione definito dal criptatore non può essere modificato dal fornitore della chiave nella risposta alla richiesta.

  • Quando riceve errori nel corpo della risposta, l'encryptor deve generare un errore e non riprovare la richiesta con una versione v1.0. SPEKE

    Se il fornitore della chiave non restituisce un errore ma non riesce a restituire un CPIX documento che include le informazioni obbligatorie, l'encryptor dovrebbe interrompersi e generare un errore.

La tabella seguente riassume i messaggi standard che devono essere restituiti dal fornitore di chiavi nel corpo del messaggio. Il codice di HTTP risposta in caso di errore deve essere un 4XX o un 5XX, mai un 200. Il codice di errore 422 può essere utilizzato per tutti gli errori relativi a/. SPEKE CPIX

Caso di errore Messaggio di errore

CPIX@ non contentId è definito

CPIX@ mancante contentId

CPIX@version non è definito

Manca CPIX @version

CPIX@version non è supportato

@version non supportato CPIX

ContentKey@ non commonEncryptionScheme è definito

ContentKey@ mancante commonEncryptionScheme per KID id (dove è id uguale al valore ContentKey @kid)

Più commonEncryptionScheme valori ContentKey @ utilizzati in un singolo documento CPIX

Combinazione @ non conforme ContentKey commonEncryptionScheme

ContentKey@ non commonEncryptionScheme è compatibile con la tecnologia DRM

ContentKey@ commonEncryptionScheme non compatibile con DRMSystem id (dove è id uguale al valore DRMSystem @systemId )

Il valore dell'intestazione X-Speke-Version non è una versione supportata SPEKE

Versione non SPEKE supportata

Il contratto di crittografia non è valido

Contratto di crittografia non valido

Il contratto di crittografia contraddice i vincoli relativi ai livelli DRM di sicurezza

Il contratto di CPIX crittografia richiesto non è supportato

Il contratto di crittografia non include alcun AudioFilter elemento VideoFilter or

Contratto CPIX di crittografia mancante