mirror of
				https://github.com/devine-dl/pywidevine.git
				synced 2025-11-04 03:44:50 +00:00 
			
		
		
		
	Update Changelog for v1.2.0
This commit is contained in:
		
							parent
							
								
									e36411cfaf
								
							
						
					
					
						commit
						7bb9ebf8f7
					
				
							
								
								
									
										46
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										46
									
								
								CHANGELOG.md
									
									
									
									
									
								
							@ -5,6 +5,51 @@ 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.2.0] - 2022-07-30
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Added
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- The CLI command `migrate` can now accept a folder path to batch migrate WVD files.
 | 
				
			||||||
 | 
					- The Cdm now uses custom exceptions where the use case is justified. All custom exceptions are under a parent custom
 | 
				
			||||||
 | 
					  exception to allow catching of any Pywidevine exception.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Changed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- The Cdm has been reworked as a session-based Cdm. You now initialize the Cdm with just the device you wish to use,
 | 
				
			||||||
 | 
					  and now you open sessions with `Cdm.open()` to get a session ID. For usage example see `license` CLI command in
 | 
				
			||||||
 | 
					  `main.py`.
 | 
				
			||||||
 | 
					- For the above change, `serve` CLI command interface has changed and now uses a `/open/{device}` endpoint to start
 | 
				
			||||||
 | 
					  a Cdm session. The client will need to first use /open to get a Session ID, then pass the Session ID through to both
 | 
				
			||||||
 | 
					  /challenge and /keys now.
 | 
				
			||||||
 | 
					- The Cdm no longer requires you to specify `raw` bool parameter. It now supports arbitrary and valid Widevine Cenc
 | 
				
			||||||
 | 
					 Header Data without needing to explicitly specify which it is.
 | 
				
			||||||
 | 
					- The Cdm `pssh` param has been renamed as `init_data`. Doc-strings have been changed to prioritize explanation of it
 | 
				
			||||||
 | 
					  referring to Widevine Cenc Header rather than PSSH Boxes. This is to show that the Cdm more-so wants Init Data than
 | 
				
			||||||
 | 
					  a PSSH box. The full PSSH is never kept nor ever used, only it's init data is. It still supports PSSH box data.
 | 
				
			||||||
 | 
					- Cdm `set_service_certificate()` now returns the provider ID string rather than the underlying (and now verified)
 | 
				
			||||||
 | 
					  DrmCertificate. This is because the DrmCertificate is not likely useful and would still be possible to obtain in full
 | 
				
			||||||
 | 
					  but quick access to the Provider ID may be more useful.
 | 
				
			||||||
 | 
					- License responses can now be only be parsed once by `Cdm.parse_license()`. Any further attempts will raise an
 | 
				
			||||||
 | 
					  InvalidContext exception. This is because context data is now cleared for it's respective License Request once it's
 | 
				
			||||||
 | 
					  parsed to reduce data lingering in memory.
 | 
				
			||||||
 | 
					- Trove Classifier for Development Status is now 5 (Production/Stable).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Removed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- You can no longer provide a direct `DrmCertificate` to `Cdm.set_service_certificate()` for security reasons.
 | 
				
			||||||
 | 
					  You must provide either a `SignedDrmCertificate` or a `SignedMessage` containing a `SignedDrmCertificate`.
 | 
				
			||||||
 | 
					- PSSH `from_init_data()` has been removed. It was unused and is unnecessary with improvements to `get_as_box()`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Fixed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Cdm `set_service_certificate()` now verifies the signature of the provided Certificate. This patches a trivial
 | 
				
			||||||
 | 
					  exploit/workaround that allows an attacker to recover the plaintext Client ID from an encrypted Client ID.
 | 
				
			||||||
 | 
					- Cdm `parse_license()` now verifies the input message type as a `LICENSE` message.
 | 
				
			||||||
 | 
					- Cdm `parse_license()` now clears context for the License Request once it's License Response message has been parsed.
 | 
				
			||||||
 | 
					  This reduces data lingering in the `context` dictionary when it may only be needed once.
 | 
				
			||||||
 | 
					- The Context Availability error handler in Cdm `parse_license()` has been fixed.
 | 
				
			||||||
 | 
					- Typing of `type_` param of `Cdm.get_license_challenge()` has been fixed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## [1.1.1] - 2022-07-22
 | 
					## [1.1.1] - 2022-07-22
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Fixed
 | 
					### Fixed
 | 
				
			||||||
@ -67,6 +112,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Initial Release.
 | 
					Initial Release.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[1.2.0]: https://github.com/rlaphoenix/pywidevine/releases/tag/v1.2.0
 | 
				
			||||||
[1.1.1]: https://github.com/rlaphoenix/pywidevine/releases/tag/v1.1.1
 | 
					[1.1.1]: https://github.com/rlaphoenix/pywidevine/releases/tag/v1.1.1
 | 
				
			||||||
[1.1.0]: https://github.com/rlaphoenix/pywidevine/releases/tag/v1.1.0
 | 
					[1.1.0]: https://github.com/rlaphoenix/pywidevine/releases/tag/v1.1.0
 | 
				
			||||||
[1.0.1]: https://github.com/rlaphoenix/pywidevine/releases/tag/v1.0.1
 | 
					[1.0.1]: https://github.com/rlaphoenix/pywidevine/releases/tag/v1.0.1
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user