Skip to main content
Skip table of contents

Definitions of Types

1. Nagra, Harmonic & Nagra-CMAF interfaces

1.1. Simple Types

1.1.1. UUIDType

This type is used for identifiers that need to be unique in time and space. Its main advantage is to not depend on centralized data storage.

Base type

Pattern Restriction

xsd:token

[\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}

1.1.2. DistributionModeType

Base type

Enumeration

Description

xsd:string

VOD

VOD content, only one content key per content.


LIVE

LIVE content, key rotation shall be applied

1.1.3. StreamingModeType

Base type

Enumeration

Description

xsd:string

DASH

Dynamic Adaptive Streaming over Http


HLS

Http Live Streaming (Apple)


SMOOTH

Smooth Streaming is an IIS Media Services extension that enables adaptive streaming of media to clients over HTTP (Microsoft)


CUSTOM

Custom streaming mode

1.1.4. KeyAndSignalizationReturnCodeType

Base type

Enumeration

Description

xsd:string

OK

The request succeeded.


UNDEFINED_DRM_SYSTEM_ID

Should not occur, kept for interface compatibility


UNDEFINED_STREAMING_MODE

The provided streaming mode is not known in the system.


UNDEFINED_DISTRIBUTION_MODE

The provided distribution is not known in the system.


UNDEFINED_ENCRYPTION_METHOD

When the provided EMI does not match a valid encryption method or if the DRM does not support it.


INVALID_METADATA

The metadata associated to the DRM is not well formed (depends on the knowledge that is requested by the KSS).


UNAVALAIBLE_SERVICE

One of the resources used by the server is not available


INTERNAL_ERROR

A non-business error occurred at server level.


MISSING_KEY_ID

The key id has been omitted whereas a signalling request has been received (this error applies only when a DRM or a DRM proxy implements this interface)


MISSING_CONTENT_KEY

A key id has been provided by the encryptor but the associated content key has been omitted whereas it is necessary in this use case (where the encryptor provides the content key).


MISSING_STREAMING_MODE

The streaming mode has been omitted, it is always mandatory on this interface.


MISSING_ENCRYPTION_METHOD

The EMI is not provided in CUSTOM or PIFF streaming mode.


INVALID_KEY_LENGTH

The content key provided by the encryptor has an invalid length, key shall be 128 bit long.


ALREADY_EXISTING_KEY_ID

The content key provided by the encryptor has the same key id than an already existing different content key.

1.1.5. HeartbeatReturnCodeType

Base type

Enumeration

Description

xsd:string

OK

The request succeeded.


UNSUPPORTED_VERSION

The version requested by the encryptor does not match the one used by the KSS.


INTERNAL_ERROR

A non-business error occurred at server level.

1.1.6. SystemStatusType

Base type

Enumeration

Description

xsd:string

ACTIVE

KSS is in an active state.


STANDBY

KSS is in a standby state (not handling incoming requests).

1.2. Data Structures

1.2.1. DrmContentType Structure

Field name

Field type

Multiplicity

Description

drmContentId

xsd:string

1

Identifier of the content id allocated by the CMS

profile

SecurityProfileType

1

The set of properties for the management of the content key and the signalling

1.2.2. ContentKeyType Structure

Field name

Field type

Multiplicity

Description

keyId

UUIDType

1

The unique identifier of the content key, provided as a normalized UUID

key

xsd:base64binary

0..1

The content key

Mandatory in the response if the KSS has the key generation role

Mandatory in the request if the encryptor has this role

iv

xsd:base64binary

0..1

The initialization vector (iv)

Mandatory in the response either when the KSS has the key generation role and reaches the conditions to generate IV (sample-AES EMI) or when IV is provided in the request

1.2.3. DrmInfoType Structure

Field name

Field type

Multiplicity

Description

drmSystemId

UUIDType

1

The unique identifier of the DRM system, provided as a normalized UUID

drmName

xsd:string

0..1

The readable name for the DRM system. Not mandatory, but may help at configuration time.

drmMetadata 

xsd:base64binary

0..1

The DRM specific metadata associated to the related content. Reserved for future uses.

1.2.4. DrmListType Structure

Field name

Field type

Multiplicity

Description

drm

DrmInfoType

1..N

The list of addressed DRMs

1.2.5. DrmSignalizationType Structure

Either one of DASH, HLS or PIFF field will be provided for a given DRM system.

Field name

Field type

Multiplicity

Description

dash

DashSignalizationType

0..N

DASH signalling as a MPD content protection XML section and/or a PSSH box data

hls

HlsSignalizationType

0..N

HLS signalling mainly holds a key URI

smooth

SmoothSignalizationType

0..N

SMOOTH signalling as a manifest header XML section and/or a PSSH box data

custom

CustomSignalizationType

0..N

Custom signalling as a base 64 block for which format is specific to DRM trigged

1.2.6. DashSignalizationType Structure

Field name

Field type

Multiplicity

Description

drmSystemid

UUIDType

1

The DRM system id for which the below signalling information applies

drmName

xsd:string

0..1

