the technical content. 9/23/2011 11.1 None No changes to the meaning, language, or formatting of the technical content. 12/16/2011 12.0 Updated and revised the technical content. 3/30/2012 12.0 None No changes to the meaning, language, or formatting of the technical content. 7/12/2012 12.0 None No changes to the meaning, language, or formatting of the technical content. 10/25/2012 12.0 None No changes to the meaning, language, or formatting of the technical content. 1/31/2013 13.0 Major Updated and revised the technical content. 8/8/2013 14.0 Major Updated and revised the technical content.
11/14/2013 15.0 Updated and revised the technical content. 2/13/2014 15.0 None No changes to the meaning, language, or formatting of the technical content. 5/15/2014 15.0 None No changes to the meaning, language, or formatting of the technical content. 6/30/2015 16.0 Major Significantly changed the technical content. 10/16/2015 16.0 None No changes to the meaning, language, or formatting of the technical content. 7/14/2016 17.0 Major Significantly changed the technical content.
DRM Version 7 Client Message Processing Events and Sequencing Request Behavior The Digital Rights Management (DRM) version 7 License Request packet is used by the client to request a license for protected media content. Figure 4: DRM version 7 request packet process The higher layer MUST set appropriate values for ClientCertificate, RightsRequested, ClientAppSec, ClientVersion, SecurityVersion, SubjectId1, SubjectId2, DrmKVersion, RevocationInfo, and WRMHeader. The client generates a 16-byte random number as SessionKey. The client populates a DRM Version 1 License Request packet with the following mapping: ClientCertificate -> pkcert RightsRequested ->A sequence of <ActionNameType> elements the <ACTION> element ClientAppSec ->AppSec KeyID is set to all zeros The client populates a V7 license challenge request mapping the following state variables to the appropriate XML elements: ClientVersion -> <CLIENTVERSION> SecurityVersions -> <SECURITYVERSION> ClientAppSec -> <APPSECURITY> SubjectId1 -> <SUBJECTID1> SubjectId2 -> <SUBJECTID2> DrmKVersion -> <DRMKVERSION> WRMHeader -> <WRMHEADER> A CLIENTID structure is populated by the client as described in section using ClientCertificate as CLIENTID.pkcert, and SessionKey is encrypted with KS and included as CLIENTID.EncRandNum. The populated CLIENTID structure is base64 encoded and included in the request packet as XML element CLIENTID. The version 1 request packet is base64 and included in the version 7 license request packet as the XML element <V1CHALLENGE>. The client-generated license request is sent to a license server by an HTTP POST request. Response Behavior The license response returned from the server is described in section . The client MUST parse the XML document and process the LICENSE and REVOCATION nodes as described in and . LICENSERESPONSE.LICENSE nodes For each LICENSE node found, the client MUST inspect the version attribute. The client MUST base64 decode the data in the LICENSE node and return the decoded data and the value in the version attribute to the higher layer so that the higher layer is aware of the license version being returned.
Protocol syntax refers to data elements (such as packets, structures, enumerations, and methods) as well as interfaces. Protocol revision refers to changes made to a protocol that affect the bits that are sent over the wire. The changes made to this document are listed in the following For more information, please contact . Section Tracking number (if applicable) and description Major change (Y or N) Change type Versioning and Capability Negotiation Updated product behavior note for Windows 10 v1511. Y Product behavior note updated. Appendix A: Product Behavior Windows 10 v1511 to applicability list. Y Content update.
Index A Abstract data model 55 60 ACTION ( 27, 35) 14 28 B 16 C 15 22 23 35 35 23 78 Client 55 56 55 56 60 56 60 55 28 28 28 16 36 36 36 37 18 17 D Data - abstract 55 60 Data types 40 40 version 1 ( 16, 20) version 11 ( 16, 49) version 7 ( 16, 25) 55 40 40 20 DRM Version 1 license format ( 22, 31) 21 49 54 25 31 20 28 E 37 37 70 37 F 15 G 8 H Higher-layer triggered events 56 62 I 75 75 75 10 Initialization 55 61 61 61 8 K 41 L 23 24 Licenses 37 37 38 41 19 41 Local events 60 69 M 50
Message processing 56 62 Messages 16 20 49 25 16 16 42 N 9 O 42 42 42 43 38 60 60 69 11 11 P 75 18 19 14 43 44 14 46 76 46 19 R 9 10 9 14 53 47 S 75 75 75 29 47 Sequencing rules 56 62 Server 60 62 61 61 61 69 62 69 62 69 61 47 47 15 29 29 16 T Timer events 60 69 Timers 55 61 78 16 16 Triggered events - higher-layer 56 62 V 29 48 15 Version 1 56 56 data types ( 16, 20) 70 11 62 62 Version 11 59 59 data types ( 16, 49) 74 13 67 67 Version 7 57 57 data types ( 16, 25) 72 71 72 12 64 64 15