3.2.5.6.2 GetMeterChallenge Creation

When a device requires a GetMeterChallenge, it extracts the METERCERT from the message, and begins to build a metering challenge message.

The TID element MUST be set to a randomly generated, unique value, base64 encoded as documented in [MS-DRM] section 2.2.1.1.

The MID element MUST be set to the MID value extracted from the METERCERT.

The URL element MUST be set to the URL value extracted from the METERCERT.

The RECORDS element contains encrypted data, base64 encoded as documented in [MS-DRM] section 2.2.1.1 for all content statistics corresponding to the target MID. It is encrypted with the public key of the METERCERT, using the mechanism described in section 2.2.1.6.

The DATA element is then signed using the device's private fallback key using the ECC signature creation method (section 2.2.1.6). The generated signature MUST be base64-encoded as documented in [MS-DRM] section 2.2.1.1, and used to populate the MSDRM_SIGNATURE_VALUE. The corresponding device fallback certificate is base64-encoded as documented in [MS-DRM] section 2.2.1.1, and used to populate the CERTIFICATE element. As noted above, the CERTIFICATE element MUST have the private attribute set to "1".

The MESSAGETYPE MUST be set to "challenge".

Finally, the entire metering challenge message is returned to the Metering Plugin over MTP [MTP], which forwards it to the MAS using HTTP [RFC2616].