Optional readable name of the DRM system

manifestHeader

xsd:string

0..1

The content protection section to be inserted in the MPD

psshBox

xsd:base64binary

0..1

DRM specific full pssh box binary block, provided as a base64 string

1.2.7. SecurityProfileType Structure

Field name

Field type

Multiplicity

Description

distributionMode

DistributionModeType

1

Either VOD or LIVE, allows to know how to manage keys:

VOD --> one key per content

LIVE --> key rotation, several keys per content.

streamingMode

StreamingModeType

1

Provides the way the content is streamed, used to build the signalling. Though the schema allows it to be optional, it is mandatory for this interface.

emi

xsd:unsignedShort

0..1

Encryption method indicator as specified by NAGRA. If not provided, a configuration value will be assumed, except for CUSTOM streaming mode.

cryptoPeriod

xsd:unsignedInt

0..1

Crypto period in seconds, to be applied when key rotation management is used.

This information need to be compatible with the configured key rotation mode.

Not yet used.

1.2.8. ScheduledKeyType Structure

Field name

Field type

Multiplicity

Description

time

xsd:unsignedLong

1

The stream time at which the key will start being used. Value will be the POSIX time (or Unix epoch), the number of seconds that have elapsed since January 1, 1970 (midnight UTC/GMT).

contentKey

ContentKeyType

0..1

If a content key is provided by the encryptor, no key will be generated for this request.

If omitted, then it is generated or retrieved by the KSS.

1.2.9. SmoothSignalizationType Structure (Same as Dash)

Field name

Field type

Multiplicity

Description

drmSystemId

UUIDType

1

The DRM system id for which the below signalling information applies

drmName

xsd:string

0..1

Optional readable name of the DRM system

manifestHeader

xsd:string

0..1

The content protection section to be inserted in the manifest

psshBox

PsshType

0..1

Pssh signalling information

1.2.10. HlsSignalizationType Structure

Field name

Field type

Multiplicity

Description

drmSystemid

UUIDType

1

The DRM system id for which the below signalling information applies

drmName

xsd:string

0..1

Optional readable name of the DRM system

keyUri

xsd:anyURI

1

Key URI to be inserted in the HLS playlist

1.2.11. CustomSignalizationType Structure

Field name

Field type

Multiplicity

Description

drmSystemId

UUIDType

1

The DRM system id for which the below signalling information applies

drmName

xsd:string

0..1

Optional readable name of the DRM system.

data

xsd:string

1

DRM specific binary block, provided as a base64 URL-safe string



2. Conax interface

2.1. AbstractResponseType

The AbstractResponseType defines a base type for the response messages. All response messages extend this type.

Element

Type

Description

Required

TransactionStatus

Transaction Status Type

A status that describes the outcome of the operation

YES

2.2. TransactionStatusType

The TransactionStatusType type describes the outcome of an operation.

Element

Type

Description

Required

StatusCode

xs:string

A code that describes the result of the operation. OK indicates success.

YES

Message

xs:string

A description of the result of the operation


TransactionId

xs:string

A unique identifier of the transaction, assigned by the CA system


2.3. DrmDataType

The DrmDataType defines an encryption key and the DRM headers for getting licenses for that key.

Element

Type

Description

Required

Key

xs:string

A 16-byte base64 encoded AES key

YES

KeyId

xs:string

128 bit long KeyID for the key returned in a base64 encoded format

On DASH packaging this value identifies the default KID of the content in the MPD.

YES

ContentRef

xs:string

A unique identifier for the content in SSP.

The ID is 36 characters (32 hexadecimal characters and four hyphens) and follows the GUID syntax.

YES

DrmHeaderData

DrmHeaderDataType
(one or more)

The DRM headers for the indicated DRM systems.

YES

2.4. DrmHeaderDataType

The DrmHeaderDataType defines the DRM header for the indicated DRM system.

Element

Type

Description

Required

DrmId

xs:string

Identification of DRM system and packaging.

Possible values :

  • PLAYREADY_SS

  • PLAYREADY_HLS

  • FAIRPLAY_HLS

  • PLAYREADY_CENC

  • WIDEVINE_CENC

  • CCA_CENC

  • CCA_HLS

YES

Header

xs:string

DRM header data

For HLS: The header is formatted as a URI to be inserted in the EXT-X-KEY tag in the HLS playlist file.

For Smooth Streaming: The header is base64 encoded. After base64 decoding, the header is inserted in the Smooth Streaming protection system header.

For CENC/MPEG-DASH: The header contains base64 encoded DRM-specific data. After base64 decoding, the header has two possible usages:

  • It can be used in the data part of the PSSH box.

  • It can be used in the <ContentProtection> element in the manifest file (.mpd).

YES

DrmSystemId

xs:string

DRM system ID of the current DRM system.

This element is included in the service response on DASH packaging. It is omitted on the other packaging types.


IV

xs:string

A 128 bit long base64 encoded initialization vector

If the IV element is present in the response, the initialization vector shall be used by the encoder.


LicenseServer

xs:string

The URL for the License Server


JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.