Secure Stop Server
You can use the following URL to test the Secure Stop functionality with a PlayReady client. The client has to be PlayReady 3.0 minimum, and support that functionality.
Secure Stop Server endpoint: http://test.playready.microsoft.com/service/rightsmanager.asmx
The test workflow is as follows:
1. Client gets the metering certificate for the secure stop transaction
The client must have the metering certificate used by the service for the secure stop functionality. For this test server, we use the following test metering certificate:Test Metering Certificate (base64):
Q0hBSQAAAAEAAAUEAAAAAAAAAAJDRVJUAAAAAQAAAfQAAAFkAAEAAQAAAFjt9G6KdSncCkrjbTQPN+/2AAAAAAAAAAAAAAAJIPbrW9dj0qydQFIomYFHOwbhGZVGP2ZsPwcvjh+NFkP/////AAAAAAAAAAAAAAAAAAAAAAABAAoAAABYxw6TjIuUUmvdCcl00t4RBAAAADpodHRwOi8vcGxheXJlYWR5LmRpcmVjdHRhcHMubmV0L3ByL3N2Yy9yaWdodHNtYW5hZ2VyLmFzbXgAAAAAAQAFAAAADAAAAAAAAQAGAAAAXAAAAAEAAQIAAAAAADBRmRRpqV4cfRLcWz9WoXIGZ5qzD9xxJe0CSI2mXJQdPHEFZltrTkZtdmurwVaEI2etJY0OesCeOCzCqmEtTkcAAAABAAAAAgAAAAcAAAA8AAAAAAAAAAVEVEFQAAAAAAAAABVNZXRlcmluZyBDZXJ0aWZpY2F0ZQAAAAAAAAABAAAAAAABAAgAAACQAAEAQGHic/IPbmLCKXxc/MH20X/RtjhXH4jfowBWsQE1QWgUUBPFId7HH65YuQJ5fxbQJCT6Hw0iHqKzaTkefrhIpOoAAAIAW+uRUsdaChtq/AMUI4qPlK2Bi4bwOyjJcSQWz16LAFfwibn5yHVDEgNA4cQ9lt3kS4drx7pCC+FR/YLlHBAV7ENFUlQAAAABAAAC/AAAAmwAAQABAAAAWMk5Z0ovo2X0b2C9K5PbFX8AAAAAAAAAAAAAAARTYd1EkpFovPAZUjOj2doDLnHiRSfYc89Fs7gosBfar/////8AAAAAAAAAAAAAAAAAAAAAAAEABQAAAAwAAAAAAAEABgAAAGAAAAABAAECAAAAAABb65FSx1oKG2r8AxQjio+UrYGLhvA7KMlxJBbPXosAV/CJufnIdUMSA0DhxD2W3eRLh2vHukIL4VH9guUcEBXsAAAAAgAAAAEAAAAMAAAABwAAAZgAAAAAAAAAgE1pY3Jvc29mdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgFBsYXlSZWFkeSBTTDAgTWV0ZXJpbmcgUm9vdCBDQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgDEuMC4wLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEACAAAAJAAAQBArAKJsEIDWNG5ulOgLvSUb8I2zZ0c5lZGYvpIO56Z0UNk/uC4Mq3jwXQUUN6m/48V5J/vuLDhWu740aRQc1dDDAAAAgCGTWHP8iVuQixWizwoABz7PhUnZYWEugUht5sYKNk23h2Cao/D5uf6epDVyilG8fZKLvufXc/+fkNOtEKT+sWr
Test Metering Certificate (XML):
<PlayReady_Cert_Chain>
<Number_of_Certs>2</Number_of_Certs>
<Certificate_1>
<Basic_Data>
<Cert_Type>Metering</Cert_Type>
<Security_Level>0</Security_Level>
<Expiration>Not set</Expiration>
<Metering_Data>
<Metering_Id>xw6TjIuUUmvdCcl00t4RBA==</Metering_Id>
<URL>http://playready.directtaps.net/pr/svc/rightsmanager.asmx</URL>
<URL_Length>58</URL_Length>
</Metering_Data>
<Features>
Empty
</Features>
</Basic_Data>
<Key_Data>
<KEY_0>
<Key_Type>0x1</Key_Type>
<Length>512 bit</Length>
<Key_Value>MFGZFGmpXhx9EtxbP1ahcgZnmrMP3HEl7QJIjaZclB08cQVmW2tORm12a6vBVoQjZ60ljQ56wJ44LMKqYS1ORw==</Key_Value>
<Key_Usage>Encrypt Key,</Key_Usage>
</KEY_0>
</Key_Data>
<Manufacturer>
<Manufacturer>DTAP</Manufacturer>
<Model_Name>Metering Certificate</Model_Name>
<Model_Number></Model_Number>
</Manufacturer>
<Signature>
<Signature_Type>0x1</Signature_Type>
<Issuer_Key_Length>512</Issuer_Key_Length>
<Issuer_Key_Value>W+uRUsdaChtq/AMUI4qPlK2Bi4bwOyjJcSQWz16LAFfwibn5yHVDEgNA4cQ9lt3kS4drx7pCC+FR/YLlHBAV7A==</Issuer_Key_Value>
</Signature>
</Certificate_1>
<Certificate_2>
<Basic_Data>
<Cert_Type>Issuer</Cert_Type>
<Security_Level>0</Security_Level>
<Expiration>Not set</Expiration>
<Features>
Empty
</Features>
</Basic_Data>
<Key_Data>
<KEY_0>
<Key_Type>0x1</Key_Type>
<Length>512 bit</Length>
<Key_Value>W+uRUsdaChtq/AMUI4qPlK2Bi4bwOyjJcSQWz16LAFfwibn5yHVDEgNA4cQ9lt3kS4drx7pCC+FR/YLlHBAV7A==</Key_Value>
<Key_Usage>Sign,Issuer-Metering,</Key_Usage>
</KEY_0>
</Key_Data>
<Manufacturer>
<Manufacturer>Microsoft</Manufacturer>
<Model_Name>PlayReady SL0 Metering Root CA</Model_Name>
<Model_Number>1.0.0.1</Model_Number>
</Manufacturer>
<Signature>
<Signature_Type>0x1</Signature_Type>
<Issuer_Key_Length>512</Issuer_Key_Length>
<Issuer_Key_Value>hk1hz/IlbkIsVos8KAAc+z4VJ2WFhLoFIbebGCjZNt4dgmqPw+bn+nqQ1copRvH2Si77n13P/n5DTrRCk/rFqw==</Issuer_Key_Value>
</Signature>
</Certificate_2>
</PlayReady_Cert_Chain>
The client can hardcode this certificate, or acquire it from the test server through the GetMeteringCertificate
interface of the server
Test Server Url: http://test.playready.microsoft.com/service/rightsmanager.asmx
SOAPAction: http://schemas.microsoft.com/DRM/2007/03/protocols/GetMeteringCertificate
Sample Challenge:
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <GetMeteringCertificate xmlns="http://schemas.microsoft.com/DRM/2007/03/protocols"> <challenge> <Challenge> <MeterCert> <Version>1</Version> <MID>xw6TjIuUUmvdCcl00t4RBA==</MID> </MeterCert> </Challenge> </challenge> </GetMeteringCertificate> </soap:Body> </soap:Envelope>
Sample Response:
<?xml version="1.0" encoding="utf-8" ?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <GetMeteringCertificateResponse xmlns="http://schemas.microsoft.com/DRM/2007/03/protocols"> <GetMeteringCertificateResult> <Response xmlns="http://schemas.microsoft.com/DRM/2007/03/protocols/messages"> <MeteringCertificateResponse xmlns="http://schemas.microsoft.com/DRM/2007/03/protocols"> <Version>1</Version> <MeterCert>Q0hBSQAAAAEAAAUEAAAAAAAAAAJDRVJUAAAAAQAAAfQAAAFkAAEAAQAAAFjt9G6KdSncCkrjbTQPN+/2AAAAAAAAAAAAAAAJIPbrW9dj0qydQFIomYFHOwbhGZVGP2ZsPwcvjh+NFkP/////AAAAAAAAAAAAAAAAAAAAAAABAAoAAABYxw6TjIuUUmvdCcl00t4RBAAAADpodHRwOi8vcGxheXJlYWR5LmRpcmVjdHRhcHMubmV0L3ByL3N2Yy9yaWdodHNtYW5hZ2VyLmFzbXgAAAAAAQAFAAAADAAAAAAAAQAGAAAAXAAAAAEAAQIAAAAAADBRmRRpqV4cfRLcWz9WoXIGZ5qzD9xxJe0CSI2mXJQdPHEFZltrTkZtdmurwVaEI2etJY0OesCeOCzCqmEtTkcAAAABAAAAAgAAAAcAAAA8AAAAAAAAAAVEVEFQAAAAAAAAABVNZXRlcmluZyBDZXJ0aWZpY2F0ZQAAAAAAAAABAAAAAAABAAgAAACQAAEAQGHic/IPbmLCKXxc/MH20X/RtjhXH4jfowBWsQE1QWgUUBPFId7HH65YuQJ5fxbQJCT6Hw0iHqKzaTkefrhIpOoAAAIAW+uRUsdaChtq/AMUI4qPlK2Bi4bwOyjJcSQWz16LAFfwibn5yHVDEgNA4cQ9lt3kS4drx7pCC+FR/YLlHBAV7ENFUlQAAAABAAAC/AAAAmwAAQABAAAAWMk5Z0ovo2X0b2C9K5PbFX8AAAAAAAAAAAAAAARTYd1EkpFovPAZUjOj2doDLnHiRSfYc89Fs7gosBfar/////8AAAAAAAAAAAAAAAAAAAAAAAEABQAAAAwAAAAAAAEABgAAAGAAAAABAAECAAAAAABb65FSx1oKG2r8AxQjio+UrYGLhvA7KMlxJBbPXosAV/CJufnIdUMSA0DhxD2W3eRLh2vHukIL4VH9guUcEBXsAAAAAgAAAAEAAAAMAAAABwAAAZgAAAAAAAAAgE1pY3Jvc29mdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgFBsYXlSZWFkeSBTTDAgTWV0ZXJpbmcgUm9vdCBDQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgDEuMC4wLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEACAAAAJAAAQBArAKJsEIDWNG5ulOgLvSUb8I2zZ0c5lZGYvpIO56Z0UNk/uC4Mq3jwXQUUN6m/48V5J/vuLDhWu740aRQc1dDDAAAAgCGTWHP8iVuQixWizwoABz7PhUnZYWEugUht5sYKNk23h2Cao/D5uf6epDVyilG8fZKLvufXc/+fkNOtEKT+sWr</MeterCert> </MeteringCertificateResponse> </Response> </GetMeteringCertificateResult> </GetMeteringCertificateResponse> </soap:Body> </soap:Envelope>
2. Client acquires licenses from the test server and plays back
Use standard license acquisition transactions, with the property securestop
set to true
.
Test Server Url: http://test.playready.microsoft.com/service/rightsmanager.asmx
SOAPAction: http://schemas.microsoft.com/DRM/2007/03/protocols/AcquireLicense
License Acquisition Url: http://test.playready.microsoft.com/service/rightsmanager.asmx?cfg=(securestop:true,persist:false)
These licenses are acquired with the Secure Stop restriction. During playback, the PlayReady client generates Secure Stop events for these licenses as they get consumed, bound and released.
3. Client initiates a secure stop transaction to the test server and verifies the events in the response
Test Server Url: http://test.playready.microsoft.com/service/rightsmanager.asmx
SOAPAction: http://schemas.microsoft.com/DRM/2007/03/protocols/ProcessSecureStopData
Sample Challenge:
<?xml version="1.0" encoding="utf-8" ?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ProcessSecureStopData xmlns="http://schemas.microsoft.com/DRM/2007/03/protocols"> <challenge> <Challenge xmlns="http://schemas.microsoft.com/DRM/2007/03/protocols/messages"> <SecureStopData xmlns="http://schemas.microsoft.com/DRM/2007/03/protocols" Id="SignedData"> <Version>1</Version> <PublisherID>xw6TjIuUUmvdCcl00t4RBA==</PublisherID> <TransactionID>9UgrZ/yHHyp6E4xubTjU1Q==</TransactionID> <EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Element"> <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"></EncryptionMethod> <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#"> <EncryptionMethod Algorithm="http://schemas.microsoft.com/DRM/2007/03/protocols#ecc256"></EncryptionMethod><KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"><KeyName>SecureStop</KeyName></KeyInfo> <CipherData> <CipherValue>JvRGbvPdlXovbXkDc4SlNfPV+YkrvKFLg5D+Cq/2sCajZlnpEBh9R+yRxDW9A7nJzwLJvx6jhr8kHwCMpIeyHchC+obtAheqMGwyL8mwRxYcBILQtO8KrjMYPf/itWh+zuhQwpGcF6t0AhXE7Ef5jDpw2k/Ao8gGXdEOaPF1ga4=</CipherValue> </CipherData> </EncryptedKey> </KeyInfo><CipherData> <CipherValue>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</CipherValue> </CipherData> </EncryptedData> </SecureStopData> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#"><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></CanonicalizationMethod><SignatureMethod Algorithm="http://schemas.microsoft.com/DRM/2007/03/protocols#ecdsa-sha256"></SignatureMethod><Reference URI="#SignedData"><DigestMethod Algorithm="http://schemas.microsoft.com/DRM/2007/03/protocols#sha256"></DigestMethod><DigestValue>WEaTSsqAeYrvaqhVhQwDGRG9pdaM8n3mALy3zVrOwyo=</DigestValue></Reference></SignedInfo><SignatureValue>N0uru8iLP+UU2btYWU18APBbGvKBTEeB/Aa2IOLAEZ6A7zYg7ZO6nJyXpv7U0kdtUJrVbEOSLo85Kwc/3bHn4g==</SignatureValue><KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"><KeyValue><ECCKeyValue><PublicKey>5l+FzQ9RcwaXOauOkRWWD7IDcojP5+EMjKDJzEImmzLIhRDocpTQAE7UfkQecC14LVsDUfeGPwiQiza7Ra+4Ww==</PublicKey></ECCKeyValue></KeyValue></KeyInfo></Signature> </Challenge> </challenge> </ProcessSecureStopData> </soap:Body> </soap:Envelope>
The test server simply reflects the secure stop events received in the challenge and outputs them in the response that it sends back to the client, it the CustomData node. The client under test can use this response to track whether the secure stop events it generated earlier in the challenge are correct.
Sample Response:
<?xml version="1.0" encoding="utf-8" ?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <ProcessSecureStopDataResponse xmlns="http://schemas.microsoft.com/DRM/2007/03/protocols"> <ProcessSecureStopDataResult> <Response xmlns="http://schemas.microsoft.com/DRM/2007/03/protocols/messages"> <SecureStopResponse xmlns="http://schemas.microsoft.com/DRM/2007/03/protocols" Id="SignedData"> <Version>1</Version> <PublisherID>xw6TjIuUUmvdCcl00t4RBA==</PublisherID> <TransactionID>9UgrZ/yHHyp6E4xubTjU1Q==</TransactionID> <PublisherCert>Q0hBSQAAAAEAAAUEAAAAAAAAAAJDRVJUAAAAAQAAAfQAAAFkAAEAAQAAAFjt9G6KdSncCkrjbTQPN+/2AAAAAAAAAAAAAAAJIPbrW9dj0qydQFIomYFHOwbhGZVGP2ZsPwcvjh+NFkP/////AAAAAAAAAAAAAAAAAAAAAAABAAoAAABYxw6TjIuUUmvdCcl00t4RBAAAADpodHRwOi8vcGxheXJlYWR5LmRpcmVjdHRhcHMubmV0L3ByL3N2Yy9yaWdodHNtYW5hZ2VyLmFzbXgAAAAAAQAFAAAADAAAAAAAAQAGAAAAXAAAAAEAAQIAAAAAADBRmRRpqV4cfRLcWz9WoXIGZ5qzD9xxJe0CSI2mXJQdPHEFZltrTkZtdmurwVaEI2etJY0OesCeOCzCqmEtTkcAAAABAAAAAgAAAAcAAAA8AAAAAAAAAAVEVEFQAAAAAAAAABVNZXRlcmluZyBDZXJ0aWZpY2F0ZQAAAAAAAAABAAAAAAABAAgAAACQAAEAQGHic/IPbmLCKXxc/MH20X/RtjhXH4jfowBWsQE1QWgUUBPFId7HH65YuQJ5fxbQJCT6Hw0iHqKzaTkefrhIpOoAAAIAW+uRUsdaChtq/AMUI4qPlK2Bi4bwOyjJcSQWz16LAFfwibn5yHVDEgNA4cQ9lt3kS4drx7pCC+FR/YLlHBAV7ENFUlQAAAABAAAC/AAAAmwAAQABAAAAWMk5Z0ovo2X0b2C9K5PbFX8AAAAAAAAAAAAAAARTYd1EkpFovPAZUjOj2doDLnHiRSfYc89Fs7gosBfar/////8AAAAAAAAAAAAAAAAAAAAAAAEABQAAAAwAAAAAAAEABgAAAGAAAAABAAECAAAAAABb65FSx1oKG2r8AxQjio+UrYGLhvA7KMlxJBbPXosAV/CJufnIdUMSA0DhxD2W3eRLh2vHukIL4VH9guUcEBXsAAAAAgAAAAEAAAAMAAAABwAAAZgAAAAAAAAAgE1pY3Jvc29mdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgFBsYXlSZWFkeSBTTDAgTWV0ZXJpbmcgUm9vdCBDQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgDEuMC4wLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEACAAAAJAAAQBArAKJsEIDWNG5ulOgLvSUb8I2zZ0c5lZGYvpIO56Z0UNk/uC4Mq3jwXQUUN6m/48V5J/vuLDhWu740aRQc1dDDAAAAgCGTWHP8iVuQixWizwoABz7PhUnZYWEugUht5sYKNk23h2Cao/D5uf6epDVyilG8fZKLvufXc/+fkNOtEKT+sWr</PublisherCert> <CustomData><SecureStopRecords><SecureStopRecord><SessionID>c6b1902a-c50c-fa3c-6be9-c175a4c6aa1e</SessionID><StartTime>10/23/2017 10:58:12 PM</StartTime><UpdateTime>10/23/2017 10:58:13 PM</UpdateTime><Stopped>False</Stopped></SecureStopRecord></SecureStopRecords></CustomData> <EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Element"><EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"></EncryptionMethod><KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"><KeyName>TIDKey</KeyName></KeyInfo><CipherData><CipherValue>LobgXVM2r0F8pAXzPIpOZ5VI+UkMw5myQLgNi46yZl2DoWel+opxzVitY3byQMtpczW+IiG0XFv6qxOT+7cIj9ucagWPlUk6I7MiSbP4g8RPnvrJrZDA6FqQ1VOwCQ4TXvvBvQtI+p4mxYLuS5+Nl8JxazaKEajoXomtY0/c0R2NEUgEoTBKSZUWjzzIFLSHxLN8smgAMOv7Rln8IeEVag==</CipherValue></CipherData></EncryptedData> </SecureStopResponse> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#"><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></CanonicalizationMethod><SignatureMethod Algorithm="http://schemas.microsoft.com/DRM/2007/03/protocols#ecdsa-sha256"></SignatureMethod><Reference URI="#SignedData"><DigestMethod Algorithm="http://schemas.microsoft.com/DRM/2007/03/protocols#sha256"></DigestMethod><DigestValue>hej3hySzZTIbpLppLUIQhSWmyjk1C2EGrIue9Br/i2w=</DigestValue></Reference></SignedInfo><SignatureValue>R3E+fShow58I+MjDwYfy3DZ7MWJCZgAPRQ9u2Y57MpNBi2hgn3B2HO5PCGF/Qn7TL/pUUJqaaaplhsgPh8uokg==</SignatureValue></Signature> </Response> </ProcessSecureStopDataResult> </ProcessSecureStopDataResponse> </soap:Body> </soap:Envelope>
Which gives the following secure stop events (extracted from the CustomData node):
<SecureStopRecords>
<SecureStopRecord>
<SessionID>c6b1902a-c50c-fa3c-6be9-c175a4c6aa1e</SessionID>
<StartTime>10/23/2017 10:58:12 PM</StartTime>
<UpdateTime>10/23/2017 10:58:13 PM</UpdateTime>
<Stopped>False</Stopped>
</SecureStopRecord>
</SecureStopRecords>