2.2.3.2.4 XML Schema for Version 7 License Response
The following is an XML schema for the version 7 license response packet per [XML], [XMLSCHEMA1/2], and [XMLSCHEMA2/2]. Where required, elements, attributes, and values are described in greater detail after the schema. This is not a strictly correct XML schema because the LICENSE element can be either a version 1 license or a version 7 license. The version attribute of the LICENSE element differentiates the two. The license server MAY mark nodes with either license version, or a combination of versions in different nodes. This allows the server to return licenses usable to multiple WMDRM protocol implementations simultaneously. This decision is entirely server-dependent on factors unrelated to the protocol.
If the version attribute indicates a version 7 license, then the first 80 bytes (called EncRandNum) of the base64-decoded version 7 license are used to decrypt the remainder of the base64-decoded bytes in the following manner.
Before encryption, EncRandNum contains the following byte values:
byte 0: MUST be the value 0x07.
byte 1: MUST be the value 0x01.
bytes 2 – 8: Used as the initialization vector (IV) to create an RC4 key (KR).
bytes 9 – 19: Not used.
Cryptographic sequence:
{EncRandNum}KM
KR {version 7 license}
The encrypted EncRandNum and version 7 license are concatenated and then base64-encoded.
-
<?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="LICENSERESPONSE"> <xs:complexType> <xs:sequence> <xs:element name="REVOCATION" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <!-- base64-encoded --> <xs:attribute name="type" use="required" type="RevocationType" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="LICENSE" minOccurs="1" maxOccurs="unbounded"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <!-- base64-encoded --> <xs:attribute name="version" use="required" type="LicenseVersion" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:simpleType name="RevocationType"> <xs:restriction base="xs:string"> <xs:enumeration value="WMDRMNET" /> <xs:enumeration value="DeviceRevocationList" /> <xs:enumeration value="RevocationList" /> <xs:enumeration value="{66DD5134-4E34-40ae-9D5D-13A112B7591F}" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="LicenseVersion"> <xs:restriction base="xs:string"> <xs:enumeration value="0.1.0.0" /> <xs:enumeration value="2.0.0.0" /> </xs:restriction> </xs:simpleType> </xs:schema>