rlaphoenix
93f70f73c2
Device: Fix header structure, should not be a constant 1
2022-07-21 16:19:52 +01:00
rlaphoenix
1442c945cc
Move Migration Code to Device.migrate()
...
Also now more effectively migrates using the v1 Structure data.
Also fixes the migration error of possibly leaving behind VMP data. Will warn you if VMP data is already in the Client ID (if its different).
2022-07-21 16:10:42 +01:00
rlaphoenix
a729648a34
Device: Reference Structures class within Device class
2022-07-21 15:49:17 +01:00
rlaphoenix
3d6ddb8dcd
Device: Remove explicit deprecated key control flag
...
This flag was used before this project was made, never after. Therefore I do not need to actually take this flag slot as deprecated from the get-go.
2022-07-21 15:48:45 +01:00
rlaphoenix
b41f09bee4
Device: Add v1 Structure for Migration
2022-07-21 15:42:17 +01:00
rlaphoenix
db80776ac0
Device: Move the structure under a Structures class
2022-07-21 15:40:46 +01:00
rlaphoenix
02ca1b00c9
Fix year on release dates in Changelog
2022-07-21 14:08:07 +01:00
rlaphoenix
7b06a3c053
Add cmd to migrate older .wvd files to v2
2022-07-21 13:58:41 +01:00
rlaphoenix
14126c67b1
Remove doc-string about non-existent name argument
2022-07-21 13:34:12 +01:00
rlaphoenix
5e93d6321d
Add cmd to create a new .wvd device file
...
It even adds VMP data to the Client ID blob directly (instead of storing possibly duplicated). It will warn you if the Client ID already had VMP data there.
The filename is generated from client id information and has a crc32 checksum to help avoid with conflicts.
The output directory is the current working directory. You can set the directory with -o/--output.
2022-07-21 13:32:13 +01:00
rlaphoenix
1f389dbab9
Device: Fix typo on `type_` in dump()
2022-07-21 13:09:53 +01:00
rlaphoenix
ac4c8affb0
deps: Add unidecode
2022-07-21 13:09:33 +01:00
rlaphoenix
f34018afe9
Bump to v1.0.1
2022-07-21 01:38:02 +01:00
rlaphoenix
8298703601
Add Changelog
2022-07-21 01:37:25 +01:00
rlaphoenix
e20f251aae
Cdm: Simplify Session ID
...
The whole Session ID based on some weird half buggy reverse engineering is completely unnecessary.
2022-07-21 01:33:09 +01:00
rlaphoenix
a55aeb8cce
docs: Remove outdated comment about Sessions
...
Sessions are technically implemented in a non-singleton approach, and the issue that provoked this comment has since been fixed (context data <-> license mismatch).
2022-07-21 01:19:10 +01:00
rlaphoenix
23165f92de
Cdm: Fix bug where context data may not correspond to the right license
...
We are using a trick with the request_id to be able to add an identifier between get_license_challenge() and parse_license() without any middleman data needing to be passed by the user.
Otherwise the user would need to either create the context data themselves after get_license_challenge() and pass it to get_license(), or something that is similar at its core to that.
2022-07-21 01:12:28 +01:00
rlaphoenix
68db728bf0
Cdm: Only store license request's context data
...
This reduces the amount of data needing to be stored, but also simplifies the key derivation.
2022-07-20 22:25:57 +01:00
rlaphoenix
53f7c1dd62
Cdm: Fix size and Improve code of Android Session IDs
2022-07-20 21:40:40 +01:00
rlaphoenix
e9e65e5760
Update license cmd to move license type from Cdm to get_license_challenge()
2022-07-20 21:11:01 +01:00
rlaphoenix
909e83c199
Cdm: Return a DecodeError in set_service_certificate
...
This is to match with the doc-string stating it returns a DecodeError on failure.
2022-07-20 20:55:08 +01:00
rlaphoenix
2bb5c9e0b5
Cdm: Remove unnecessary raw class instance variable
2022-07-20 20:37:04 +01:00
rlaphoenix
7f60844ee1
Cdm: Move License Type from constructor to get_license_challenge()
2022-07-20 20:36:17 +01:00
rlaphoenix
59615dd804
Add more information to poetry in pyproject
2022-07-20 15:03:37 +01:00
rlaphoenix
9aeef343ee
Bump to v1.0.0
2022-07-20 14:55:47 +01:00
rlaphoenix
320d57eecf
deps: Replace my pymp4 fork with official project
2022-07-20 14:55:07 +01:00
rlaphoenix
72281ece1c
Add poetry script for a 'pywidevine' shiv
2022-07-20 14:47:24 +01:00
rlaphoenix
6a9e875e35
Add Test command, uses Bitmovin demo 'Art of Motion'
2022-07-20 14:46:36 +01:00
rlaphoenix
7f4ff5e0f0
Add License command for quick generic licensing
2022-07-20 14:45:28 +01:00
rlaphoenix
2701c7dcd0
Add main CLI function, shows version and homepage
2022-07-20 14:44:20 +01:00
rlaphoenix
36c83268c3
Add Widevine CDM Class
...
Please note that this CDM implementation isn't inherently secure. For more information see the README about Key and Output Security.
Also adds a utility to get an absolute path to something in the environment PATH, by multiple names, if found.
2022-07-20 14:41:42 +01:00
rlaphoenix
9331f4efc1
Add Widevine Key Class
2022-07-20 14:38:35 +01:00
rlaphoenix
5c9d4cda73
Add Widevine Device (.WVD) Class
2022-07-20 14:37:14 +01:00
rlaphoenix
35ccd2f393
Add PSSH Utility Class
2022-07-20 14:36:20 +01:00
rlaphoenix
681949bb43
Add CI/CD GitHub Workflows
2022-07-20 14:31:43 +01:00
rlaphoenix
a62a1f16f7
Add initial pyproject and poetry dependencies
2022-07-20 14:31:08 +01:00
rlaphoenix
ba0e89aea3
Add License Protocol Buffer
2022-07-20 14:30:29 +01:00
rlaphoenix
94b0b99912
Add README and Widevine Protocol Overview
2022-07-20 14:29:42 +01:00
rlaphoenix
74b672a670
Add gitignore and license
2022-07-20 14:29:17 +01:00
rlaphoenix
f4e2e83ed8
Add GitHub Issue Templates
2022-07-20 14:28:52 +01:00