Windows Media Rights Manager SDK banner art

Objects

The following diagram illustrates the objects you must use to package a Windows Media file. To package content in response to a consumer request, you must create a Windows Media file that contains a version 10 header, a version 1 header, and the encrypted content.

Objects needed to package a Windows Media file

When a consumer submits a request to play content, you must create a header containing the following items. It is recommended that you use a database to store these.

Item Description
License acquisition URL URL of the Web site used to issue licenses.
Individualized version number An optional number identifying the individualized client version needed to play the content on the consumer's computer.
Content ID An optional string that uniquely identifies the content. The inclusion of a content ID is strongly recommended.
Key ID A string used by both the content packager and the license issuer to generate a key.
Attributes Optional name-value pairs that can be used to identify the content owner, the name of the author, the type of content, and so on. The use of attributes is strongly recommended.

The following items are not included in the header.

Item Description
Key A value used to encrypt the content.
License key seed A secret shared between the content packager and the license issuer. The license key seed and the key ID are used to generate the key.
Private signing key Private key used by the content packager to sign the header.
Public signing key Public key generated by the content packager and delivered to the license issuer to use when verifying the header.

You can use the WMRMKeys object to create the key, key ID, license key seed, content ID, private signing key and public signing key. You must use the WMRMHeader object to retrieve the required items, and create and sign a content header. Signing is required.

You must use the WMRMProtect object to encrypt the clear content and package it, along with the version 1 and version 10 headers, in a Windows Media file.

The following diagram illustrates the objects you must use to create and deliver a license.

Objects needed to create and deliver a license

To request a license, the player on the consumer's computer posts a challenge to the license issuer. A challenge consists of the version 10 content header, information about the consumer's computer, a list of requested actions, and an optional version 1 challenge. You must use the WMRMChallenge object to retrieve these items.

In the current Windows Media Rights Manager release, the action list in the challenge requests only the right to play the encrypted content. The content packager can specify additional rights by using the WMRMRights object. If the content packager and the license issuer are not the same person or organization, then the content packager must tell the licence issuer which rights to issue with the license.

To create licenses, a license issuer requires a certificate from Windows Media License Service. To sign the license, the license issuer uses the private signing key.

After you have retrieved the challenge and specified the rights, you must use the WMRMLicGen object to create and sign a license. The license contains the encrypted key used to encrypt the content, the specified rights, information about the client computer, optional attributes, a priority number, and the certificate of the license issuer.

You must use the WMRMResponse object to generate a response string for the licenses to be transmitted to Windows Media Rights Manager on the consumer's computer.

The Windows Media Rights Manager SDK has been designed for scripting languages. It supports the following objects.

Object Description
Download Enables a content header to be modified dynamically.
LicenseGenerator Creates version 1 licenses.
RMGetLicense Enables client-side license acquisition.
WMRMChallenge Processes a license request.
WMRMHeader Manages content headers.
WMRMKeys Manages encryption keys and license key seeds.
WMRMLicenseRevocationAcknowledger Receives an acknowledgement from the client confirming that the specified licenses were revoked.
WMRMLicenseRevocationChallenge Receives a license revocation challenge from the client computer, initiating the process to revoke licenses.
WMRMLicenseRevocationResponse Generates a license revocation response. This response is sent to the client and indicates which licenses to revoke.
WMRMLicenseStateData Retrieves data from the licenses in a license chain, enabling the License Service to determine which licenses must be reissued.
WMRMLicGen Generates licenses.
WMRMMetering Used by a metering aggregation service to gather metering data from client applications, such as media players. The data is sent by the client in the form of a metering challenge. After the data has been collected, the metering aggregation service must send a response to the client so that the client can clear and reset the data store.
WMRMMeteringAction Retrieves information about a specific metered action.
WMRMMeteringActionCollection Manages a collection of metered actions for one content item.
WMRMMeteringContent Manages metering data for individual content items.
WMRMMeteringContentCollection Manages metering data that is organized by content. From this collection, you can retrieve the count of metered actions for individual content items.
WMRMMeteringData Retrieves metering information from the WMRMMetering object.
WMRMProtect Encrypts files.
WMRMResponse Delivers a license to the consumer.
WMRMRestrictions Defines which media technologies can or cannot be used for playing or copying protected content.
WMRMRights Specifies the rights that govern the use of encrypted content.
WMRMTools Generates a content revocation string.
WMRMUplink Manages information about the elements in a license chain.
WMRMUplinkCollection Manages a collection of WMRMUplink objects, which correspond to the elements in a license chain specified in the license request.

See Also