/*----------------------------------------------------------------------------------- * 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; }
/*----------------------------------------------------------------------------------- * 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; }