Added
- WVD (Widevine Device file) Version 2 bringing reduced file sizes by up to 30%~.
- New CLI command
create-device
to create.wvd
files (Widevine Device files) from RSA PEM/DER Private Keys and
Client ID blobs. You can also provide VMP (FileHashes) data which will be merged into the Client ID blob. - New CLI command
migrate
that usesDevice.migrate()
anddump()
to migrate older v1 Widevine Device files to v2. - New
Device
methodmigrate()
to load an older Widevine Device file format. It is recommended to then use the
dumps()
method to save it as a new v2 Widevine Device file, which can then be loaded normally. - Support
SignedDrmCertificate
andDrmCertificate
messages inCdm.set_service_certificate()
. Services can provide
the certificate as aSignedMessage
,SignedDrmCertificate
, or aDrmCertificate
. OnlySignedMessage
and
SignedDrmCertificate
are signed. - Privacy Mode can now be used in the
test
CLI command with the-p/--privacy
flag.
Changed
- Moved all
.wvd
Widevine Device file structures fromDevice
to a_Structures
class indevice.py
. The
_Structures
class can be imported and used directly, or viaDevice.structures
. - Moved the majority of Widevine Device file migration code from the CLI command
migrate
toDevice.migrate()
. The
CLI commandmigrate
now internally usesDevice.migrate()
. - Set Service Certificates are now stored as
DrmCertificate
s instead of aSignedMessage
as the signature and other
data in the message is unused and unneeded.
Removed
- Unused Widevine Device file flag
send_key_control_nonce
from v1 and v2 Structures as it was only used before initial
release, and isn't a necessary nor useful flag.
Fixed
- Correct the type argument name from
type
totype_
inDevice.dump()
.
Security
- Even though support for more kinds of Service Certificate Signatures were added, they are still unverified as the
signing public keyiswas Unknown.