mirror of
				https://github.com/devine-dl/pywidevine.git
				synced 2025-11-04 11:54:50 +00:00 
			
		
		
		
	Cdm: Support multiple forms of Service Certs in encrypt_client_id
This commit is contained in:
		
							parent
							
								
									0c85abb2d4
								
							
						
					
					
						commit
						5c1b0e89ef
					
				@ -424,7 +424,7 @@ class Cdm:
 | 
			
		||||
    @staticmethod
 | 
			
		||||
    def encrypt_client_id(
 | 
			
		||||
        client_id: ClientIdentification,
 | 
			
		||||
        service_certificate: DrmCertificate,
 | 
			
		||||
        service_certificate: Union[SignedMessage, SignedDrmCertificate, DrmCertificate],
 | 
			
		||||
        key: bytes = None,
 | 
			
		||||
        iv: bytes = None
 | 
			
		||||
    ) -> EncryptedClientIdentification:
 | 
			
		||||
@ -432,6 +432,14 @@ class Cdm:
 | 
			
		||||
        privacy_key = key or get_random_bytes(16)
 | 
			
		||||
        privacy_iv = iv or get_random_bytes(16)
 | 
			
		||||
 | 
			
		||||
        if isinstance(service_certificate, SignedMessage):
 | 
			
		||||
            signed_drm_certificate = SignedDrmCertificate()
 | 
			
		||||
            signed_drm_certificate.ParseFromString(service_certificate.msg)
 | 
			
		||||
            service_certificate = signed_drm_certificate
 | 
			
		||||
        if isinstance(service_certificate, SignedDrmCertificate):
 | 
			
		||||
            drm_certificate = DrmCertificate()
 | 
			
		||||
            drm_certificate.ParseFromString(service_certificate.drm_certificate)
 | 
			
		||||
            service_certificate = drm_certificate
 | 
			
		||||
        if not isinstance(service_certificate, DrmCertificate):
 | 
			
		||||
            raise ValueError(f"Expecting Service Certificate to be a DrmCertificate, not {service_certificate!r}")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user