}
fseek(hFile1, 0, SEEK_END);
- auto size1 = static_cast<long long>(ftell(hFile1));
+ long size1 = ftell(hFile1);
- auto offset = t_FileHeader.Offset1 + 35 + t_DRMHeader.XmlSize;
+ long offset = static_cast<long>(t_FileHeader.Offset1 + 35 + t_DRMHeader.XmlSize);
fseek(hFile1, offset, SEEK_SET);
if (size1 < offset) {
return FALSE;
}
- auto size2 = size1 - offset; //plain file size
- auto BlockCnt = (size2 / 512) + ((size2 % 512) ? 1 : 0);
+ long size2 = size1 - offset; //plain file size
+ long BlockCnt = (size2 / 512) + ((size2 % 512) ? 1 : 0);
- auto EncBlockCnt = BlockCnt;
+ long EncBlockCnt = BlockCnt;
if (t_DRMHeader.EncryptionRange != -1)
EncBlockCnt = t_DRMHeader.EncryptionRange;
}
fseek(hFile1, 0, SEEK_END);
- auto size1 = static_cast<long long>(ftell(hFile1));
+ long size1 = ftell(hFile1);
- auto offset = t_FileHeader.Offset1 + 35 + t_DRMHeader.XmlSize;
+ long offset = static_cast<long>(t_FileHeader.Offset1 + 35 + t_DRMHeader.XmlSize);
fseek(hFile1, offset, SEEK_SET);
if (size1 < offset) {
return FALSE;
}
- auto size2 = size1 - offset; //plain file size
- auto BlockCnt = (size2 / 512) + ((size2 % 512) ? 1 : 0);
+ long size2 = size1 - offset; //plain file size
+ long BlockCnt = (size2 / 512) + ((size2 % 512) ? 1 : 0);
- auto EncBlockCnt = BlockCnt;
+ long EncBlockCnt = BlockCnt;
if (t_DRMHeader.EncryptionRange != -1)
EncBlockCnt = t_DRMHeader.EncryptionRange;
return TADC_DHINFO_MAX_ERROR;
}
+ if (pt_ROAcqInfo == NULL) {
+ DRM_TAPPS_EXCEPTION("pt_ROAcqInfo is NULL.");
+ return TADC_DHINFO_MAX_ERROR;
+ }
+
//Get Decrypted License
if ((ret = TADC_GetResponseRO((unsigned char *)pRespBuf, pt_ROAcqInfo, &t_RO,
(unsigned char *)pDecLicenseBuf)) < 0) {
TADC_IF_StrNCpy((char *)(outBuffer + i), ";hmac=", 6);
len = TADC_IF_StrLen((char *)psz64Parameter);
- TADC_IF_MemCpy(outBuffer + i + 6, psz64Parameter, len);
+ TADC_IF_MemCpy(outBuffer + i + 6, psz64Parameter, len + 1);
TADC_IF_StrNCpy((char *)outBuffer + i + 6 + len, "</reqdataset>\n</request>",
24);
t_RO->t_Content.CID = (TADC_U8 *)TADC_IF_Malloc(length + 1);
IF_TRUE_GOTO(t_RO->t_Content.CID == NULL, -2);
TADC_IF_MemSet(t_RO->t_Content.CID, 0, length + 1);
- TADC_IF_StrNCpy((CHAR *)t_RO->t_Content.CID, pszValue, length);
+ TADC_IF_StrNCpy((CHAR *)t_RO->t_Content.CID, pszValue, length + 1);
// Get KeyValue (CEK)
pRoot = oXMLFile.GetRoot();
}
TADC_IF_MemSet(t_RO->t_Permission.t_Individual.DUID, 0, length + 1);
- TADC_IF_MemCpy((CHAR *)t_RO->t_Permission.t_Individual.DUID, pszValue, length);
+ TADC_IF_MemCpy((CHAR *)t_RO->t_Permission.t_Individual.DUID, pszValue, length + 1);
nResult = 0;
t_DRMHeader->SID = (TADC_U8 *)TADC_IF_Malloc(Length + 1);
IF_TRUE_RETURN(t_DRMHeader->SID == NULL, TADC_MEMAlOC_ERROR);
TADC_IF_MemSet(t_DRMHeader->SID, 0, Length + 1);
- TADC_IF_StrNCpy((CHAR *)t_DRMHeader->SID, pszValue, Length);
+ TADC_IF_StrNCpy((CHAR *)t_DRMHeader->SID, pszValue, Length + 1);
}
}
}
t_DRMHeader->CID = (TADC_U8 *)TADC_IF_Malloc(Length + 1);
IF_TRUE_RETURN(t_DRMHeader->CID == NULL, TADC_MEMAlOC_ERROR);
TADC_IF_MemSet(t_DRMHeader->CID, 0, Length + 1);
- TADC_IF_StrNCpy((CHAR *)t_DRMHeader->CID, pszValue, Length);
+ TADC_IF_StrNCpy((CHAR *)t_DRMHeader->CID, pszValue, Length + 1);
}
}
}
pszValue = pNode->GetValue();
Length = TADC_IF_StrLen((char *)pszValue);
TADC_IF_MemSet(t_DRMHeader->ContentsType, 0, 128);
- TADC_IF_StrNCpy((CHAR *)t_DRMHeader->ContentsType, pszValue, Length);
+ TADC_IF_StrNCpy((CHAR *)t_DRMHeader->ContentsType, pszValue, Length + 1);
}
}
t_DRMHeader->RIURL = (TADC_U8 *)TADC_IF_Malloc(Length + 1);
IF_TRUE_RETURN(t_DRMHeader->RIURL == NULL, TADC_MEMAlOC_ERROR);
TADC_IF_MemSet(t_DRMHeader->RIURL, 0, Length + 1);
- TADC_IF_StrNCpy((CHAR *)t_DRMHeader->RIURL, pszValue, Length);
+ TADC_IF_StrNCpy((CHAR *)t_DRMHeader->RIURL, pszValue, Length + 1);
}
}
}
t_DRMHeader->RIURL = (TADC_U8 *)TADC_IF_Malloc(Length + 1);
IF_TRUE_RETURN(t_DRMHeader->RIURL == NULL, TADC_MEMAlOC_ERROR);
TADC_IF_MemSet(t_DRMHeader->RIURL, 0, Length + 1);
- TADC_IF_StrNCpy((CHAR *)t_DRMHeader->RIURL, pszValue, Length);
+ TADC_IF_StrNCpy((CHAR *)t_DRMHeader->RIURL, pszValue, Length + 1);
}
DRM_TAPPS_LOG("t_DRMHeader->RIURL = %s\n", (char *)t_DRMHeader->RIURL);
t_DRMHeader->Packdate = (TADC_U8 *)TADC_IF_Malloc(Length + 1);
IF_TRUE_RETURN(t_DRMHeader->Packdate == NULL, TADC_MEMAlOC_ERROR);
TADC_IF_MemSet(t_DRMHeader->Packdate, 0, Length + 1);
- TADC_IF_StrNCpy((char *)t_DRMHeader->Packdate, pszValue, Length);
+ TADC_IF_StrNCpy((char *)t_DRMHeader->Packdate, pszValue, Length + 1);
}
}
}
#include "TADC_IF.h"
#include "TADC_ErrorCode.h"
+#include <string>
+
// -------------------------- Base64 --------------------------------
static CHAR __base64_table[] = {
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',
int HEX2BIN(LPCSTR pszHex, LPBYTE baBin, int *pnLength)
{
- CHAR szTemp[3];
- CHAR szHex[1024];
- int i = 0, nLength = 0;
-
- nLength = TADC_IF_StrLen(pszHex);
-
- if (nLength <= 0)
+ int hexLen = strlen(pszHex);
+ if (hexLen <= 0)
return -1;
- if ((nLength % 2) == 0) {
- TADC_IF_StrNCpy(szHex, pszHex, nLength);
- } else {
- szHex[0] = '0';
- TADC_IF_StrNCpy(&szHex[1], pszHex, nLength);
- nLength += 1;
+ std::string hex(pszHex);
+ if ((hexLen % 2) != 0) {
+ hex.insert(0, "0");
+ hexLen++;
}
- *pnLength = nLength / 2;
- szTemp[2] = 0;
-
- for (i = 0; i < *pnLength; i++) {
- szTemp[0] = szHex[i * 2];
- szTemp[1] = szHex[i * 2 + 1];
- baBin[i] = (BYTE)strtoul(szTemp, NULL, 16);
+ *pnLength = hexLen / 2;
+ for (int i = 0; i < *pnLength; i++) {
+ char buf[3] = {hex.at(i * 2), hex.at(i * 2 +1), '\0'};
+ baBin[i] = (BYTE)strtoul(buf, NULL, 16);
}
return 0;
/* Copy DUID */
if (t_RO.t_Permission.t_Individual.DUID != NULL) {
DTAPPS_MEMCPY(st_constraints.DUID, t_RO.t_Permission.t_Individual.DUID,
- TAPPS_STRLEN((const char *)t_RO.t_Permission.t_Individual.DUID));
+ TAPPS_STRLEN((const char *)t_RO.t_Permission.t_Individual.DUID) + 1);
}
DRM_TAPPS_LOG("st_constraints.DUID = %s", st_constraints.DUID);
}
TADC_IF_MemSet(t_RO->t_Permission.t_Individual.DUID, 0, length + 1);
- TADC_IF_MemCpy((CHAR *)t_RO->t_Permission.t_Individual.DUID, pszValue, length);
+ TADC_IF_MemCpy((CHAR *)t_RO->t_Permission.t_Individual.DUID, pszValue, length + 1);
nResult = 0;
name = (char *) sqlite3_column_text(pstmt, dIdx++);
if (name != NULL)
- memcpy(result->name, name, strlen(name));
+ memcpy(result->name, name, strlen(name) + 1);
DRM_TAPPS_LOG("....SEELECTED : name = %s", result->name);
time = (char *) sqlite3_column_text(pstmt, dIdx++);
if (time != NULL)
- memcpy(result->time, time, strlen(time));
+ memcpy(result->time, time, strlen(time) + 1);
DRM_TAPPS_LOG("....SEELECTED : time = %s", result->time);
cek = (char *) sqlite3_column_text(pstmt, dIdx++);
if (cek != NULL)
- memcpy(result->cek, cek, strlen(cek));
+ memcpy(result->cek, cek, strlen(cek) + 1);
DRM_TAPPS_LOG("....SEELECTED : cek = %s", result->cek);
cek_hash = (char *) sqlite3_column_text(pstmt, dIdx++);
if (cek_hash != NULL)
- memcpy(result->cek_hash, cek_hash, strlen(cek_hash));
+ memcpy(result->cek_hash, cek_hash, strlen(cek_hash) + 1);
DRM_TAPPS_LOG("....SEELECTED : cek_hash = %s", result->cek_hash);
#endif
constraint_buffer = (char *) sqlite3_column_text(pstmt, dIdx++);
if (constraint_buffer != NULL)
- memcpy(result->constraint_buffer, constraint_buffer, strlen(constraint_buffer));
+ memcpy(result->constraint_buffer, constraint_buffer, strlen(constraint_buffer) + 1);
DRM_TAPPS_LOG("....SEELECTED : constraint_buffer = %s",
result->constraint_buffer);
constraint_hash = (char *) sqlite3_column_text(pstmt, dIdx++);
if (constraint_hash != NULL)
- memcpy(result->constraint_hash, constraint_hash, strlen(constraint_hash));
+ memcpy(result->constraint_hash, constraint_hash, strlen(constraint_hash) + 1);
DRM_TAPPS_LOG("....SEELECTED : constraint_hash = %s", result->constraint_hash);
- memcpy(result->cid, cid, strlen(cid));
+ memcpy(result->cid, cid, strlen(cid) + 1);
DRM_TAPPS_LOG("....SEELECTED : cid = %s", result->cid);
DRM_TAPPS_LOG("Release Statement........");