Поделиться через


Определение функций, поддерживаемых клиентом

Начиная с пакета переноса устройств PlayReady версии 4.4 клиент отправляет сведения о том, какие функции он поддерживает на сервер лицензий в рамках задачи приобретения лицензии. Сюда входят функции расширенной среды выполнения (REE) и доверенные функции среды выполнения (TEE).

Начиная с пакета SDK для сервера PlayReady версии 4.4 эта информация становится общедоступной для приложения через класс LicenseChallenge. (Предыдущие версии пакета SDK для сервера PlayReady игнорируют эти сведения, если они присутствуют в запросе на получение лицензии.) На этой странице описывается, как использовать эту функцию для принятия решений в серверном приложении на основе функций, реализованных клиентом.

Функции предоставляются через класс LicenseChallenge в трех различных catagories: TEE Properties, TEE API и REE Features. Чтобы получить доступ к отдельной категории клиентских функций, можно использовать свойства запроса лицензии, чтобы получить список перечислений, соответствующих каждой функции, или получить доступ к необработанным XML-данным, содержащим сведения о функциях, отправленных в рамках запроса лицензии. Функции, предоставляемые в классе LicenseChallenge по состоянию на версию 4.4, перечислены ниже с соответствующими значениями перечисления.

TeePropertyList:
SUPPORTS_HEVC_HW_DECODING
SUPPORTS_REMOTE_PROVISIONING
SUPPORTS_PRE_PROCESS_ENCRYPTED_DATA
REQUIRES_PRE_PROCESS_ENCRYPTED_DATA_WITH_FULL_FRAMES
REQUIRES_SAMPLE_PROTECTION
SUPPORTS_SECURE_CLOCK
SUPPORTS_SECURE_STOP
SUPPORTS_SECURE_HDCP_TYPE_1
REQUIRES_PREPARE_POLICY_INFO
SUPPORTS_DEBUG_TRACING
REQUIRES_MINIMAL_REVOCATION_DATA
SUPPORTS_OPTIMIZED_CONTENT_KEY2

TeeApiList:
DRM_TEE_BASE_AllocTEEContext
DRM_TEE_BASE_FreeTEEContext
DRM_TEE_BASE_SignDataWithSecureStoreKey
DRM_TEE_BASE_CheckDeviceKeys
DRM_TEE_BASE_GetDebugInformation
DRM_TEE_BASE_GenerateNonce
DRM_TEE_BASE_GetSystemTime
DRM_TEE_LPROV_GenerateDeviceKeys
DRM_TEE_RPROV_GenerateBootstrapChallenge
DRM_TEE_RPROV_ProcessBootstrapResponse
DRM_TEE_RPROV_GenerateProvisioningRequest
DRM_TEE_RPROV_ProcessProvisioningResponse
DRM_TEE_LICPREP_PackageKey
DRM_TEE_SAMPLEPROT_PrepareSampleProtectionKey
DRM_TEE_DECRYPT_PreparePolicyInfo
DRM_TEE_DECRYPT_PrepareToDecrypt
DRM_TEE_DECRYPT_CreateOEMBlobFromCDKB
DRM_TEE_AES128CTR_DecryptContent
DRM_TEE_SIGN_SignHash
DRM_TEE_DOM_PackageKeys
DRM_TEE_RESERVED_20
DRM_TEE_RESERVED_21
DRM_TEE_RESERVED_22
DRM_TEE_RESERVED_23
DRM_TEE_REVOCATION_IngestRevocationInfo
DRM_TEE_LICGEN_CompleteLicense
DRM_TEE_LICGEN_AES128CTR_EncryptContent
DRM_TEE_RESERVED_27
DRM_TEE_RESERVED_28
DRM_TEE_RESERVED_29
DRM_TEE_RESERVED_30
DRM_TEE_RESERVED_31
DRM_TEE_RESERVED_32
DRM_TEE_RESERVED_33
DRM_TEE_H264_PreProcessEncryptedData
DRM_TEE_SECURESTOP_GetGenerationID
DRM_TEE_AES128CTR_DecryptAudioContentMultiple
DRM_TEE_SECURETIME_GenerateChallengeData
DRM_TEE_SECURETIME_ProcessResponseData
DRM_TEE_AES128CTR_DecryptContentMultiple
DRM_TEE_AES128CBC_DecryptContentMultiple
DRM_TEE_SECURESTOP2_GetSigningKeyBlob
DRM_TEE_SECURESTOP2_SignChallenge
DRM_TEE_BASE_GetFeatureInformation

ReeFeatureList:
Сборка
PersistentStorePrealloc
ECCProfiling
ForceAlign
InlineDwordCopy
FileLocking
Многопоточность
Native64BitTypes
PrecomputedECCGlobalTable
Трассировка
PersistentStoreWriteThrough
AddLicenseWriteThrough
NoOptimizations
DebugBuild
Профилирование
Активация
AntirollbackClock
CDMI
CleanStore
ErrorCodeContract
PKCRT
DeviceAssets
Домены
EmbeddedLicenseStore
PersistentStore
PersistentStoreBlockHeaderCache
CDMIPersistentStore
ContentKeyGeneration
LocalLicenseGeneration
MeteringCertificateRevocation
использования
ModelCertificateRevocation
InMemoryOnlyLicenses
Производительность
Повторной активации
Запрет доступа
SecureDelete
SecureStop
SecureStop2
SecureTime
StructuredSerialization
XmlParsingCache
LicenseAcquisition
LegacyXmlCertificates
AESCBCS

Существует несколько распространенных состояний, что класс LicenseChallenge может относиться к предоставленному набору функций клиента.

  • Если teePropertyList, TeeApiList и ReeFeatureList пусты, это означает, что клиент выполняет версию PK старше 4.4.
  • Если reeFeatureList не является пустым, а TeePropertyList и TeeApiList пусты, это может означать одно из двух вещей.
    • В Windows клиентах клиент работает либо в программном DRM, либо TEE клиента старше PK версии 4.4.
    • В клиентах, отличных от Windows, reE клиента работает под управлением PK версии 4.4+, но TEE клиента старше PK версии 4.4.
  • Если teePropertyList, TeeApiList и ReeFeatureList не пусты, клиент выполняет PK версии 4.4+ для всех компонентов.
    • Примечание. TeePropertyList и TeeApiList предоставляются TEE клиента и могут быть доверенными для его уровня безопасности.