mirror of
https://github.com/hyugogirubato/KeyDive.git
synced 2026-07-15 18:40:02 +02:00
module separation + fix provisioning response decrypt
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
import logging
|
||||
from typing import List, Dict, Optional
|
||||
|
||||
from cryptography.hazmat.primitives.asymmetric.rsa import RSAPrivateKey
|
||||
from cryptography.x509 import Certificate
|
||||
|
||||
from keydive.drm.keybox import KeyBox
|
||||
from keydive.drm.protocol.license_pb2 import ClientIdentification
|
||||
|
||||
|
||||
class BaseCdm:
|
||||
|
||||
def __init__(self):
|
||||
self.logger = logging.getLogger(self.__class__.__name__)
|
||||
self.sdk = 36
|
||||
self.disabler = True
|
||||
|
||||
self._device_aes_key: List[bytes] = []
|
||||
self._keybox: Dict[bytes, KeyBox] = {} # stable_id -> keybox
|
||||
|
||||
self._client_id: Dict[int, ClientIdentification] = {} # public_key.n -> client_id
|
||||
self._certificate: Dict[int, List[Certificate]] = {} # public_key.n -> oem_certificate
|
||||
self._private_key: Dict[int, RSAPrivateKey] = {} # public_key.n -> private_key
|
||||
|
||||
# Cached ClientIdentification instance representing the device’s current provisioning context
|
||||
# This may be reused across multiple requests to avoid re-parsing
|
||||
self._provisioning: Optional[ClientIdentification] = None
|
||||
self._context: Optional[bytes] = None
|
||||
Reference in New Issue
Block a user