level 3
一只阿北Dy
楼主
break_oper_if((ulCTLen < (sizeof(SDP_CIPHER_HEAD_STRUEX) + pstCipherHead->ulCDLen)), WSEC_LOG_E("[SDP] Buffer for cipher text is not enough."), ulRet = WSEC_ERR_INPUT_BUFF_NOT_ENOUGH);
/* Get key length, IV length */
ulRet = SDP_GetAlgPropertyEx(pstCipherHead->ulEncAlgId, &eAlgType, &ulKeyLen, &ulIVLen, WSEC_NULL_PTR);
break_operex_if((ulRet!= WSEC_SUCCESS), WSEC_LOG_E("[SDP] Get algorithm property failed."));
break_oper_if((WSEC_ALGTYPE_SYM != eAlgType), WSEC_LOG_E1("[SDP] AlgType(%d) is out of bounds.", eAlgType), ulRet = WSEC_ERR_SDP_INVALID_CIPHER_TEXT);
/* Get WK (work key) By KeyID */
ulRet = SDP_GetWorkKeyByIDHash(pstCipherHead->ulDomainId, pstCipherHead->ulKeyId, pstCipherHead->aucKeyHash , ulIter,
pstCipherHead->aucSalt, SDP_SALT_LEN_SHORT, aucKey, ulKeyLen);
break_operex_if((ulRet!= WSEC_SUCCESS), WSEC_LOG_E("[SDP] Get WK failed."));
/* data decryption */
break_oper_if(ulTempPTLen < pstCipherHead->ulCDLen, WSEC_LOG_E2("Plain-Buff size(%u) at least is %u", ulTempPTLen, pstCipherHead->ulCDLen), ulRet = WSEC_ERR_OUTPUT_BUFF_NOT_ENOUGH);
ulRet = CAC_Decrypt(pstCipherHead->ulEncAlgId, aucKey, ulKeyLen, pstCipherHead->aucIV, ulIVLen,
(pucCipherText + sizeof(SDP_CIPHER_HEAD_STRUEX)), pstCipherHead->ulCDLen,
pucPlainText, /*suggested INOUT */ &ulTempPTLen);
break_oper_if((ulRet!= WSEC_SUCCESS), WSEC_LOG_E("[SDP] CAC decrypt failed."), ulRet = WSEC_ERR_DECRPT_FAIL);
2016年08月06日 00点08分
1
/* Get key length, IV length */
ulRet = SDP_GetAlgPropertyEx(pstCipherHead->ulEncAlgId, &eAlgType, &ulKeyLen, &ulIVLen, WSEC_NULL_PTR);
break_operex_if((ulRet!= WSEC_SUCCESS), WSEC_LOG_E("[SDP] Get algorithm property failed."));
break_oper_if((WSEC_ALGTYPE_SYM != eAlgType), WSEC_LOG_E1("[SDP] AlgType(%d) is out of bounds.", eAlgType), ulRet = WSEC_ERR_SDP_INVALID_CIPHER_TEXT);
/* Get WK (work key) By KeyID */
ulRet = SDP_GetWorkKeyByIDHash(pstCipherHead->ulDomainId, pstCipherHead->ulKeyId, pstCipherHead->aucKeyHash , ulIter,
pstCipherHead->aucSalt, SDP_SALT_LEN_SHORT, aucKey, ulKeyLen);
break_operex_if((ulRet!= WSEC_SUCCESS), WSEC_LOG_E("[SDP] Get WK failed."));
/* data decryption */
break_oper_if(ulTempPTLen < pstCipherHead->ulCDLen, WSEC_LOG_E2("Plain-Buff size(%u) at least is %u", ulTempPTLen, pstCipherHead->ulCDLen), ulRet = WSEC_ERR_OUTPUT_BUFF_NOT_ENOUGH);
ulRet = CAC_Decrypt(pstCipherHead->ulEncAlgId, aucKey, ulKeyLen, pstCipherHead->aucIV, ulIVLen,
(pucCipherText + sizeof(SDP_CIPHER_HEAD_STRUEX)), pstCipherHead->ulCDLen,
pucPlainText, /*suggested INOUT */ &ulTempPTLen);
break_oper_if((ulRet!= WSEC_SUCCESS), WSEC_LOG_E("[SDP] CAC decrypt failed."), ulRet = WSEC_ERR_DECRPT_FAIL);