dependabot[bot]
0caccfd014
Bump protobuf from 3.19.3 to 3.19.5
...
Bumps [protobuf](https://github.com/protocolbuffers/protobuf ) from 3.19.3 to 3.19.5.
- [Release notes](https://github.com/protocolbuffers/protobuf/releases )
- [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/generate_changelog.py )
- [Commits](https://github.com/protocolbuffers/protobuf/compare/v3.19.3...v3.19.5 )
---
updated-dependencies:
- dependency-name: protobuf
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-09-23 22:25:47 +00:00
rlaphoenix
23511f1d85
Update Changelog for v1.4.3
2022-09-10 21:55:20 +01:00
rlaphoenix
fe90155a27
Bump to v1.4.3
2022-09-10 21:55:12 +01:00
rlaphoenix
cff40142b8
RemoteCdm: Bump minimum server ver. to 1.4.3
2022-09-10 21:53:33 +01:00
rlaphoenix
16fd204743
Serve: Properly enforce privacy mode
2022-09-10 21:53:14 +01:00
rlaphoenix
e8226f605c
Serve: Use new get_service_certificate() to properly enforce privacy mode
2022-09-10 21:36:21 +01:00
rlaphoenix
768c4e7851
Cdm: Implement get_service_certificate()
2022-09-10 21:36:21 +01:00
rlaphoenix
987eee2b0f
Cdm: More clearly represent a DecodeError in set_service_cert
2022-09-10 21:19:27 +01:00
rlaphoenix
8306e092e8
Serve: Add privacy_mode flag for get_license_challenge
2022-09-10 20:43:59 +01:00
rlaphoenix
deefb6fbe1
Serve: Don't redefine built-in `open`
2022-09-10 20:39:50 +01:00
rlaphoenix
b0453b64ac
Remove f-strings without any expressions
2022-09-10 20:38:36 +01:00
rlaphoenix
f0df2f4490
PSSH: Merge some collapsible if statements
2022-09-10 20:37:41 +01:00
rlaphoenix
7436c60d00
Replace all lazy log formatting with logging formatting
...
DeepSource (PYL-W1203)
2022-09-10 20:35:39 +01:00
rlaphoenix
7c826624a2
docs: Add a minimal example
2022-09-10 20:15:24 +01:00
rlaphoenix
3ef69deb29
docs: Remove the Protocol from README
...
There's no need for it. The image isn't even done particularly well. It's too specific to a browser scenario with some information not properly reflected/explained in the legend.
I have no reason to try make my own or look for an alternative. If someone is particularly interested they can look online for more or less broad explanations as they see fit.
2022-09-10 19:57:03 +01:00
rlaphoenix
b766e5e992
docs: Add troubleshooting steps to README
2022-09-10 19:54:32 +01:00
rlaphoenix
3cca1aebcd
docs: Add installation instructions to README
2022-09-10 19:53:59 +01:00
rlaphoenix
31d9bfd072
docs: Add list of features to README
2022-09-10 19:32:28 +01:00
rlaphoenix
1156edfef7
deps: Update lxml to >=4.9.1
...
This is to fix some security vulnerabilities. The main dependency locking this to 4.8.0 for so long was pycaption, which was updated to support 4.9.1 in v2.1.0.
2022-09-07 12:50:03 +01:00
rlaphoenix
24dfd828cb
Update Changelog for v1.4.2
2022-09-05 13:03:46 +01:00
rlaphoenix
78986eb245
Bump to v1.4.2
2022-09-05 13:02:41 +01:00
rlaphoenix
362510de68
Device: Re-raise DecodeErrors within some DecodeError handlers
2022-09-05 12:55:06 +01:00
rlaphoenix
fa499a6a53
Improve verification of proto parsing across Cdm, RemoteCdm and Device
...
This ensures that a partially parsing input (because of optional flags in the proto) does not get past any verification checks.
This prevents issues like an invalid License Challenging from getting an exception later down the line, as well as possibility of it also passing that check by pure luck, resulting in hard to debug issues.
2022-09-05 12:49:27 +01:00
rlaphoenix
23c766af71
Cdm: Improve accuracy of OEMCrypto request_id research
...
The main change is that it isn't stored as 16-bytes. Effectively not stored like it realistically probably meant to be. It's instead stored as a hex string that was then encoded to bytes (32 data is now taken up).
But I've also improved the comments about my research for the first half of the request ID. This research is likely still incomplete as I'm just not fully sure about the randomness of bytes 5-8.
2022-09-03 19:43:31 +01:00
rlaphoenix
2af929a83d
Cdm: Use reversed OEMCrypto request id formula for Android devices
...
It's effectively 8 random bytes with a counter thats right-padded (to 8 bytes). This counter is the Session number.
2022-08-21 22:39:26 +01:00
rlaphoenix
838df7c22b
Set a unique number to each Session of each Cdm
2022-08-21 22:37:28 +01:00
rlaphoenix
9191e0258f
Update Changelog for v1.4.1
2022-08-17 17:26:57 +01:00
rlaphoenix
cabcc1c2c2
Bump to v1.4.1
2022-08-17 17:26:44 +01:00
rlaphoenix
077a3aa6be
PSSH: Rework from_playready_pssh class method as normal method
2022-08-06 13:48:39 +01:00
rlaphoenix
0d13d4184b
PSSH: Rework get_key_ids as key_ids property
2022-08-06 13:45:30 +01:00
rlaphoenix
1064c7953c
PSSH: Rework overwrite_key_ids as set_key_ids method
2022-08-06 13:42:31 +01:00
rlaphoenix
fc77f064ca
Update Changelog for v1.4.0
2022-08-06 12:42:02 +01:00
rlaphoenix
f30ca45550
Bump to v1.4.0
2022-08-06 12:41:46 +01:00
rlaphoenix
576d7212d5
Cdm: Privatize the sessions map even harder
...
This is to further discourage direct access to the sessions directly
2022-08-06 12:36:48 +01:00
rlaphoenix
4f32b4b790
RemoteCdm: Increase minimum supported server to v1.4.0
2022-08-06 12:36:48 +01:00
rlaphoenix
2e2b5d528a
RemoteCdm: Improve API error handling
2022-08-06 12:36:48 +01:00
rlaphoenix
2179987986
RemoteCdm: Remove all uses of Session()
...
This is now possible because everything relating to an underlying session is now finally fully remote thanks to the changes surrounding the new get_keys() method.
Any client code still getting keys by accessing `_sessions` manually should be updated to use the get_keys() method.
2022-08-06 12:36:48 +01:00
rlaphoenix
665b77bd24
serve: No longer return keys in /parse_license
...
/get_keys should now be used after /parse_license call is made.
2022-08-06 12:36:48 +01:00
rlaphoenix
3499c0cf4d
RemoteCdm: Implement get_keys()
2022-08-06 12:36:48 +01:00
rlaphoenix
e4e109b9f3
RemoteCdm: Remove unnecessary parsing of license msg
2022-08-06 09:54:14 +01:00
rlaphoenix
1d606a9e54
Use Cdm.get_keys in license CLI command
2022-08-06 09:54:14 +01:00
rlaphoenix
f36977ef19
serve: Improve type hinting on Cdms gotten from app["cdms"]
...
For some reason on PyCharm typing doesnt work normally here even though the definition is provided in _startup().
2022-08-06 09:54:14 +01:00
rlaphoenix
dd1a355691
serve: Improve error handling on /parse_license
2022-08-06 09:54:14 +01:00
rlaphoenix
6eceaaf410
serve: Remote TODO that will not be done
...
We shouldn't really provide the derived context keys. There isn't any use to them outside of that specific license request and license response for which it was derived from. The only use to them would be to allow the client to decrypt the keys manually, which wont be necessary nor secure.
2022-08-06 09:54:14 +01:00
rlaphoenix
bd62b8d131
serve: Provide key_type to get_keys as-is
...
There's no need for serve code to handle parsing of it when the Cdm code will do so better.
2022-08-06 09:54:14 +01:00
rlaphoenix
11a2358002
serve: Improve error handling on /get_license_challenge
2022-08-06 09:54:14 +01:00
rlaphoenix
f2ed83205b
serve: Provide license type to get_license_challenge as-is
...
There's no need for serve code to handle parsing of it when the Cdm code will do so better.
2022-08-06 09:54:14 +01:00
rlaphoenix
796cf7ffb0
serve: Improve error handling on /set_service_certificate
2022-08-06 09:54:14 +01:00
rlaphoenix
2c33af79df
serve: Catch InvalidSession instead of manually ensuring session validity
2022-08-06 09:54:14 +01:00
rlaphoenix
93d9561fac
serve: Use Cdm.get_keys() instead of accessing _sessions
2022-08-06 09:54:14 +01:00