SMPTE (the Society of Motion Picture and Television Engineers) is an internationally-recognized standards developing organization. Headquartered and incorporated in the United States of America, SMPTE has members in over 80 countries on six continents. SMPTEβs Engineering Documents, including Standards, Recommended Practices, and Engineering Guidelines, are prepared by SMPTEβs Technology Committees. Participation in these Committees is open to all with a bona fide interest in their work. SMPTE cooperates closely with other standards-developing organizations, including ISO, IEC and ITU. SMPTE Engineering Documents are drafted in accordance with the rules given in its Standards Operations Manual.
At the time of publication no notice had been received by SMPTE claiming patent rights essential to the implementation of this Engineering Document. However, attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. SMPTE shall not be held responsible for identifying any or all such patent rights.
This document was prepared by Technology Committee 27C.
The following summarizes the changes from the previous edition of this document:
Copyright Β© 2024, Society of Motion Picture and Television Engineers. All rights reserved. No part of this material may be reproduced, by any means whatsoever, without the prior written permission of the Society of Motion Picture and Television Engineers.
This specification defines a Key Delivery Message (KDM) for use in Digital Cinema (D-Cinema) systems. The KDM has been designed to deliver security parameters and usage rights between D-Cinema content processing centers (e.g., from post production to distribution, or from distribution to exhibition). The KDM carries fundamentally three information types:
The KDM is based on the D-Cinema Generic Extra-Theater Message (ETM) format (SMPTE ST 430-3). It uses XML to represent the information about the content keys and TDLs, and provides security using standardized XML encryption and signature primitives. The KDM message uses X.509 digital certificates, specified in SMPTE ST 430-2, to provide authentication and trust.
Normative text is text that describes elements of the design that are indispensable or contains the conformance language keywords: "shall", "should", or "may". Informative text is text that is potentially helpful to the user, but not indispensable, and can be removed, changed, or added editorially without affecting interoperability. Informative text does not contain any conformance keywords.
All text in this document is, by default, normative, except: the Introduction, any clause explicitly labeled as "Informative" or individual paragraphs that start with "Note:"
The keywords "shall" and "shall not" indicate requirements strictly to be followed in order to conform to the document and from which no deviation is permitted.
The keywords, "should" and "should not" indicate that, among several possibilities, one is recommended as particularly suitable, without mentioning or excluding others; or that a certain course of action is preferred but not necessarily required; or that (in the negative form) a certain possibility or course of action is deprecated but not prohibited.
The keywords "may" and "need not" indicate courses of action permissible within the limits of the document.
The keyword "reserved" indicates a provision that is not defined at this time, shall not be used, and may be defined in the future. The keyword "forbidden" indicates "reserved" and in addition indicates that the provision will never be defined in the future.
A conformant implementation according to this document is one that includes all mandatory provisions ("shall") and, if implemented, all recommended provisions ("should") as described. A conformant implementation need not implement optional provisions ("may") and need not implement them as described.
Unless otherwise specified, the order of precedence of the types of normative information in this document shall be as follows: Normative prose shall be the authoritative definition; Tables shall be next; then formal languages; then figures; and then any other language forms.
The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.
For the purposes of this document, the terms and definitions given in the following documents and the additional terms and definitions apply:
This standard presents a specification for the KDM for use in a D-Cinema system. The D-Cinema KDM is normally sent:
D-Cinema systems require that content keys, key usage time window (key parameters) and βtrusted equipmentβ information (Trusted Device List or TDL) be communicated to exhibition facilities. The KDM carries all the critical information required to enable content decryption according to a baseline interoperable security standard. The basic form of the KDM is shown in Figure 1.
Access to the full information payload of the KDM requires knowledge of the targeted recipientβs private key. Having this key, the legitimate recipient may unlock and validate both encrypted and plaintext information contents that are carried. As is explained further in the appropriate sections of this document, the structure of the KDM has been designed to allow this without the recipient having stores of root certificates. To preserve intended security, full KDM information access should only take place within a secure environment (e.g., within a D-Cinema Secure Processing Block). KDMs can, however, be authenticated by insecure devices if such devices have copies of the root certificate of the entity that created and signed the KDM.
The KDM uses XML to represent the information about content keys and provides security using the XML Encryption and XML Signature primitives. To facilitate efficient processing with hardware security chips, the KDM individually encrypts each content key (along with other information) with RSA, and is structured to allow KDMs to be processed by devices that have limited resources of physically secure memory.
The KDM message is a particular instance of the generic XML security wrapper defined by the D-Cinema Generic Extra-Theater Message Format (SMPTE ST 430-3) and uses digital certificates defined by the D-Cinema Digital Certificate specification (SMPTE ST 430-2). This document defines the characteristics that are specific to the KDM, and should be followed in combination with SMPTE ST 430-3, which in turn references SMPTE ST 430-2.
The relationship between the KDM and the Composition Playlist (CPL) is shown in Figure 2.
Each CPL is identified by a globally unique value (a UUID as defined
in IETF RFC 4122) that appears in the element
named Id in the top-level XML element for a CPL. There
are other elements in the CPL that also incorporate the abbreviation
βIdβ, such as the identifier for a track file, though these are not
the identifier of the whole CPL itself. The KDM contains an element
named
CompositionPlaylistId whose value matches the
UUID of the CPL for which it carries content keys. The CPL
identifies the (optional) content key associated with each
track file by a UUID in an element
called KeyId. The KDM has matching elements
called KeyId. An unencrypted list of
the KeyId values that are carried in the KDM
appears in the first part of the KDM. The actual content key
values (and their matching KeyId) appear in an
encrypted portion of the KDM that can only be decrypted by
the intended recipient (typically a Security Manager in an
exhibition facility).
A KDM is an ETM instance which has in
the RequiredExtensions element a child element
named KDMRequiredExtensions (defined below),
and which also makes use of
the AuthenticatedPrivate element of the ETM to
store content keys.
The KDMRequiredExtensions element contains
information that must be visible without decryption in order
to properly handle the KDM within D-Cinema systems. The
information made available in this element includes a list
of the Content Key Ids (but not the value of those keys) in
the message.
The AuthenticatedPrivate portion contains a
collection of content keys each encrypted in
an EncryptedKey element. These RSA encrypted
elements also include the KeyId and validity
dates for each content key. The
optional EncryptedData element defined
in SMPTE ST 430-3 is not used by the KDM. A
KDM has a single recipient, so all the EncryptedKey elements
can be decrypted with the same RSA private key.
The Signature element defined
in SMPTE ST 430-3 carries the signerβs
certificate chain and protects the integrity and
authenticity of the AuthenticatedPublic portion
and the AuthenticatedPrivate portion (both
plaintext and ciphertext
versions). The Signature section is not
authenticated, though it is believed if an attacker made any
beneficial modifications to the Signature
section, then the authentication of the other sections would
fail.
A single KDM can carry multiple content keys for the same
content (the same CompositionPlaylistId), and a
Composition Playlist may require content keys that are
carried in multiple KDMs. For example, a separate KDM could
be used to deliver content keys for region-specific dialog
tracks.
The KDM extends the ETM by including
the KDMRequiredExtensions element in
its RequiredExtensions element. The normative
schema is defined in Annex B. The
information in the AuthenticatedPublic element
of the ETM (and thus, KDM) is digitally signed, and trust in
the signature can be verified using the certificate chain in
the
Signature portion. This element is not encrypted, so any
entity that has access to the message can extract this
information. The word βpublicβ that appears in the XML label
for this element means that any entity that receives the
message can view this portion.
The certificate chain is part of the information that is protected by the digital signature, which reduces the risk of an attacker who is able to create a small number of legitimate certificates (e.g., through social engineering). The following sections describe the elements in this portion.
The MessageType element is defined
in SMPTE ST 430-3. In a KDM, this element shall
contain the following URI:
http://www.smpte-ra.org/430-1/2006/KDM#kdm-key-type
NOTE ββ
The MessageType
value http://www.smpte-ra.org/430-1/2006/KDM#kdm-key-type
is legal and correct, but, in the event a future revision of
the KDM specification requires a revision to
the MessageType value,
the MessageType value should follow the
pattern http://www.smpte-ra.org/430-1/2006/KDM
and match the target namespace of the schema.
The RequiredExtensions element of the KDM
shall contain exactly
one KDMRequiredExtensions element, as defined
in Annex B. The KDMRequiredExtensions element
shall have the following child elements:
The Recipient element identifies the
certificate associated with the intended recipient of this
KDM. The public key identified in this certificate is used
to encrypt keys and other information in the
AuthenticatedPrivate element of the KDM. To
uniquely identify the certificate,
the Recipient element shall contain two
elements β X509IssuerSerial and
X509SubjectName. The X509IssuerSerial
element identifies the name of the Certificate Authority
(CA) that issued the certificate,
called X509IssuerName, and the unique serial
number assigned by the CA,
called X509SerialNumber.
The X509SubjectName element shall contain the
X.509 subject distinguished name found in the
certificate. The X.509 distinguished name values in
X509IssuerName and X509SubjectName elements shall be
compliant with W3C XML Signature Syntax and Processing.
This element contains a machine-readable identifier for the Rights Ownerβs content (such as a Composition Playlist). It is a 128-bit UUID represented in βurn:uuid:β format when used with XML (IETF RFC 4122).
This is an informational element that is a copy of the
definitive value that appears in the RSA protected
EncryptedKey structure. It may be ignored by
mechanisms that process the EncryptedKey
element.
The ContentTitleText element shall contain a
human-readable title for the composition; e.g., When Pigs Will
Fly II. It is strictly meant as a display hint to the
user. The optional language attribute is
an IETF RFC 3066 language code and indicates the
language used. If the language attribute is not present, the value
of the element shall be treated as if the language attribute
were en.
This element, if present, shall contain a certificate thumbprint
(defined in SMPTE ST 430-2) that supports
authentication of the content as an authorized version (e.g.,
through a Composition Playlist
[SMPTE ST 429-7]). This element may be absent at the
discretion of the KDM creator (who acts on behalf of the rights
owner), but it is part of the RequiredExtensions
element because compliant receiving equipment is required to
understand and process it when present.
NOTE 1 ββ If this element is present, then it is intended that the recipient crosscheck the certificate chain for the signer of the CPL against this value. Specifically, one of the certificates in the signer chain of the CPL should have a certificate thumbprint that matches this element in the KDM.
NOTE 2 ββ
This element facilitates the business requirement of
allowing an exhibitor to show content produced by a wide
range of studios without needing to have a business
relationship with all those studios (e.g., without needing
to know the root certificates for all studios). The
exhibitor has a relationship with a set of distributors
(and knows their root certificates), and the distributors
in turn have relationships with studios. To support
business flexibility,
the ContentAuthenticator is not necessarily
the thumbprint of the studioβs root certificate.
NOTE 3 ββ Of course, nothing precludes an exhibitor from knowing the root certificates of specific studios and using those certificates as part of validating the CPL.
This element specifies the time before which the content keys
contained in this KDM are not valid. The time shall be 25
characters in the form of a UTC date-time timestamp
as specified by IETF RFC 3339. Timestamps shall not
include fractional seconds (IETF RFC 3339
time-secfrac). Timestamps shall not use the
value Z in the time-offset field. It is
possible for a separate KDM to provide a different time window for
the same content keys (e.g., to allow a pre-view showing, or to
extend an engagement).
This is an informational element that is a copy of the definitive
value that appears in the RSA protected EncryptedKey
element. It may be ignored by mechanisms that process
the EncryptedKey element. The time windows of all
content keys shall be the same in the RSA protected blocks.
This element specifies the time after which the content keys
contained in this KDM are not valid. The time shall be 25
characters in the form of a UTC date-time timestamp
as specified by IETF RFC 3339. Timestamps shall not
include fractional seconds (IETF RFC 3339
time-secfrac). Timestamps shall not use the
value Z in the time-offset field. It is
possible for a separate KDM to provide a different time window for
the same keys (e.g., to allow a pre-view showing, or to extend an
engagement).
This is an informational element that is a copy of the definitive
value that appears in the RSA protected EncryptedKey
element. It may be ignored by mechanisms that process
the EncryptedKey element. The time windows of all
content keys shall be the same in the RSA protected blocks.
This element shall contain an unordered list of one or
more TypedKeyId elements, which are defined below. This
is an informational element that is a copy of the
definitive values that appear in the RSA protected
EncryptedKey elements
(see 7.2). It may be ignored by
mechanisms that process the EncryptedKey element.
KeyIds are 128-bit UUIDs that shall be represented
in βurn:uuid:β format when they appear as an XML value
(IETF RFC 4122). The KeyId element
uniquely identifies the content key. All keys shall be for use
with the assets referenced by the Composition Playlist
identified by the CompositionPlaylistId element. As
shown below, it shall be used to identify the content key used
in encrypting D-Cinema assets, as defined
by SMPTE ST 429-6. It shall be represented by a
UUID IETF RFC 4122.
A TypedKeyId is a compound element consisting of
a KeyType element and
a KeyId. The KeyType shall be a string
of characters, further constrained as described
below. The KeyType distinguishes keys targeted to
different types of devices (e.g., image media decryptor, sound
media decryptor). The KeyID shall be as defined
in 6.3.9.2. Binding
a KeyType to each KeyId assists in
defending against cross-system attacks.
The KeyType element shall contain a symbol
composed of four (4) characters from the set of 52 upper
and lower case ASCII letters A-Z (0x41-0x5A) and a-z
(0x61-0x7A).
The KeyType element shall have an
optional scope attribute, which shall be a URI
value identifying the normative reference which defines the four
character key type identifier contained within the element. The
default value of the scope attribute shall be the
value http://www.smpte-ra.org/430-1/2006/KDM#kdm-key-type,
which shall be associated with the following set of key type
identifiers:
| Byte String (hexadecimal notation) | Character String | Description |
|---|---|---|
4D.44.49.4B |
MDIK |
Image essence key |
4D.44.41.4B |
MDAK |
Sound essence key |
4D.44.53.4B |
MDSK |
Subtitle essence key |
46.4D.49.4B |
FMIK |
Image forensic marking key |
46.4D.41.4B |
FMAK |
Sound forensic marking key |
NOTE 1 ββ Receiving equipment is contemplated to use the information in this element to restrict delivery of key information to devices which serve the intended D-Cinema roles. However, the normative behavior of receiving equipment is outside the scope of this document.
The scope attribute with the
value http://www.smpte-ra.org/430-1/2017/KDM#kdm-key-type
shall be associated with the following KeyType values:
| Byte String (hexadecimal notation) | Character String | Description |
|---|---|---|
4D.44.58.31 |
MDX1 |
Aux Data Type 1 key |
4D.44.58.32 |
MDX2 |
Aux Data Type 2 key |
NOTE 2 ββ The MDX1 and MDX2 values allow two distinct sets of security policies to be associated with essence carried in Aux Data Track Files (see SMPTE ST 429-14), based on the nature of this essence. Specifically, MDX1 is intended to signal that the plaintext essence (potentially forensically marked unless forensic marking is disabled per 6.3.10.2) is transmitted without restrictions within the exhibition environment. In contrast, MDX2 is intended to signal that the plaintext essence (potentially forensically marked unless forensic marking is disabled per 6.3.10.2) is transmitted over encrypted links within the exhibition environment. Conformance to these security policies is not specified here and is left to other documents.
The scope attribute with a value that
conforms to the
syntax http://www.smpte-ra.org/430-1/2017/KDM#mic-key-type-{ID},
where {ID} conforms to the lowercase UUID string
representation specified in IETF RFC 4122, shall be associated
with the following KeyType value:
| Byte String (hexadecimal notation) | Character String | Description |
|---|---|---|
4D.44.4D.4B |
MDMK |
MIC key |
The {ID} shall be equal to a KeyId value
within the KeyIdList element.
NOTE 3 ββ The MDMK key is intended to define the MICKey (see SMPTE ST 429-6) to be used in conjunction with the content key identifier by the UUID embedded in the scope attribute.
EXAMPLE ββ <KeyType
scope="http://www.smpte-ra.org/430-1/2017/KDM#mic-key-type-e5421139-0f4a-445e-bc1f-3018a2a858ab">MDMK</KeyType>
identifies a MIC key associated with the content key
with KeyId e5421139-0f4a-445e-bc1f-3018a2a858ab.
The scope attribute with the value
http://www.dolby.com/cp850/2012/KDM#kdm-key-type
shall be associated with the following KeyType
value:
| Byte String (hexadecimal notation) | Character String | Description |
|---|---|---|
4D.44.45.4B |
MDEK |
Immersive sound essence key |
When present, this element shall contain an unordered
list of one or more ForensicMarkFlag
elements, which are defined
below. Each ForensicMarkFlag element in the
list shall have a unique value.
A ForensicMarkFlag element shall contain a
single URI value indicating whether forensic marking is
to be used in conjunction with a
particular KeyType contained in the
KDM. The following table lists the forensic marking
requirements defined by this standard:
| URI Value | Requirement |
|---|---|
http://www.smpte-ra.org/430-1/2006/KDM#mrkflg-picture-disable |
Disable forensic marking in connection with keys of KeyType βMDIKβ |
http://www.smpte-ra.org/430-1/2006/KDM#mrkflg-audio-disable |
Disable forensic marking in connection with keys of KeyType βMDAKβ |
http://www.smpte-ra.org/430-1/2017/KDM#mrkflg-mdx1-{ID}-disable |
Disable forensic marking in connection with key with KeyId equal to {ID} and of KeyType equal to βMDX1β |
http://www.smpte-ra.org/430-1/2017/KDM#mrkflg-mdx2-{ID}-disable |
Disable forensic marking in connection with key with KeyId equal to {ID} and of KeyType equal to βMDX2β |
http://www.smpte-ra.org/430-1/2019/KDM#mrkflg-enh-audio-disable |
Disable forensic marking in connection with keys of KeyType βMDEKβ |
{ID} in the table above shall conform to the lowercase
UUID string representation specified in IETF RFC 4122 and shall
be equal to a KeyId value of the key to which the
ForensicMarkFlag applies.
EXAMPLE ββ
http://www.smpte-ra.org/430-1/2017/KDM#mrkflg-mdx1-dfc4c132-c318-44fd-a515-d2a8075f4c5a-disable
This element is defined in SMPTE ST 430-3.
NOTE ββ This element may contain proprietary extensions. Conforming implementations should ignore the contents of this element.
The AuthenticatedPrivate element is normatively defined
in SMPTE ST 430-3. It is described here only to
illustrate the use of this element for carrying encrypted keys in a
KDM. This portion of the KDM is authenticated by the signature, and
encrypted for the recipient before being transmitted. The word
βprivateβ appears in the XML name for this element, although this
does not mean that the information is proprietary or
vendor-specific. It means that through encryption only a specified
recipient is allowed to view this information. The recipient
performs standard XML decryption operations to recover the private
information.
The normative schema is defined in Annex B.
Anyone can verify the signature on the KDM and validate the certificate chain to decide whether the message has been modified and whether it was created by a trusted entity. However, only an entity that knows the private key of the recipient can decrypt this portion of the message.
For the KDM, the ETMβs EncryptedData element
shall be omitted and each EncryptedKey element
shall carry one content key and its associated
information. The KDM shall only have a single recipient. The
following sections describe how the KDM message uses
the EncryptedKey element.
The RSA public key algorithm shall be used to carry
the EncryptedKey data. This element contains
information encrypted with the RSA public key algorithm along with
all the parameters and information needed to extract that
information. It is normatively defined
in SMPTE ST 430-3. Child elements
of EncryptedKey not listed below shall be unchanged
from their SMPTE ST 430-3 definition.
This element is defined in SMPTE ST 430-3. This
element is optional for KDMs, since the Recipientβs
certificate is identified in the Recipient element of
the RequiredExtensions element of the KDM. It
identifies the certificate that contains the public key that was
used for the RSA encryption. If this element is present, the
certificate identified by the KeyInfo element shall
be the same for all EncryptedKey elements in the KDM.
The CipherData element is generally defined
in SMPTE ST 430-3. For the KDM message,
the CipherData element carries a specially formatted
plaintext payload. The plaintext consists of the following fixed
length elements concatenated together, with the most significant
byte first, starting with the first item in the table.
| Length | Field Description |
|---|---|
| 16 |
Structure ID. A 128-bit identifier for this
structure. The value of the Structure ID shall
be f1.dc.12.44.60.16.9a.0e.85.bc.30.06.42.f8.66.ab
(hexadecimal).
|
| 20 | Certificate Thumbprint in binary form as specified in βCertificate and Public Key Thumbprintβ of SMPTE ST 430-2. |
| 16 |
CompositionPlaylistId, a UUID in binary form as
specified in IETF RFC 4122.
|
| 4 |
KeyType, a byte string of length four bytes (see
6.3.9.3
tables).
|
| 16 |
KeyId, a UUID in binary form as specified
in IETF RFC 4122.
|
| 25 |
NotValidBefore, a UTC date-time encoded as specified
in 6.3.7,
e.g., 2004-05-01T13:20:00+00:00.
|
| 25 |
NotValidAfter, a UTC date-time encoded as specified
in 6.3.8,
e.g., 2004-06-30T13:20:00+00:00.
|
| 16 | Content Key |
| 138 | Total |
NOTE ββ The βStructure IDβ is a unique value within the scope of the XML namespace name declared in Clause 6 above. By including a known unique plaintext value in the structure, the system is protected in the event that an attacker attempts compromise by substituting the expected encrypted key block by other data encrypted with the same public key.
The following three KDM validity checks are informative:
CompositionPlaylistId in the RSA block
matches the CompositionPlaylistId in the
other portions of the KDM. The information in the RSA
block is considered authoritative. The recipient may
choose to reject the KDM if
the CompositionPlaylistId does not match in
all places that it occurs in the KDM.
This EncryptedData element defined
in SMPTE ST 430-3 shall not be present in KDM
instances.
This portion of the KDM message is defined in SMPTE ST 430-3.
Since the EncryptedData element is not used in
the KDM, the Signature element shall only contain
two Reference elements, one for
the AuthenticatedPublic and one for
the AuthenticatedPrivate (covering the ciphertext
form of the EncryptedKey elements).
This annex summarizes the main design features and security goals of the KDM. Additional considerations appear in SMPTE ST 430-3.
KeyId is associated with each
content key, allowing each encrypted D-Cinema asset (e.g., track
file) to uniquely reference the key used in its encryption. A single
content key can be used to protect multiple track files.
CompositionPlaylistId). A
KeyId identifies each content key. This allows
a single message to contain all the keys needed to decrypt
media that uses multiple keys.
NonCriticalExtensions element.
The XML Schema document (see W3C XML Schema Part 1: Structures) presented in this annex normatively defines the structure of a Key Delivery Message using a machine-readable language. While this schema is intended to faithfully represent the structure presented in the normative prose portions (Clause 6 and Clause 7) of this document, conflicts in definition may occur. In the event of such a conflict, the normative prose shall be the authoritative expression of the standard.
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2006 Society of Motion Pictures and Television Engineers. All rights
reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-->
<xs:schema
targetNamespace="http://www.smpte-ra.org/schemas/430-1/2006/KDM"
xmlns:kdm="http://www.smpte-ra.org/schemas/430-1/2006/KDM"
xmlns:etm="http://www.smpte-ra.org/schemas/430-3/2006/ETM"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" />
<xs:import namespace="http://www.smpte-ra.org/schemas/430-3/2006/ETM" />
<xs:element name="KDMRequiredExtensions" type="kdm:KDMRequiredExtensionsType"/>
<xs:complexType name="KDMRequiredExtensionsType">
<xs:sequence>
<!-- Identifies the certificate of the entity receiving the KDM. -->
<xs:element name="Recipient">
<xs:complexType>
<xs:sequence>
<xs:element name="X509IssuerSerial" type="ds:X509IssuerSerialType"/>
<xs:element name="X509SubjectName" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="CompositionPlaylistId" type="etm:UUID"/>
<xs:element name="ContentTitleText" type="etm:UserText"/>
<xs:element name="ContentAuthenticator" type="xs:base64Binary" minOccurs="0"/>
<xs:element name="ContentKeysNotValidBefore" type="xs:dateTime"/>
<xs:element name="ContentKeysNotValidAfter" type="xs:dateTime"/>
<xs:element name="AuthorizedDeviceInfo" type="kdm:AuthorizedDeviceInfoType"/>
<xs:element name="KeyIdList">
<xs:complexType>
<xs:sequence>
<xs:element name="TypedKeyId" type="kdm:TypedKeyIdType" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ForensicMarkFlagList" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="ForensicMarkFlag" type="xs:anyURI" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="AuthorizedDeviceInfoType">
<xs:sequence>
<xs:element name="DeviceListIdentifier" type="etm:UUID"/>
<xs:element name="DeviceListDescription" type="etm:UserText" minOccurs="0"/>
<xs:element name="DeviceList">
<xs:complexType>
<xs:sequence>
<xs:element name="CertificateThumbprint" type="ds:DigestValueType" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TypedKeyIdType">
<xs:sequence>
<xs:element name="KeyType">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="scope" type="xs:anyURI" use="optional"
default="http://www.smpte-ra.org/430-1/2006/KDM#kdm-key-type" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="KeyId" type="etm:UUID" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:schema>