X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/ed6778a32ecff23bc2dfb6ca452badd0c68774a0..563f4f96f568bcdc0a04a82f89cafe3bebbe43f1:/cdsa/cssm/cssmmds.cpp diff --git a/cdsa/cssm/cssmmds.cpp b/cdsa/cssm/cssmmds.cpp deleted file mode 100644 index f04b338c..00000000 --- a/cdsa/cssm/cssmmds.cpp +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright (c) 2000-2001 Apple Computer, Inc. All Rights Reserved. - * - * The contents of this file constitute Original Code as defined in and are - * subject to the Apple Public Source License Version 1.2 (the 'License'). - * You may not use this file except in compliance with the License. Please obtain - * a copy of the License at http://www.apple.com/publicsource and read it before - * using this file. - * - * This Original Code and all software distributed under the License are - * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS - * OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT - * LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR - * PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. Please see the License for the - * specific language governing rights and limitations under the License. - */ - - -// -// cssmmds - MDS interface for CSSM & friends -// -#ifdef __MWERKS__ -#define _CPP_CSSMMDS -#endif -#include "cssmmds.h" -#include - - -ModuleNexus MdsComponent::mds; - - -MdsComponent::MdsComponent(const Guid &guid) : mMyGuid(guid) -{ - mIsValid = false; -} - -MdsComponent::~MdsComponent() -{ -} - - -void MdsComponent::getInfo() const -{ - rewind(mds().config); - char buffer[1024]; - while (fgets(buffer, sizeof(buffer), mds().config)) { - static const char space[] = " \t\f"; - char *p = buffer + strspn(buffer, space); - if (*p == '#' || *p == '\0' || *p == '\n') - continue; // comment or blank line - - // field 1: guid - const char *guid = p; p += strcspn(p, space); - if (!*p) CssmError::throwMe(CSSM_ERRCODE_MDS_ERROR); - *p++ = '\0'; - try { - if (Guid(guid) != mMyGuid) - continue; // no match this line - } catch (const CssmCommonError &error) { - if (error.cssmError() == CSSM_ERRCODE_INVALID_GUID) - CssmError::throwMe(CSSM_ERRCODE_MDS_ERROR); // invalid file guid => MDS error - throw; // pass all other errors - } - - // field 2: flags/options - p += strspn(p, space); - mServices = 0; - mIsThreadSafe = false; - while (*p && !isspace(*p)) { - switch (*p) { - case 'a': mServices |= CSSM_SERVICE_AC; break; - case 'c': mServices |= CSSM_SERVICE_CSP; break; - case 'd': mServices |= CSSM_SERVICE_DL; break; - case 'C': mServices |= CSSM_SERVICE_CL; break; - case 't': mServices |= CSSM_SERVICE_TP; break; - case 'm': mIsThreadSafe = true; break; - default: - CssmError::throwMe(CSSM_ERRCODE_MDS_ERROR); - } - p++; - } - if (!*p) CssmError::throwMe(CSSM_ERRCODE_MDS_ERROR); - p += strspn(p, space); // skip space - p[strlen(p)-1] = '\0'; // remove trailing newline - mPath = p; // rest of line is pathname, uninterpreted - mIsValid = true; - return; - } - // not found in file - CssmError::throwMe(CSSM_ERRCODE_INVALID_GUID); // @@@ should have "guid not found" error -} - - -#if !defined(_MDS_PATH) -# define _MDS_PATH "/System/Library/Frameworks/Security.framework/Resources/MDS" -#endif - -MdsComponent::MDS::MDS() -{ - const char *path = getenv("MDSPATH"); - if (path == NULL) - path = getenv("MDSFILE"); - if (path == NULL) - path = _MDS_PATH; - if (!(config = fopen(path, "r"))) - CssmError::throwMe(CSSM_ERRCODE_MDS_ERROR); -} - -MdsComponent::MDS::~MDS() -{ - fclose(config); -}