클라이언트에서 지원하는 기능을 확인하는 방법
PlayReady 디바이스 포팅 키트 버전 4.4부터 클라이언트는 라이선스 취득 과제의 일환으로 라이선스 서버에 지원하는 기능에 대한 정보를 보냅니다. 여기에는 REE(Rich Execution Environment) 기능과 TEE(신뢰할 수 있는 실행 환경) 기능이 모두 포함됩니다.
PlayReady Server SDK 버전 4.4부터 이 정보는 LicenseChallenge 클래스를 통해 애플리케이션에 공개적으로 제공됩니다. (이전 버전의 PlayReady Server SDK는 라이선스 취득 과제에 있는 경우 이 정보를 무시합니다.) 이 페이지에서는 이 기능을 사용하여 클라이언트가 구현한 기능에 따라 서버 애플리케이션에서 결정을 내리는 방법을 설명합니다.
기능은 TEE 속성, TEE API 및 REE 기능의 세 가지 다른 범주에서 LicenseChallenge 클래스를 통해 노출됩니다. 클라이언트 기능의 개별 범주에 액세스하려면 라이선스 챌린지의 속성을 사용하여 각 기능에 해당하는 열거형 목록을 얻거나 라이선스 챌린지 내에서 전송된 기능 정보가 포함된 원시 XML에 액세스할 수 있습니다. 버전 4.4를 기준으로 LicenseChallenge 클래스에 노출된 기능은 해당 열거형 값과 함께 아래에 나열됩니다.
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
Metering
ModelCertificateRevocation
InMemoryOnlyLicenses
성능
정품 인증
해지
SecureDelete
SecureStop
SecureStop2
SecureTime
StructuredSerialization
XmlParsingCache
LicenseAcquisition
LegacyXmlCertificates
AESCBCS
노출되는 클라이언트 기능 집합과 관련하여 LicenseChallenge 클래스가 있을 수 있는 몇 가지 일반적인 상태가 있습니다.
- TeePropertyList, TeeApiList 및 ReeFeatureList가 모두 비어 있으면 클라이언트가 4.4보다 오래된 PK 버전을 실행하고 있음을 의미합니다.
- 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에서 제공하며 보안 수준으로 신뢰할 수 있습니다.