搜索
 找回密码
 立即注册

简单一步 , 微信登陆

如何简单验证HDCP key是否有效

作者:creass | 时间:2016-5-28 14:26:37 | 阅读:5361| 只看该作者
现在HDCP key基本上都是放在flash中,在没有任何debug 工具辅助的情况下,且不接HDMI信号的条件下,如何知道HDCP key是否有烧写或者是是否有效,以下函数MApp_ZUI_ACT_isHdcpValid 给出了一种方法供参考:


#if ENABLE_SHOW_HDCP_VALID_INFO_IN_FAC_MENU
static BOOLEAN MApp_ZUI_ACT_isHdcpValid(void)
{

int i;
UINT8 j,cnt=0;
UINT8 data[5];
UINT8 compare[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};
BOOL b_isHdcpValid = FALSE;
       MS_U8 u8HdcpKey[HDCP_KEY_SIZE];

#if (HDCP_KEY_TYPE==HDCP_KEY_IN_CODE)
MApp_XC_Sys_GetHDCP_KEY_FromCode((MS_U8 *)u8HdcpKey);// for hdcp key in code
#elif (HDCP_KEY_TYPE==HDCP_KEY_IN_DB)  // readkey from db
MApp_DB_LoadHDCP_KEY((MS_U8 *)u8HdcpKey);
#else
msAPI_hdcpkeyBurstReadBytes(HDCP_KEY_ADDR, (MS_U8 *)&u8HdcpKey, HDCP_KEY_SIZE);
#endif

b_isHdcpValid = FALSE;


for (i=0;i<5;i++)
{
data = u8HdcpKey;

for(j=0; j<8; j++)
{
if (data & compare[j])
{
cnt++;
}
}
}

if (cnt == 20)
{
b_isHdcpValid = TRUE;
//printf("HdmiTable_Init:check BKSV bit pass(cnt=%d)\n",cnt);
}
else
{
//printf("HdmiTable_Init:check BKSV bit error(cnt=%d)\n",cnt);
}

return b_isHdcpValid;
}
#endif




收藏
收藏0
分享
分享
点赞
点赞0
反对
反对0
hahaahhahaha!!123
回复

使用道具 举报

大神点评1

沙发#
Sunny 发表于:2016-9-6 16:43:49
收藏一下。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册
手机版