Commit Graph

126 Commits

Author SHA1 Message Date
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