HDCP Notes

HDCP keys

AKE

AKE Initial

  • kpubdcp 存储于 Tx, 由HDCP LLC 签发。在验证签名的时候使用。
  • kpubrx / kprivrx 存储于 Rx, 是 由 HDC LLC 签发的 RSA 公钥/私钥 。用于加密/解密 km. kpubrx 通过certrx传输给Tx。
  • certrx 。Public Key Certificate of HDCP Receiver 包括了kpubrx 和 DCP LLC Signature。
  • rtx 64bit随机数,包含在AKE_Init 消息中。用于计算H’。
  • rrx64-bit 随机数, 包含在AKE_Send_Cert 消息中。
  • TxCaps
  • RxCaps

  • km pseudo-random 128-bit Master Key

  • Ekupb(km)kpubrx 加密后的 km。 Tx 通过 AKE_No_Stored_km 中发给Rx

Paring

收到AKE_No_Stored_km 消息后Rx需要并行地准备 这些数据,Tx会在读取AKE_Send_H_prime后200ms内 通过 AKE_Send_Pairing_Info 命令来读取。

  • kh , 存储于Rx, kh=SHA256(kprvrx)[127:0]
  • m : m 由 rtxrrx构造。 128-bit m is constructed by concatenating rtx and rrx (rtx || rrx ). Both values are in big-endian order.
  • Ekh(km) , 存储于 Tx, 由Rx计算后传递给 Tx。Tx要把这个加密后的km和ReciverID绑定,在认证阶段传输给Rx. Encrypting k m with k h using AES as illustrated in Figure 2.3

Locality Check

  • rn 64 bit 伪随机数,在 LC-INIT 消息中由 Tx 发送给Rx
  • L’ : SMAC-SHA256(rn, kdXORrrx)

    • 过程中需要的各种数据

Key 之间的依赖关系

drivers/gpu/drm/bridge/synopsys/dw-hdmi-hdcp.o: In function `hdcp_load_keys_cb': /home/alientek/linux/tool/rk3568_linux_sdk/kernel/drivers/gpu/drm/bridge/synopsys/dw-hdmi-hdcp.c:281: undefined reference to `rk_vendor_read' /home/alientek/linux/tool/rk3568_linux_sdk/kernel/drivers/gpu/drm/bridge/synopsys/dw-hdmi-hdcp.c:281:(.text+0x2b8): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `rk_vendor_read' drivers/mfd/rk630-i2c.o: In function `rk630_i2c_probe': /home/alientek/linux/tool/rk3568_linux_sdk/kernel/drivers/mfd/rk630-i2c.c:66: undefined reference to `rk630_efuse_regmap_config' /home/alientek/linux/tool/rk3568_linux_sdk/kernel/drivers/mfd/rk630-i2c.c:66:(.text+0x180): relocation truncated to fit: R_AARCH64_ADR_PREL_PG_HI21 against undefined symbol `rk630_efuse_regmap_config' /home/alientek/linux/tool/rk3568_linux_sdk/kernel/drivers/mfd/rk630-i2c.c:66: undefined reference to `rk630_efuse_regmap_config' drivers/input/sensors/sensor-dev.o: In function `sensor_calibration_data_read': /home/alientek/linux/tool/rk3568_linux_sdk/kernel/drivers/input/sensors/sensor-dev.c:81: undefined reference to `rk_vendor_read' /home/alientek/linux/tool/rk3568_linux_sdk/kernel/drivers/input/sensors/sensor-dev.c:81:(.text+0x265c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `rk_vendor_read' drivers/input/sensors/sensor-dev.o: In function `sensor_calibration_data_write': /home/alientek/linux/tool/rk3568_linux_sdk/kernel/drivers/input/sensors/sensor-dev.c:66: undefined reference to `rk_vendor_write' /home/alientek/linux/tool/rk3568_linux_sdk/kernel/drivers/input/sensors/sensor-dev.c:66:(.text+0x3154): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `rk_vendor_write' drivers/media/i2c/rk628_csi.o: In function `hdcp_load_keys_cb': /home/alientek/linux/tool/rk3568_linux_sdk/kernel/drivers/media/i2c/rk628_csi.c:606: undefined reference to `rk_vendor_read' /home/alientek/linux/tool/rk3568_linux_sdk/kernel/drivers/media/i2c/rk628_csi.c:606:(.text+0x1b74): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `rk_vendor_read' make: *** [Makefile:1174: vmlinux] Error 1
06-17
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值