Skip to content

Commit

Permalink
Merge pull request #111 from lpiron/master
Browse files Browse the repository at this point in the history
CPIX 2.4
  • Loading branch information
lpiron authored Sep 30, 2024
2 parents 34aaf9e + cb92934 commit d672ce1
Show file tree
Hide file tree
Showing 39 changed files with 1,272 additions and 272 deletions.
575 changes: 349 additions & 226 deletions Cpix.bs.md

Large diffs are not rendered by default.

Binary file added Images/Diagram-EncryptionOneDocumentKey.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/Diagram-EncryptionSeveralDocumentKeys.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed Images/DocumentKeyStructure.png
Binary file not shown.
Binary file modified Images/ExampleWorkflow-Live.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Images/ExampleWorkflow-OnDemand.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Images/Schema-ContentKey.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Images/Schema-ContentKeyList.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Images/Schema-ContentKeyPeriod.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Images/Schema-ContentKeyPeriodList.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Images/Schema-ContentKeyUsageRule.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Images/Schema-ContentKeyUsageRuleList.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/Schema-ContentProtectionData.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Images/Schema-Cpix.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/Schema-CpixView.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Images/Schema-DRMSystem.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Images/Schema-DRMSystemList.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Images/Schema-DeliveryData.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Images/Schema-DeliveryDataList.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/Schema-DocumentKey.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/Schema-HDCPData.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Images/Schema-HLSSignalingData.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/Schema-OutputProtectionData.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed Images/Schema-TopLevel.png
Binary file not shown.
Binary file modified Images/Schema-UpdateHistoryItemList.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Images/UseCase-ClearDeliveryToOne.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Images/UseCase-DeliveryWithDrmSignaling.png
Binary file modified Images/UseCase-DeliveryWithIncrementalUpdate.png
Binary file modified Images/UseCase-DeliveryWithUsageRules.png
Binary file modified Images/UseCase-EncryptedDeliveryToMany.png
Binary file added Images/UseCase-MultiplesAssets.png
Binary file modified Images/Workflow-EncryptorConsumer-Steps.png
Binary file modified Images/Workflow-EncryptorConsumer.png
Binary file modified Images/Workflow-EncryptorProducer-Steps.png
Binary file modified Images/Workflow-EncryptorProducer.png
Binary file modified Images/Workflow-MultipleProducers-Steps.png
Binary file modified Images/Workflow-MultipleProducers.png
102 changes: 56 additions & 46 deletions XmlSchema/cpix.xsd
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2020 rel. 2 (x64) (http://www.altova.com) by licence@nagra.com (Nagravision SA Kudelski Group) -->
<xs:schema xmlns:cpix="urn:dashif:org:cpix" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" targetNamespace="urn:dashif:org:cpix" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:import namespace="http://www.w3.org/XML/1998/namespace"/>
<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>
Expand All @@ -9,9 +8,9 @@
<xs:pattern value="[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="PlaylistType" final="restriction">
<xs:simpleType name="PlaylistType" final="restriction">
<xs:restriction base="xs:string">
<xs:enumeration value="master"/>
<xs:enumeration value="multiVariant"/>
<xs:enumeration value="media"/>
</xs:restriction>
</xs:simpleType>
Expand All @@ -24,7 +23,7 @@
</xs:complexType>
<xs:complexType name="UpdateHistoryItemListType">
<xs:sequence>
<xs:element name="UpdateHistoryItem" type="cpix:UpdateHistoryItemType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="UpdateHistoryItem" type="cpix:UpdateHistoryItemType" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use="optional"/>
</xs:complexType>
Expand Down Expand Up @@ -65,20 +64,24 @@
</xs:complexType>
<xs:complexType name="ContentKeyUsageRuleListType">
<xs:sequence>
<xs:element name="ContentKeyUsageRule" type="cpix:ContentKeyUsageRuleType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="ContentKeyUsageRule" type="cpix:ContentKeyUsageRuleType" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use="optional"/>
<xs:attribute name="updateVersion" type="xs:integer" use="optional"/>
</xs:complexType>
<xs:complexType name="ContentKeyPeriodType">
<xs:attribute name="id" type="xs:ID" use="optional"/>
<xs:attribute name="index" type="xs:integer" use="optional"/>
<xs:attribute name="label" type="xs:string" use="optional"/>
<xs:attribute name="start" type="xs:dateTime" use="optional"/>
<xs:attribute name="end" type="xs:dateTime" use="optional"/>
<xs:attribute name="startOffset" type="xs:duration" use="optional"/>
<xs:attribute name="endOffset" type="xs:duration" use="optional"/>
<xs:attribute name="duration" type="xs:duration" use="optional"/>
</xs:complexType>
<xs:complexType name="ContentKeyPeriodListType">
<xs:sequence>
<xs:element name="ContentKeyPeriod" type="cpix:ContentKeyPeriodType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="ContentKeyPeriod" type="cpix:ContentKeyPeriodType" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use="optional"/>
<xs:attribute name="updateVersion" type="xs:integer" use="optional"/>
Expand All @@ -87,28 +90,35 @@
<xs:simpleContent>
<xs:extension base="xs:base64Binary">
<xs:attribute name="playlist" type="cpix:PlaylistType" use="optional"/>
<xs:attribute name="allowedCPC" type="xs:string" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="ContentProtectionDataType">
<xs:simpleContent>
<xs:extension base="xs:base64Binary">
<xs:attribute name="robustness" type="xs:string" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="DRMSystemType">
<xs:sequence>
<xs:element name="PSSH" type="xs:base64Binary" minOccurs="0"/>
<xs:element name="ContentProtectionData" type="xs:base64Binary" minOccurs="0"/>
<xs:element name="URIExtXKey" type="xs:base64Binary" minOccurs="0"/>
<xs:element name="PSSH" type="xs:base64Binary" minOccurs="0" maxOccurs="1"/>
<xs:element name="ContentProtectionData" type="cpix:ContentProtectionDataType" minOccurs="0" maxOccurs="1"/>
<xs:element name="HLSSignalingData" type="cpix:HLSSignalingDataType" minOccurs="0" maxOccurs="2"/>
<xs:element name="SmoothStreamingProtectionHeaderData" type="xs:string" minOccurs="0"/>
<xs:element name="HDSSignalingData" type="xs:base64Binary" minOccurs="0"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use="optional"/>
<xs:attribute name="updateVersion" type="xs:integer" use="optional"/>
<xs:attribute name="systemId" type="cpix:UUIDType" use="required"/>
<xs:attribute name="kid" type="cpix:UUIDType" use="required"/>
<xs:attribute name="name" type="xs:string" use="optional"/>
<xs:attribute name="HLSAllowedCPC" type="xs:string" use="optional"/>
</xs:complexType>
<xs:complexType name="DRMSystemListType">
<xs:sequence>
<xs:element name="DRMSystem" type="cpix:DRMSystemType" minOccurs="0" maxOccurs="unbounded">
<xs:element name="DRMSystem" type="cpix:DRMSystemType" minOccurs="1" maxOccurs="unbounded">
<xs:unique name="uniquePlaylistForHLSSignalingData">
<xs:selector xpath="cpix:HLSSignalingData"/>
<xs:field xpath="@playlist"/>
Expand All @@ -118,67 +128,67 @@
<xs:attribute name="id" type="xs:ID" use="optional"/>
<xs:attribute name="updateVersion" type="xs:integer" use="optional"/>
</xs:complexType>
<xs:complexType name="KeyType">
<xs:complexType name="HDCPData">
<xs:sequence>
<xs:element name="Issuer" type="xs:string" minOccurs="0"/>
<xs:element name="AlgorithmParameters" type="pskc:AlgorithmParametersType" minOccurs="0"/>
<xs:element name="KeyProfileId" type="xs:string" minOccurs="0"/>
<xs:element name="KeyReference" type="xs:string" minOccurs="0"/>
<xs:element name="FriendlyName" type="xs:string" minOccurs="0"/>
<xs:element name="Data" type="pskc:KeyDataType" minOccurs="0"/>
<xs:element name="UserId" type="xs:string" minOccurs="0"/>
<xs:element name="Policy" type="pskc:PolicyType" minOccurs="0"/>
<xs:element name="Extensions" type="pskc:ExtensionsType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="HDCPOutputProtectionData" type="xs:base64Binary" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use="optional"/>
<xs:attribute name="Algorithm" type="pskc:KeyAlgorithmType" use="optional"/>
<xs:attribute name="HLSHDCPLevel" type="xs:string" use="optional"/>
</xs:complexType>
<xs:complexType name="ContentKeyType">
<xs:complexContent>
<xs:extension base="cpix:KeyType">
<xs:attribute name="kid" type="cpix:UUIDType" use="required"/>
<xs:attribute name="explicitIV" type="xs:base64Binary" use="optional"/>
<xs:attribute name="dependsOnKey" type="cpix:UUIDType" use="optional"/>
<xs:attribute name="commonEncryptionScheme" type="xs:string" use="optional"/>
</xs:extension>
</xs:complexContent>
<xs:sequence>
<xs:element name="HDCPData" type="cpix:HDCPData" minOccurs="0" maxOccurs="1"/>
<xs:element name="Data" type="pskc:KeyDataType" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use="optional"/>
<xs:attribute name="contentId" type="xs:string" use="optional"/>
<xs:attribute name="kid" type="cpix:UUIDType" use="required"/>
<xs:attribute name="explicitIV" type="xs:base64Binary" use="optional"/>
<xs:attribute name="dependsOnKey" type="cpix:UUIDType" use="optional"/>
<xs:attribute name="commonEncryptionScheme" type="xs:string" use="optional"/>
</xs:complexType>
<xs:complexType name="ContentKeyListType">
<xs:sequence>
<xs:element name="ContentKey" type="cpix:ContentKeyType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="ContentKey" type="cpix:ContentKeyType" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use="optional"/>
<xs:attribute name="updateVersion" type="xs:integer" use="optional"/>
</xs:complexType>
<xs:complexType name="DocumentKeyType">
<xs:sequence>
<xs:element name="Data" type="pskc:KeyDataType" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use="optional"/>
<xs:attribute name="encryptsKey" type="cpix:UUIDType" use="optional"/>
</xs:complexType>
<xs:complexType name="DeliveryDataType">
<xs:sequence>
<xs:element name="DeliveryKey" type="ds:KeyInfoType"/>
<xs:element name="DocumentKey" type="cpix:KeyType"/>
<xs:element name="MACMethod" type="pskc:MACMethodType" minOccurs="0"/>
<xs:element name="Description" type="xs:string" minOccurs="0"/>
<xs:element name="SendingEntity" type="xs:string" minOccurs="0"/>
<xs:element name="SenderPointOfContact" type="xs:string" minOccurs="0"/>
<xs:element name="ReceivingEntity" type="xs:string" minOccurs="0"/>
<xs:element name="DeliveryKey" type="ds:KeyInfoType" minOccurs="1" maxOccurs="1"/>
<xs:element name="DocumentKey" type="cpix:DocumentKeyType" minOccurs="1" maxOccurs="unbounded"/>
<xs:element name="MACMethod" type="pskc:MACMethodType" minOccurs="0" maxOccurs="1"/>
<xs:element name="Description" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="SendingEntity" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="SenderPointOfContact" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="ReceivingEntity" type="xs:string" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use="optional"/>
<xs:attribute name="updateVersion" type="xs:integer" use="optional"/>
<xs:attribute name="name" type="xs:string" use="optional"/>
</xs:complexType>
<xs:complexType name="DeliveryDataListType">
<xs:sequence>
<xs:element name="DeliveryData" type="cpix:DeliveryDataType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="DeliveryData" type="cpix:DeliveryDataType" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use="optional"/>
<xs:attribute name="updateVersion" type="xs:integer" use="optional"/>
</xs:complexType>
<xs:complexType name="CpixType">
<xs:sequence>
<xs:element name="DeliveryDataList" type="cpix:DeliveryDataListType" minOccurs="0"/>
<xs:element name="ContentKeyList" type="cpix:ContentKeyListType" minOccurs="0"/>
<xs:element name="DRMSystemList" type="cpix:DRMSystemListType" minOccurs="0"/>
<xs:element name="ContentKeyPeriodList" type="cpix:ContentKeyPeriodListType" minOccurs="0"/>
<xs:element name="ContentKeyUsageRuleList" type="cpix:ContentKeyUsageRuleListType" minOccurs="0"/>
<xs:element name="UpdateHistoryItemList" type="cpix:UpdateHistoryItemListType" minOccurs="0"/>
<xs:element name="DeliveryDataList" type="cpix:DeliveryDataListType" minOccurs="0" maxOccurs="1"/>
<xs:element name="ContentKeyList" type="cpix:ContentKeyListType" minOccurs="0" maxOccurs="1"/>
<xs:element name="DRMSystemList" type="cpix:DRMSystemListType" minOccurs="0" maxOccurs="1"/>
<xs:element name="ContentKeyPeriodList" type="cpix:ContentKeyPeriodListType" minOccurs="0" maxOccurs="1"/>
<xs:element name="ContentKeyUsageRuleList" type="cpix:ContentKeyUsageRuleListType" minOccurs="0" maxOccurs="1"/>
<xs:element name="UpdateHistoryItemList" type="cpix:UpdateHistoryItemListType" minOccurs="0" maxOccurs="1"/>
<xs:element ref="ds:Signature" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use="optional"/>
Expand Down
Loading

0 comments on commit d672ce1

Please sign in to comment.