MCPcopy Create free account
hub / github.com/DevLARLEY/PlayreadyProxy2 / parseLicense

Method parseLicense

background.js:76–106  ·  view source on GitHub ↗
(decodedLicense, sessionId, tab_url)

Source from the content-addressed store, hash-verified

74 }
75
76 static async parseLicense(decodedLicense, sessionId, tab_url) {
77 if (!Background.wrmHeaderMap.has(sessionId)) {
78 return;
79 }
80
81 const selected_device_name = await DeviceManager.getSelectedPlayreadyDevice();
82 if (!selected_device_name) {
83 return;
84 }
85
86 const device_b64 = await DeviceManager.loadPlayreadyDevice(selected_device_name);
87 const playready_device = new Device(Utils.base64ToBytes(device_b64));
88 const cdm = Cdm.fromDevice(playready_device);
89
90 const returned_keys = cdm.parseLicense(decodedLicense);
91 const keys = returned_keys.map(key => ({ k: utils.bytesToHex(key.key), kid: utils.bytesToHex(key.key_id) }));
92
93 const wrmHeader = Background.wrmHeaderMap.get(sessionId);
94 console.log("[PlayreadyProxy2]", "KEYS", JSON.stringify(keys), sessionId);
95
96 const log = {
97 type: "PLAYREADY",
98 wrm_header: wrmHeader,
99 keys: keys,
100 url: tab_url,
101 timestamp: Math.floor(Date.now() / 1000),
102 manifests: Background.manifests.has(tab_url) ? Background.manifests.get(tab_url) : []
103 }
104 Background.logs.push(log);
105 await AsyncLocalStorage.setStorage({[wrmHeader]: log});
106 }
107
108 static openPrdPicker() {
109 chrome.windows.create({

Callers 1

handleMessageMethod · 0.45

Calls 6

loadPlayreadyDeviceMethod · 0.80
base64ToBytesMethod · 0.80
fromDeviceMethod · 0.80
getMethod · 0.80
setStorageMethod · 0.80

Tested by

no test coverage detected