PlayReady 版本 4.6 中的新增功能
本页概述了 PlayReady 版本 4.5 和 PlayReady 版本 4.6 之间的最重大更改。
PlayReady 版本 4.6 中的常规更改
密钥交换
从 PlayReady 4.6 开始,单个密钥交换许可证可以包含具有不同算法的多个密钥。
PlayReady Server SDK 版本 4.6 中的更改
常规服务器更改
- .NET Core SDK 已迁移到 .NET 版本 6.0。
- 密钥交换许可证现在可以包含具有不同算法的多个密钥。
服务器 API 更改
这只是一个概述。 有关详细信息,请参阅 服务器 API 文档 。
- LicenseChallengeReeFeatures 枚举现在包含值 KeyExchangeMultiple。
- 如果质询的 ReeFeatureList 包含 LicenseChallengeReeFeatures.KeyExchangeMultiple,现在可以使用不同的 KeyExchangeRight 实例多次调用 KeyExchangeLicense 类方法 AddRight。
- IPackagingDataAcquisitionHandler 已添加到 .NET Core 版本。 .NET Core 服务器 SDK 最初发布时没有此功能。 它被重新添加,以缩小旧版和 .NET Core 版本之间的此功能差距。
- IServerAuthorization 现在包括 OnServerCertificateParsed。 此方法在服务器 SDK 验证服务器证书后调用。 如果验证成功,则会向处理程序提供证书对象;否则,将提供验证异常。
- 如果 ILicenseChallenge.ReeFeatureList 不包含 LicenseChallengeReeFeatures.LicenseServerTime 而不是向客户端颁发不可用的许可证,则设置 LicenseResponse.LicenseServerTimeCertificate 现在将引发异常。
PlayReady 设备移植工具包版本 4.6 中的更改
常规设备移植工具包更改
- 删除了仅在Microsoft内部实现中使用的更多不受支持的代码路径,以消除混淆并减少编译时间和二进制大小。
- 代码已跨各种文件移动,使链接器能够更好地进行优化。
- 将正确处理具有多个不同算法的单个 KeyExchangeLicense。
- 添加了xmrlicensetoxml.exe工具和源代码。
- 所有内存分配函数(如Oem_MemAlloc)现在都采用基于系统体系结构的大小 (32 位或 64 位) ,而不是始终采用 32 位大小。
- 修复了Drm_SecureDelete_GenerateChallenge中的内存泄漏问题。
- drmmanager 测试区域划分为多个单独的测试区域,使日志更易于导航。 作为单个测试区域,日志文件非常庞大。
设备移植工具包 API 更改
这只是一个概述。 有关详细信息,请参阅 PlayReady 设备移植工具包 中关联的代码注释中提供的 API 文档。
以下 OEM REE 和 TEE API 已更改为使用DRM_SIZE_T而不是大小DRM_DWORD。
- Oem_MemAlloc
- Oem_Broker_MemAlloc
- OEM_TEE_BASE_SecureMemAlloc
- DRMCRT_ScrubMemory
- DRMCRT_LocalMemcpy
- DRMCRT_LocalMemset
- DRMCRT_LocalDWORDSetZero
- DRMCRT_LocalAreEqual
- DRMCRT_LocalDWORDcpy
添加了以下 OEM REE API:
- Oem_Device_GetClientOSInformation (可选) 。
以下 OEM TEE API 已更改:
- OEM_TEE_BASE_SecureMemHandleFree现在返回DRM_RESULT而不是DRM_VOID。
- OEM_TEE_RPROV_WrapProvisioningRequest现在包括输入上的会话密钥(如果可用)。