static int _read_key_in_type_hdcp2(const char* keyname, void* databuf, const unsigned bufLen, char* decryptBuf) { const unsigned srcKeyLen = HDCP2_RX_KEY_TOTAL_LEN; Hdcp2RxKeyFmt_t* pHdcp2RxKey = (Hdcp2RxKeyFmt_t*)decryptBuf; const uint8_t* tmpName = NULL; int tmpLen = 0; if (bufLen < srcKeyLen) { KM_ERR("hdcp2 rx len unsupported. want %d but only %d\n", srcKeyLen, bufLen); return __LINE__; } ssize_t retLen = 0; tmpName = (uint8_t*)keyname; tmpLen = HDCP2_VERSION_LEN; retLen = amlkey_read(tmpName, (uint8_t*)&pHdcp2RxKey->version, tmpLen); if (retLen != tmpLen) { KM_ERR ("Fail in read key[%s] at len %d\n", tmpName, tmpLen) ; return __LINE__; } tmpName = (uint8_t*)HDCP2_RX_KEY_NAME; tmpLen = HDCP2_RX_KEY_LEN; retLen = amlkey_read(tmpName, (uint8_t*)&pHdcp2RxKey->keyVal, tmpLen); if (retLen != tmpLen) { KM_ERR ("Fail in read key[%s] at len %d\n", tmpName, tmpLen) ; return __LINE__; } tmpName = (uint8_t*)HDCP2_RX_KEY_LC128_NAME; tmpLen = HDCP2_RX_LC128_LEN; retLen = amlkey_read(tmpName, (uint8_t*)&pHdcp2RxKey->lc128, tmpLen); if (retLen != tmpLen) { KM_ERR ("Fail in read key[%s] at len %d\n", tmpName, tmpLen) ; return __LINE__; } hdcp2DataDecryption(srcKeyLen, (char*)pHdcp2RxKey, databuf); return 0; }
char * get_usid_string(void) { int ret; ret = amlkey_isexsit((const uint8_t *)USID_KEY); if (ret) { ret = amlkey_size((const uint8_t *)USID_KEY); if (ret && ret < MAX_STRING_SERIAL) { amlkey_read((const uint8_t *)USID_KEY, (uint8_t *)usid_string, ret); return usid_string; } } return NULL; }