Cdm: Improve parsing of service certificates
This commit is contained in:
parent
7078759cdf
commit
d1974ad1fb
|
@ -130,21 +130,17 @@ class Cdm:
|
||||||
signed_message = SignedMessage()
|
signed_message = SignedMessage()
|
||||||
signed_drm_certificate = SignedDrmCertificate()
|
signed_drm_certificate = SignedDrmCertificate()
|
||||||
|
|
||||||
try: # SignedMessage input
|
try:
|
||||||
signed_message.ParseFromString(certificate)
|
signed_message.ParseFromString(certificate)
|
||||||
signed_drm_certificate.ParseFromString(signed_message.msg)
|
if signed_message.SerializeToString() == certificate:
|
||||||
if not signed_drm_certificate.drm_certificate:
|
signed_drm_certificate.ParseFromString(signed_message.msg)
|
||||||
raise DecodeError()
|
else:
|
||||||
DrmCertificate().ParseFromString(signed_drm_certificate.drm_certificate)
|
|
||||||
except DecodeError:
|
|
||||||
try: # SignedDrmCertificate input
|
|
||||||
signed_drm_certificate.ParseFromString(certificate)
|
signed_drm_certificate.ParseFromString(certificate)
|
||||||
if not signed_drm_certificate.drm_certificate:
|
if signed_drm_certificate.SerializeToString() != certificate:
|
||||||
raise DecodeError()
|
raise DecodeError()
|
||||||
DrmCertificate().ParseFromString(signed_drm_certificate.drm_certificate)
|
except DecodeError:
|
||||||
except DecodeError:
|
# could be a direct unsigned DrmCertificate, but reject those anyway
|
||||||
# could be a direct unsigned DrmCertificate, but reject those anyway
|
raise DecodeError("Could not parse certificate as a SignedDrmCertificate")
|
||||||
raise DecodeError("Could not parse certificate as a SignedDrmCertificate")
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
pss. \
|
pss. \
|
||||||
|
|
Loading…
Reference in New Issue