mirror of
https://github.com/devine-dl/pywidevine.git
synced 2025-04-30 01:59:44 +00:00
Compare commits
No commits in common. "master" and "v1.7.0" have entirely different histories.
2
.github/workflows/cd.yml
vendored
2
.github/workflows/cd.yml
vendored
@ -14,7 +14,7 @@ jobs:
|
|||||||
- name: Set up Python
|
- name: Set up Python
|
||||||
uses: actions/setup-python@v4
|
uses: actions/setup-python@v4
|
||||||
with:
|
with:
|
||||||
python-version: "3.12"
|
python-version: "3.11.x"
|
||||||
- name: Install Poetry
|
- name: Install Poetry
|
||||||
uses: abatilo/actions-poetry@v2
|
uses: abatilo/actions-poetry@v2
|
||||||
with:
|
with:
|
||||||
|
6
.github/workflows/ci.yml
vendored
6
.github/workflows/ci.yml
vendored
@ -14,7 +14,7 @@ jobs:
|
|||||||
- name: Set up Python
|
- name: Set up Python
|
||||||
uses: actions/setup-python@v4
|
uses: actions/setup-python@v4
|
||||||
with:
|
with:
|
||||||
python-version: "3.12"
|
python-version: "3.11"
|
||||||
- name: Install poetry
|
- name: Install poetry
|
||||||
uses: abatilo/actions-poetry@v2
|
uses: abatilo/actions-poetry@v2
|
||||||
with:
|
with:
|
||||||
@ -27,7 +27,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
|
python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Set up Python ${{ matrix.python-version }}
|
- name: Set up Python ${{ matrix.python-version }}
|
||||||
@ -37,7 +37,7 @@ jobs:
|
|||||||
- name: Install poetry
|
- name: Install poetry
|
||||||
uses: abatilo/actions-poetry@v2
|
uses: abatilo/actions-poetry@v2
|
||||||
with:
|
with:
|
||||||
poetry-version: 1.6.1
|
poetry-version: 1.5.1 # 1.6.x+ requires Python 3.8+
|
||||||
- name: Install project
|
- name: Install project
|
||||||
run: poetry install --all-extras --only main
|
run: poetry install --all-extras --only main
|
||||||
- name: Build project
|
- name: Build project
|
||||||
|
23
CHANGELOG.md
23
CHANGELOG.md
@ -5,27 +5,6 @@ All notable changes to this project will be documented in this file.
|
|||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
## [1.8.0] - 2023-12-22
|
|
||||||
|
|
||||||
### Added
|
|
||||||
|
|
||||||
- Added `py.typed` file to support PEP561 and silence Mypy.
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
|
|
||||||
- Dropped support for Python 3.7.
|
|
||||||
- Recompiled protobuffers for version 4.25.
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
|
|
||||||
- Missing `yaml` dependency as it was only installed alongside the `serve` extras group.
|
|
||||||
- Duplicate Concatenated SignedMessages no longer throw a verification failure in `Cdm.set_service_certificate()`.
|
|
||||||
To ensure security of the messages, verification will still fail if any of the SignedMessages do not match each other.
|
|
||||||
|
|
||||||
### New Contributors
|
|
||||||
|
|
||||||
- [sr0lle](https://github.com/sr0lle)
|
|
||||||
|
|
||||||
## [1.7.0] - 2023-11-21
|
## [1.7.0] - 2023-11-21
|
||||||
|
|
||||||
- Supported Serve API: `v1.4.3` or newer
|
- Supported Serve API: `v1.4.3` or newer
|
||||||
@ -494,8 +473,6 @@ Initial Release.
|
|||||||
|
|
||||||
- Service Certificate Signatures are unverified as the signing public key is Unknown.
|
- Service Certificate Signatures are unverified as the signing public key is Unknown.
|
||||||
|
|
||||||
[1.8.0]: https://github.com/devine-dl/pywidevine/releases/tag/v1.8.0
|
|
||||||
[1.7.0]: https://github.com/devine-dl/pywidevine/releases/tag/v1.7.0
|
|
||||||
[1.6.0]: https://github.com/devine-dl/pywidevine/releases/tag/v1.6.0
|
[1.6.0]: https://github.com/devine-dl/pywidevine/releases/tag/v1.6.0
|
||||||
[1.5.3]: https://github.com/devine-dl/pywidevine/releases/tag/v1.5.3
|
[1.5.3]: https://github.com/devine-dl/pywidevine/releases/tag/v1.5.3
|
||||||
[1.5.2]: https://github.com/devine-dl/pywidevine/releases/tag/v1.5.2
|
[1.5.2]: https://github.com/devine-dl/pywidevine/releases/tag/v1.5.2
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Development
|
# Development
|
||||||
|
|
||||||
This project is managed using [Poetry](https://python-poetry.org), a fantastic Python packaging and dependency manager.
|
This project is managed using [Poetry](https://python-poetry.org), a fantastic Python packaging and dependency manager.
|
||||||
Install the latest version of Poetry before continuing. Development currently requires Python 3.8+.
|
Install the latest version of Poetry before continuing. Development currently requires Python 3.7+.
|
||||||
|
|
||||||
## Set up
|
## Set up
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
<img src="https://github.com/devine-dl/pywidevine/actions/workflows/ci.yml/badge.svg" alt="Build status">
|
<img src="https://github.com/devine-dl/pywidevine/actions/workflows/ci.yml/badge.svg" alt="Build status">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://pypi.org/project/pywidevine">
|
<a href="https://pypi.org/project/pywidevine">
|
||||||
<img src="https://img.shields.io/badge/python-3.8%2B-informational" alt="Python version">
|
<img src="https://img.shields.io/badge/python-3.7%2B-informational" alt="Python version">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://deepsource.io/gh/devine-dl/pywidevine">
|
<a href="https://deepsource.io/gh/devine-dl/pywidevine">
|
||||||
<img src="https://deepsource.io/gh/devine-dl/pywidevine.svg/?label=active+issues" alt="DeepSource">
|
<img src="https://deepsource.io/gh/devine-dl/pywidevine.svg/?label=active+issues" alt="DeepSource">
|
||||||
@ -151,7 +151,6 @@ making a CDM in C++ has immediate security benefits and a lot of methods to obsc
|
|||||||
|
|
||||||
<a href="https://github.com/rlaphoenix"><img src="https://images.weserv.nl/?url=avatars.githubusercontent.com/u/17136956?v=4&h=25&w=25&fit=cover&mask=circle&maxage=7d" alt=""/></a>
|
<a href="https://github.com/rlaphoenix"><img src="https://images.weserv.nl/?url=avatars.githubusercontent.com/u/17136956?v=4&h=25&w=25&fit=cover&mask=circle&maxage=7d" alt=""/></a>
|
||||||
<a href="https://github.com/mediaminister"><img src="https://images.weserv.nl/?url=avatars.githubusercontent.com/u/45148099?v=4&h=25&w=25&fit=cover&mask=circle&maxage=7d" alt=""/></a>
|
<a href="https://github.com/mediaminister"><img src="https://images.weserv.nl/?url=avatars.githubusercontent.com/u/45148099?v=4&h=25&w=25&fit=cover&mask=circle&maxage=7d" alt=""/></a>
|
||||||
<a href="https://github.com/sr0lle"><img src="https://images.weserv.nl/?url=avatars.githubusercontent.com/u/111277375?v=4&h=25&w=25&fit=cover&mask=circle&maxage=7d" alt=""/></a>
|
|
||||||
|
|
||||||
## Licensing
|
## Licensing
|
||||||
|
|
||||||
|
838
poetry.lock
generated
838
poetry.lock
generated
File diff suppressed because it is too large
Load Diff
@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
|
|||||||
|
|
||||||
[tool.poetry]
|
[tool.poetry]
|
||||||
name = "pywidevine"
|
name = "pywidevine"
|
||||||
version = "1.8.0"
|
version = "1.7.0"
|
||||||
description = "Widevine CDM (Content Decryption Module) implementation in Python."
|
description = "Widevine CDM (Content Decryption Module) implementation in Python."
|
||||||
license = "GPL-3.0-only"
|
license = "GPL-3.0-only"
|
||||||
authors = ["rlaphoenix <rlaphoenix@pm.me>"]
|
authors = ["rlaphoenix <rlaphoenix@pm.me>"]
|
||||||
@ -33,28 +33,28 @@ include = [
|
|||||||
"Changelog" = "https://github.com/devine-dl/pywidevine/blob/master/CHANGELOG.md"
|
"Changelog" = "https://github.com/devine-dl/pywidevine/blob/master/CHANGELOG.md"
|
||||||
|
|
||||||
[tool.poetry.dependencies]
|
[tool.poetry.dependencies]
|
||||||
python = ">=3.8,<4.0"
|
python = ">=3.7,<4.0"
|
||||||
protobuf = "^4.25.1"
|
protobuf = "^4.24.4"
|
||||||
pymp4 = "^1.4.0"
|
pymp4 = "^1.4.0"
|
||||||
pycryptodome = "^3.19.0"
|
pycryptodome = "^3.19.0"
|
||||||
click = "^8.1.7"
|
click = "^8.1.7"
|
||||||
requests = "^2.31.0"
|
requests = "^2.31.0"
|
||||||
Unidecode = "^1.3.7"
|
Unidecode = "^1.3.7"
|
||||||
PyYAML = "^6.0.1"
|
PyYAML = "^6.0.1"
|
||||||
aiohttp = {version = "^3.9.1", optional = true}
|
aiohttp = {version = "^3.8.6", optional = true}
|
||||||
|
|
||||||
[tool.poetry.group.dev.dependencies]
|
[tool.poetry.group.dev.dependencies]
|
||||||
pre-commit = "^3.5.0"
|
pre-commit = "^2.2.1"
|
||||||
mypy = "^1.7.1"
|
mypy = "^1.4.1"
|
||||||
mypy-protobuf = "^3.5.0"
|
mypy-protobuf = "^3.4.0"
|
||||||
types-protobuf = "^4.24.0.4"
|
types-protobuf = "^4.24.0.4"
|
||||||
types-requests = "^2.31.0.10"
|
types-requests = "^2.31.0.10"
|
||||||
types-PyYAML = "^6.0.12.12"
|
types-PyYAML = "^6.0.12.12"
|
||||||
isort = "^5.12.0"
|
isort = "^5.11.5"
|
||||||
ruff = "~0.1.7"
|
ruff = "~0.1.4"
|
||||||
|
|
||||||
[tool.poetry.extras]
|
[tool.poetry.extras]
|
||||||
serve = ["aiohttp"]
|
serve = ["aiohttp", "PyYAML"]
|
||||||
|
|
||||||
[tool.poetry.scripts]
|
[tool.poetry.scripts]
|
||||||
pywidevine = "pywidevine.main:main"
|
pywidevine = "pywidevine.main:main"
|
||||||
|
@ -5,4 +5,4 @@ from .pssh import *
|
|||||||
from .remotecdm import *
|
from .remotecdm import *
|
||||||
from .session import *
|
from .session import *
|
||||||
|
|
||||||
__version__ = "1.8.0"
|
__version__ = "1.7.0"
|
||||||
|
@ -222,11 +222,7 @@ class Cdm:
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
signed_message.ParseFromString(certificate)
|
signed_message.ParseFromString(certificate)
|
||||||
if all(
|
if signed_message.SerializeToString() == certificate:
|
||||||
# See https://github.com/devine-dl/pywidevine/issues/41
|
|
||||||
bytes(chunk) == signed_message.SerializeToString()
|
|
||||||
for chunk in zip(*[iter(certificate)] * len(signed_message.SerializeToString()))
|
|
||||||
):
|
|
||||||
signed_drm_certificate.ParseFromString(signed_message.msg)
|
signed_drm_certificate.ParseFromString(signed_message.msg)
|
||||||
else:
|
else:
|
||||||
signed_drm_certificate.ParseFromString(certificate)
|
signed_drm_certificate.ParseFromString(certificate)
|
||||||
|
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user