Update SimulCrypt ECMG on injecting entitlement keys
This commit is contained in:
@@ -29,7 +29,7 @@ constexpr char kTestEcmgChannelSetup[] = {
|
|||||||
constexpr char kTestEcmgChannelSetupWithPrivateParameters[] = {
|
constexpr char kTestEcmgChannelSetupWithPrivateParameters[] = {
|
||||||
'\x03', // protocol_version
|
'\x03', // protocol_version
|
||||||
'\x00', '\x01', // message_type - Channel_setup
|
'\x00', '\x01', // message_type - Channel_setup
|
||||||
'\x00', '\x8c', // message_length
|
'\x00', '\x1e', // message_length
|
||||||
'\x00', '\x0e', // parameter_type - ECM_channel_id
|
'\x00', '\x0e', // parameter_type - ECM_channel_id
|
||||||
'\x00', '\x02', // parameter_length
|
'\x00', '\x02', // parameter_length
|
||||||
'\x00', '\x01', // parameter_value
|
'\x00', '\x01', // parameter_value
|
||||||
@@ -42,29 +42,7 @@ constexpr char kTestEcmgChannelSetupWithPrivateParameters[] = {
|
|||||||
'\x80', '\x01', // parameter_type - CRYPTO_MODE
|
'\x80', '\x01', // parameter_type - CRYPTO_MODE
|
||||||
'\x00', '\x07', // parameter_length
|
'\x00', '\x07', // parameter_length
|
||||||
'A', 'e', 's', 'S', 'c', 't', 'e', // parameter_value
|
'A', 'e', 's', 'S', 'c', 't', 'e', // parameter_value
|
||||||
'\x80', '\x02', // parameter_type - TRACK_TYPES
|
};
|
||||||
'\x00', '\x02', // parameter_length
|
|
||||||
'S', 'D', // parameter_value
|
|
||||||
'\x80', '\x05', // parameter_type - ENTITLEMENT_ID_KEY_COMBINATION
|
|
||||||
'\x00', '\x30', // parameter_length
|
|
||||||
// parameter_value - ENTITLEMENT_ID (16 bytes)
|
|
||||||
'\x30', '\x31', '\x32', '\x33', '\x34', '\x35', '\x36', '\x37', //
|
|
||||||
'\x30', '\x31', '\x32', '\x33', '\x34', '\x35', '\x36', '\x37', //
|
|
||||||
// parameter_value (continued) - ENTITLEMENT_KEY (32 bytes)
|
|
||||||
'\x30', '\x31', '\x32', '\x33', '\x34', '\x35', '\x36', '\x37', //
|
|
||||||
'\x30', '\x31', '\x32', '\x33', '\x34', '\x35', '\x36', '\x37', //
|
|
||||||
'\x30', '\x31', '\x32', '\x33', '\x34', '\x35', '\x36', '\x37', //
|
|
||||||
'\x30', '\x31', '\x32', '\x33', '\x34', '\x35', '\x36', '\x37', //
|
|
||||||
'\x80', '\x05', // parameter_type - ENTITLEMENT_ID_KEY_COMBINATION
|
|
||||||
'\x00', '\x30', // parameter_length
|
|
||||||
// parameter_value - ENTITLEMENT_ID (16 bytes)
|
|
||||||
'\x61', '\x62', '\x63', '\x64', '\x65', '\x66', '\x67', '\x68', //
|
|
||||||
'\x61', '\x62', '\x63', '\x64', '\x65', '\x66', '\x67', '\x68', //
|
|
||||||
// parameter_value (continued) - ENTITLEMENT_KEY (32 bytes)
|
|
||||||
'\x61', '\x62', '\x63', '\x64', '\x65', '\x66', '\x67', '\x68', //
|
|
||||||
'\x61', '\x62', '\x63', '\x64', '\x65', '\x66', '\x67', '\x68', //
|
|
||||||
'\x61', '\x62', '\x63', '\x64', '\x65', '\x66', '\x67', '\x68', //
|
|
||||||
'\x61', '\x62', '\x63', '\x64', '\x65', '\x66', '\x67', '\x68'};
|
|
||||||
|
|
||||||
constexpr char kTestEcmgChannelTest[] = {
|
constexpr char kTestEcmgChannelTest[] = {
|
||||||
'\x03', // protocol_version
|
'\x03', // protocol_version
|
||||||
@@ -126,7 +104,7 @@ constexpr char kTestEcmgChannelStatus[] = {
|
|||||||
constexpr char kTestEcmgStreamSetupWithPrivateParameters[] = {
|
constexpr char kTestEcmgStreamSetupWithPrivateParameters[] = {
|
||||||
'\x03', // protocol_version
|
'\x03', // protocol_version
|
||||||
'\x01', '\x01', // message_type - Stream_setup
|
'\x01', '\x01', // message_type - Stream_setup
|
||||||
'\x00', '\x46', // message_length
|
'\x00', '\xae', // message_length
|
||||||
'\x00', '\x0e', // parameter_type - ECM_channel_id
|
'\x00', '\x0e', // parameter_type - ECM_channel_id
|
||||||
'\x00', '\x02', // parameter_length
|
'\x00', '\x02', // parameter_length
|
||||||
'\x00', '\x01', // parameter_value
|
'\x00', '\x01', // parameter_value
|
||||||
@@ -139,17 +117,37 @@ constexpr char kTestEcmgStreamSetupWithPrivateParameters[] = {
|
|||||||
'\x00', '\x10', // parameter_type - nominal_CP_duration
|
'\x00', '\x10', // parameter_type - nominal_CP_duration
|
||||||
'\x00', '\x02', // parameter_length
|
'\x00', '\x02', // parameter_length
|
||||||
'\x00', '\x64', // parameter_value
|
'\x00', '\x64', // parameter_value
|
||||||
'\x80', '\x03', // parameter_type - STREAM_TRACK_TYPE
|
'\x80', '\x02', // parameter_type - STREAM_TRACK_TYPE
|
||||||
'\x00', '\x02', // parameter_length
|
'\x00', '\x02', // parameter_length
|
||||||
'S', 'D', // parameter_value
|
'S', 'D', // parameter_value
|
||||||
'\x80', '\x04', // parameter_type - CONTENT_IV
|
'\x80', '\x03', // parameter_type - CONTENT_IV
|
||||||
'\x00', '\x10', // parameter_length
|
'\x00', '\x10', // parameter_length
|
||||||
'\x00', '\x01', '\x02', '\x03', '\x04', '\x05', '\x06', '\x07',
|
'\x00', '\x01', '\x02', '\x03', '\x04', '\x05', '\x06', '\x07', //
|
||||||
'\x08', '\x09', '\x0a', '\x0b', '\x0c', '\x0d', '\x0e', '\x0f',
|
'\x08', '\x09', '\x0a', '\x0b', '\x0c', '\x0d', '\x0e', '\x0f', //
|
||||||
'\x80', '\x04', // parameter_type - CONTENT_IV
|
'\x80', '\x03', // parameter_type - CONTENT_IV
|
||||||
'\x00', '\x10', // parameter_length
|
'\x00', '\x10', // parameter_length
|
||||||
'\x10', '\x11', '\x12', '\x13', '\x14', '\x15', '\x16', '\x17',
|
'\x10', '\x11', '\x12', '\x13', '\x14', '\x15', '\x16', '\x17', //
|
||||||
'\x18', '\x19', '\x1a', '\x1b', '\x1c', '\x1d', '\x1e', '\x1f'};
|
'\x18', '\x19', '\x1a', '\x1b', '\x1c', '\x1d', '\x1e', '\x1f', //
|
||||||
|
'\x80', '\x04', // parameter_type - ENTITLEMENT_ID_KEY_COMBINATION
|
||||||
|
'\x00', '\x30', // parameter_length
|
||||||
|
// parameter_value - ENTITLEMENT_ID (16 bytes)
|
||||||
|
'\x30', '\x31', '\x32', '\x33', '\x34', '\x35', '\x36', '\x37', //
|
||||||
|
'\x30', '\x31', '\x32', '\x33', '\x34', '\x35', '\x36', '\x37', //
|
||||||
|
// parameter_value (continued) - ENTITLEMENT_KEY (32 bytes)
|
||||||
|
'\x30', '\x31', '\x32', '\x33', '\x34', '\x35', '\x36', '\x37', //
|
||||||
|
'\x30', '\x31', '\x32', '\x33', '\x34', '\x35', '\x36', '\x37', //
|
||||||
|
'\x30', '\x31', '\x32', '\x33', '\x34', '\x35', '\x36', '\x37', //
|
||||||
|
'\x30', '\x31', '\x32', '\x33', '\x34', '\x35', '\x36', '\x37', //
|
||||||
|
'\x80', '\x04', // parameter_type - ENTITLEMENT_ID_KEY_COMBINATION
|
||||||
|
'\x00', '\x30', // parameter_length
|
||||||
|
// parameter_value - ENTITLEMENT_ID (16 bytes)
|
||||||
|
'\x61', '\x62', '\x63', '\x64', '\x65', '\x66', '\x67', '\x68', //
|
||||||
|
'\x61', '\x62', '\x63', '\x64', '\x65', '\x66', '\x67', '\x68', //
|
||||||
|
// parameter_value (continued) - ENTITLEMENT_KEY (32 bytes)
|
||||||
|
'\x61', '\x62', '\x63', '\x64', '\x65', '\x66', '\x67', '\x68', //
|
||||||
|
'\x61', '\x62', '\x63', '\x64', '\x65', '\x66', '\x67', '\x68', //
|
||||||
|
'\x61', '\x62', '\x63', '\x64', '\x65', '\x66', '\x67', '\x68', //
|
||||||
|
'\x61', '\x62', '\x63', '\x64', '\x65', '\x66', '\x67', '\x68'};
|
||||||
|
|
||||||
constexpr char kTestEcmgStreamSetup[] = {
|
constexpr char kTestEcmgStreamSetup[] = {
|
||||||
'\x03', // protocol_version
|
'\x03', // protocol_version
|
||||||
@@ -247,7 +245,7 @@ constexpr char kTestEcmgCwProvision[] = {
|
|||||||
constexpr char kTestEcmgCwProvisionWithAccessCriteria[] = {
|
constexpr char kTestEcmgCwProvisionWithAccessCriteria[] = {
|
||||||
'\x03', // protocol_version
|
'\x03', // protocol_version
|
||||||
'\x02', '\x01', // message_type - CW_provision
|
'\x02', '\x01', // message_type - CW_provision
|
||||||
'\x00', '\xf4', // message_length
|
'\x00', '\xee', // message_length
|
||||||
'\x00', '\x0e', // parameter_type - ECM_channel_id
|
'\x00', '\x0e', // parameter_type - ECM_channel_id
|
||||||
'\x00', '\x02', // parameter_length
|
'\x00', '\x02', // parameter_length
|
||||||
'\x00', '\x01', // parameter_value
|
'\x00', '\x01', // parameter_value
|
||||||
@@ -271,28 +269,25 @@ constexpr char kTestEcmgCwProvisionWithAccessCriteria[] = {
|
|||||||
'\x10', '\x11', '\x12', '\x13', '\x14', '\x15', '\x16', '\x17', //
|
'\x10', '\x11', '\x12', '\x13', '\x14', '\x15', '\x16', '\x17', //
|
||||||
'\x18', '\x19', '\x1a', '\x1b', '\x1c', '\x1d', '\x1e', '\x1f', //
|
'\x18', '\x19', '\x1a', '\x1b', '\x1c', '\x1d', '\x1e', '\x1f', //
|
||||||
'\x00', '\x0d', // parameter_type - access_criteria
|
'\x00', '\x0d', // parameter_type - access_criteria
|
||||||
'\x00', '\xac', // parameter_length
|
'\x00', '\xa6', // parameter_length
|
||||||
'\x80', '\x00', // access_criteria parameter_type - AGE_RESTRICTION
|
'\x80', '\x00', // access_criteria parameter_type - AGE_RESTRICTION
|
||||||
'\x00', '\x01', // parameter_length
|
'\x00', '\x01', // parameter_length
|
||||||
'\x00', // parameter_value
|
'\x00', // parameter_value
|
||||||
'\x80', '\x01', // access_criteria parameter_type - CRYPTO_MODE
|
'\x80', '\x01', // access_criteria parameter_type - CRYPTO_MODE
|
||||||
'\x00', '\x07', // parameter_length
|
'\x00', '\x07', // parameter_length
|
||||||
'A', 'e', 's', 'S', 'c', 't', 'e', // parameter_value
|
'A', 'e', 's', 'S', 'c', 't', 'e', // parameter_value
|
||||||
'\x80', '\x02', // access_criteria parameter_type - TRACK_TYPES
|
'\x80', '\x02', // access_criteria parameter_type - STREAM_TRACK_TYPE
|
||||||
'\x00', '\x02', // parameter_length
|
'\x00', '\x02', // parameter_length
|
||||||
'S', 'D', // parameter_value
|
'S', 'D', // parameter_value
|
||||||
'\x80', '\x03', // access_criteria parameter_type - STREAM_TRACK_TYPE
|
'\x80', '\x03', // access_criteria parameter_type - CONTENT_IV
|
||||||
'\x00', '\x02', // parameter_length
|
|
||||||
'S', 'D', // parameter_value
|
|
||||||
'\x80', '\x04', // access_criteria parameter_type - CONTENT_IV
|
|
||||||
'\x00', '\x10', // parameter_length
|
'\x00', '\x10', // parameter_length
|
||||||
'\x00', '\x01', '\x02', '\x03', '\x04', '\x05', '\x06', '\x07', //
|
'\x00', '\x01', '\x02', '\x03', '\x04', '\x05', '\x06', '\x07', //
|
||||||
'\x08', '\x09', '\x0a', '\x0b', '\x0c', '\x0d', '\x0e', '\x0f', //
|
'\x08', '\x09', '\x0a', '\x0b', '\x0c', '\x0d', '\x0e', '\x0f', //
|
||||||
'\x80', '\x04', // access_criteria parameter_type - CONTENT_IV
|
'\x80', '\x03', // access_criteria parameter_type - CONTENT_IV
|
||||||
'\x00', '\x10', // parameter_length
|
'\x00', '\x10', // parameter_length
|
||||||
'\x10', '\x11', '\x12', '\x13', '\x14', '\x15', '\x16', '\x17', //
|
'\x10', '\x11', '\x12', '\x13', '\x14', '\x15', '\x16', '\x17', //
|
||||||
'\x18', '\x19', '\x1a', '\x1b', '\x1c', '\x1d', '\x1e', '\x1f', //
|
'\x18', '\x19', '\x1a', '\x1b', '\x1c', '\x1d', '\x1e', '\x1f', //
|
||||||
'\x80', '\x05', // parameter_type - ENTITLEMENT_ID_KEY_COMBINATION
|
'\x80', '\x04', // parameter_type - ENTITLEMENT_ID_KEY_COMBINATION
|
||||||
'\x00', '\x30', // parameter_length
|
'\x00', '\x30', // parameter_length
|
||||||
// parameter_value - ENTITLEMENT_ID (16 bytes)
|
// parameter_value - ENTITLEMENT_ID (16 bytes)
|
||||||
'\x30', '\x31', '\x32', '\x33', '\x34', '\x35', '\x36', '\x37', //
|
'\x30', '\x31', '\x32', '\x33', '\x34', '\x35', '\x36', '\x37', //
|
||||||
@@ -302,7 +297,7 @@ constexpr char kTestEcmgCwProvisionWithAccessCriteria[] = {
|
|||||||
'\x30', '\x31', '\x32', '\x33', '\x34', '\x35', '\x36', '\x37', //
|
'\x30', '\x31', '\x32', '\x33', '\x34', '\x35', '\x36', '\x37', //
|
||||||
'\x30', '\x31', '\x32', '\x33', '\x34', '\x35', '\x36', '\x37', //
|
'\x30', '\x31', '\x32', '\x33', '\x34', '\x35', '\x36', '\x37', //
|
||||||
'\x30', '\x31', '\x32', '\x33', '\x34', '\x35', '\x36', '\x37', //
|
'\x30', '\x31', '\x32', '\x33', '\x34', '\x35', '\x36', '\x37', //
|
||||||
'\x80', '\x05', // parameter_type - ENTITLEMENT_ID_KEY_COMBINATION
|
'\x80', '\x04', // parameter_type - ENTITLEMENT_ID_KEY_COMBINATION
|
||||||
'\x00', '\x30', // parameter_length
|
'\x00', '\x30', // parameter_length
|
||||||
// parameter_value - ENTITLEMENT_ID (16 bytes)
|
// parameter_value - ENTITLEMENT_ID (16 bytes)
|
||||||
'\x61', '\x62', '\x63', '\x64', '\x65', '\x66', '\x67', '\x68', //
|
'\x61', '\x62', '\x63', '\x64', '\x65', '\x66', '\x67', '\x68', //
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user