

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# SPEKE API v1 - Personnalisations et contraintes liées à la spécification DASH-IF
<a name="speke-constraints"></a>

La spécification DASH-IF CPIX, https://dashif. org/docs/DASH-IF-CPIX-v2-0.pdf prend en charge un certain nombre de cas d'utilisation et de topologies. La spécification de l'API SPEKE est conforme à la spécification CPIX avec les personnalisations et contraintes suivantes :
+ SPEKE suit le flux de travail d'Encryptor Consumer.
+ Pour les clés de contenu chiffrées, SPEKE applique les restrictions suivantes :
  + SPEKE ne prend pas en charge la vérification de signature numérique (XMLDSIG) pour les charges utiles de demande ou de réponse.
  + SPEKE nécessite 2048 certificats basés sur la norme RSA.
+ Pour la rotation des flux de travail clés, SPEKE a besoin du `ContentKeyUsageRule` filtre. `KeyPeriodFilter` SPEKE ignore tous les autres `ContentKeyUsageRule` paramètres.
+ SPEKE omet cette fonctionnalité. `UpdateHistoryItemList` Si la liste est présente dans la réponse, SPEKE l'ignore.
+ SPEKE prend en charge la rotation des touches. SPEKE utilise uniquement le `ContentKeyPeriod@index pour suivre la période clé.
+ Pour prendre en charge le MSS PlayReady, SPEKE utilise un paramètre personnalisé sous la `DRMSystem` balise,. `SPEKE:ProtectionHeader`
+ Pour l'emballage HLS, si `URIExtXKey` est présent dans la réponse, il doit contenir toutes les données à ajouter dans le paramètre URI de la balise `EXT-X-KEY` d'une liste de lecture HLS, sans aucune autre exigence de signalement.
+ Pour la playlist HLS, sous la `DRMSystem` balise, SPEKE fournit les paramètres personnalisés optionnels `speke:KeyFormat` et`speke:KeyFormatVersions`, pour les valeurs de la balise, `KEYFORMATVERSIONS` les paramètres `KEYFORMAT` et. `EXT-X-KEY`

  Le vecteur d'initialisation (IV) HLS suit toujours le numéro de segment, sauf s'il est explicitement spécifié par l'opérateur.
+ Lors de la demande de clés, le chiffreur peut utiliser l'attribut facultatif `@explicitIV` sur l'élément `ContentKey`. Le fournisseur de clés peut répondre avec un vecteur d'initialisation à l'aide de `@explicitIV`, même si l'attribut n'est pas inclus dans la requête.
+ Le chiffreur crée l'identifiant de clé (`KID`), qui reste le même quels que soient l'ID de contenu et la durée d'utilisation des clés. Le fournisseur de clés inclut `KID` dans sa réponse au document de demande.
+ Le fournisseur de clés peut contenir une valeur pour l'en-tête de réponse `Speke-User-Agent`, qui lui permet de s'identifier à des fins de débogage.
+ SPEKE ne prend actuellement pas en charge plusieurs pistes ou touches par contenu.

  Le crypteur compatible Speke agit en tant que client et envoie les `POST` opérations au point de terminaison du fournisseur clé. Le chiffreur peut envoyer une requête `heartbeat` périodique afin de s'assurer que la connexion entre le chiffreur et le point de terminaison du fournisseur de clés est saine.