(decodedLicense, sessionId, tab_url)
| 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({ |
no test coverage detected