sdp-2
net吧
全部回复
仅看楼主
level 3

*****************************************************************************/
WSEC_ERR_T SDP_GetAlgPropertyEx(
WSEC_UINT32 ulAlgID,
WSEC_UINT32 *peAlgType,
WSEC_UINT32 *pulKeyLen,
WSEC_UINT32 *pulIVLen,
WSEC_UINT32 *pulMACLen
)
{
WSEC_UINT32 eAlgType = WSEC_ALGTYPE_UNKNOWN;
WSEC_UINT32 ulTempKeyLen = 0;
WSEC_UINT32 ulTempIVLen = 0;
WSEC_UINT32 ulTempMACLen = 0;
eAlgType = CAC_AlgId2Type(ulAlgID);
return_oper_if((WSEC_ALGTYPE_UNKNOWN == eAlgType), WSEC_LOG_E("[SDP] CAC Get algorithm types failed."), WSEC_ERR_SDP_ALG_NOT_SUPPORTED);
if (WSEC_NULL_PTR != pulKeyLen)
{
ulTempKeyLen = (WSEC_ALGTYPE_SYM == eAlgType) ? CAC_SYM_KeyLen(ulAlgID) : SDP_KEY_MAX_LEN;
if (0 == ulTempKeyLen) {ulTempKeyLen = SDP_KEY_MAX_LEN;}
return_oper_if((ulTempKeyLen > SDP_KEY_MAX_LEN),
WSEC_LOG_E1("[SDP] Length of key exceeds the limit Actually %u.", ulTempKeyLen),
WSEC_ERR_INVALID_ARG);
}
if (WSEC_NULL_PTR != pulIVLen)
{
ulTempIVLen = CAC_SYM_IvLen(ulAlgID);
return_oper_if((ulTempIVLen > SDP_IV_MAX_LEN), WSEC_LOG_E1("[SDP] Length of IV exceeds the limit. Actually %u.", ulTempIVLen), WSEC_ERR_INVALID_ARG);
}
if (WSEC_NULL_PTR != pulMACLen)
{
ulTempMACLen = CAC_HMAC_Size(ulAlgID);
return_oper_if((ulTempMACLen > SDP_PTMAC_MAX_LEN),
WSEC_LOG_E2("[SDP] Length of MAC exceeds the limit %d. Actually %u.", SDP_PTMAC_MAX_LEN, ulTempMACLen),
WSEC_ERR_INVALID_ARG);
}
/* output param */
WSEC_SAFE_ASSIGN(peAlgType, eAlgType);
WSEC_SAFE_ASSIGN(pulKeyLen, ulTempKeyLen);
WSEC_SAFE_ASSIGN(pulIVLen, ulTempIVLen);
WSEC_SAFE_ASSIGN(pulMACLen, ulTempMACLen);
return WSEC_SUCCESS;
}
/*****************************************************************************
函 数 名 : SDP_CvtByteOrder4CipherHdrEx
功能描述 : 字节序转换,对密文头进行转换
输入参数 :eOper 转换的方向
输出参数 :
输入输出: pstCipherHdrEx 密文头结构体指针
返 回 值 : 错误码
2016年08月05日 00点08分 1
1