long CA_Init(void) { FILE * cafile; char capath[256]; sprintf(capath, "%s%s\\CaFile.data", ddbsdk.ddbsdk_path_main, DDBSDK_MAINPATH_NAME); //if((cafile = fopen(capath, "rb")) == NULL) { if((cafile = fopen("softcard.ca", "rb")) == NULL) { if (1 <= copyFile("\\NANDFlash\\softcard.ca", "\\Flash_Storage\\softcard.ca")) { printf("CA文件还原失败!\n"); return -1; } if((cafile = fopen("softcard.ca", "rb")) == NULL) { printf("CA文件无法打开!\n"); return -1; } } printf("CA文件成功打开!\n"); g_BufferForCAS = (BYTE *)malloc(FOR_CAS_DATA_BUFFER_SIZE); memset(g_BufferForCAS, 0, FOR_CAS_DATA_BUFFER_SIZE); fread(g_BufferForCAS, 1, FOR_CAS_DATA_BUFFER_SIZE, cafile); fclose(cafile); if(!DVTCASTB_Init()) { printf("CA初始化失败!\n"); printf("尝试还原CA文件\n"); if (1 <= copyFile("\\NANDFlash\\softcard.ca", "\\Flash_Storage\\softcard.ca")) { printf("CA文件还原失败!\n"); free(g_BufferForCAS); return -1; } if((cafile = fopen("softcard.ca", "rb")) == NULL) { printf("CA文件无法打开!\n"); free(g_BufferForCAS); return -1; } fread(g_BufferForCAS, 1, FOR_CAS_DATA_BUFFER_SIZE, cafile); fclose(cafile); if(!DVTCASTB_Init()) { printf("CA初始化失败!\n"); free(g_BufferForCAS); return -1; } } printf("CA初始化成功!\n"); return 0; }
CDCA_BOOL CDCASTB_Init( CDCA_U8 byThreadPrior ) { dxreport("DVTCASTB_Init begin >>>\n"); gStbCa.ignoreCAMsg = false; bool res=DVTCASTB_Init(); DVTCASTB_AddDebugMsgSign(1); // 打开debug 信息 dxreport("DVTCASTB_Init end res:%d<<<\n", res); return res; }