Example #1
0
/*-----------------------------------------------------------------------------------
 * Name: dlbe_GetUniqueRecordIdType
 *
 * Description:
 * This function verifies the validity of a Unique Record Id and then retrieves the
 * information from it (RecordType)
 *
 * Parameters:
 * UniqueIdPtr (input) - A Unique Record Id Ptr
 *
 * RETURN:
 * The recordtype that the unique record id coresponds to if the Unique ID is valid,
 * otherwise returns DAL_OOB.
 *
 * ERROR CODES
 * CSSMERR_DL_INVALID_RECORD_UID
 *-----------------------------------------------------------------------------------*/
CSSM_RETURN dlbe_GetUniqueRecordIdType(CSSM_DB_UNIQUE_RECORD const * UniqueIdPtr,
									   CSSM_DB_RECORDTYPE *RecordType)
{
	CSSM_RETURN retValue = CSSM_OK;

	if (!UniqueIdPtr)
		return CSSMERR_DL_INVALID_POINTER;

	if ((retValue = dl_IsUniqueRecordIdOk(UniqueIdPtr)) != CSSM_OK)
		return retValue;

	if (UniqueIdPtr->RecordIdentifier.Length != 8)
		return CSSMERR_DL_INVALID_RECORD_UID;

	uint32 *Data = (uint32 *)UniqueIdPtr->RecordIdentifier.Data;

	*RecordType = Data[0];

	return CSSM_OK;
}
Example #2
0
/*-----------------------------------------------------------------------------------
 * Name: ff_GetUniqueRecordIdVal
 *
 * Description:
 * This function verifies the validity of a Unique Record Id and then retrieves the
 * information from it (the 32 bit unique identifier)
 *
 * Parameters:
 * UniqueIdPtr (input) - A Unique Record Id Ptr
 *
 * RETURN:
 * The ID if the Unique ID is valid, otherwise returns 0.
 *
 * ERROR CODES
 * TODO
 *-----------------------------------------------------------------------------------*/
CSSM_RETURN ffutil_GetUniqueRecordIdVal(CSSM_DB_UNIQUE_RECORD const * UniqueIdPtr,
										uint32 *pData)
{
	CSSM_RETURN retValue;
	uint32 *ptmpData;

	if (!UniqueIdPtr)
		return CSSMERR_DL_INVALID_POINTER;

	if ((retValue = dl_IsUniqueRecordIdOk (UniqueIdPtr)) != CSSM_OK)
		return retValue;

	if (UniqueIdPtr->RecordIdentifier.Length != 8)
		return CSSMERR_DL_INVALID_RECORD_UID;

	ptmpData = (uint32 *)UniqueIdPtr->RecordIdentifier.Data;

	if (!ptmpData[1])
		return CSSMERR_DL_INVALID_RECORD_UID;

	*pData = ptmpData[1];

	return CSSM_OK;
}