+++ /dev/null
-/*
- * Copyright (c) 2000-2004,2011,2014 Apple 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.
- */
-
-
-//
-// mds_standard - standard-defined MDS record types.
-//
-// These are the C++ record types corresponding to standard and Apple-defined
-// MDS relations. Note that not all standard fields are included; only those
-// of particular interest to the implementation. Feel free to add field functions
-// as needed.
-//
-
-#ifndef _H_CDSA_CLIENT_MDS_STANDARD
-#define _H_CDSA_CLIENT_MDS_STANDARD
-
-#include <security_cdsa_client/mdsclient.h>
-
-
-namespace Security {
-namespace MDSClient {
-
-
-//
-// The CDSA Common table (one record per module)
-//
-class Common : public Record {
-public:
- Common();
- static const CSSM_DB_RECORDTYPE recordType = MDS_CDSADIR_COMMON_RECORDTYPE;
-
- string moduleID() const;
- string moduleName() const;
- string path() const;
- string description() const;
- bool dynamic() const;
- bool singleThreaded() const;
- CSSM_SERVICE_MASK serviceMask() const;
-
-public:
- //
- // "Link in" a Common into another record, whose attributes()[0] is the ModuleID
- //
- class Carrier {
- public:
- virtual ~Carrier();
-
- string moduleName() const { return common().moduleName(); }
- string path() const { return common().path(); }
- string description() const { return common().description(); }
- bool dynamic() const { return common().dynamic(); }
- bool singleThreaded() const { return common().singleThreaded(); }
- CSSM_SERVICE_MASK serviceMask() const { return common().serviceMask(); }
-
- private:
- mutable RefPointer<Common> mCommon;
-
- Common &common() const;
- };
-};
-
-
-//
-// PrimaryRecord shapes the "common head" of all MDS primary relations
-//
-class PrimaryRecord : public Record, public Common::Carrier {
-public:
- PrimaryRecord(const char * const * names);
-
- string moduleID() const;
- uint32 subserviceID() const;
- string moduleName() const;
- string productVersion() const;
- string vendor() const;
-};
-
-
-//
-// The CSP Primary relation
-//
-class CSP : public PrimaryRecord {
-public:
- CSP();
- static const CSSM_DB_RECORDTYPE recordType = MDS_CDSADIR_CSP_PRIMARY_RECORDTYPE;
-
- uint32 cspType() const;
- CSSM_CSP_FLAGS cspFlags() const;
-};
-
-
-//
-// The CSP Capabilities relation
-//
-class CSPCapabilities : public Record, public Common::Carrier {
-public:
- CSPCapabilities();
- static const CSSM_DB_RECORDTYPE recordType = MDS_CDSADIR_CSP_CAPABILITY_RECORDTYPE;
-
- string moduleID() const;
- uint32 subserviceID() const;
- uint32 contextType() const;
- uint32 algorithm() const;
- uint32 group() const;
- uint32 attribute() const;
- string description() const;
-};
-
-
-//
-// The CSP "smartcard token" relation
-//
-class SmartcardInfo : public Record, public Common::Carrier {
-public:
- SmartcardInfo();
- static const CSSM_DB_RECORDTYPE recordType = MDS_CDSADIR_CSP_SC_INFO_RECORDTYPE;
-
- string moduleID() const;
- uint32 subserviceID() const;
- string description() const;
- string vendor() const;
- string version() const;
- string firmware() const;
- CSSM_SC_FLAGS flags() const;
- CSSM_SC_FLAGS customFlags() const;
- string serial() const;
-};
-
-
-//
-// The DL Primary relation
-//
-class DL : public PrimaryRecord {
-public:
- DL();
- static const CSSM_DB_RECORDTYPE recordType = MDS_CDSADIR_DL_PRIMARY_RECORDTYPE;
-
- uint32 dlType() const;
- uint32 queryLimits() const;
-};
-
-
-//
-// The CL Primary relation
-//
-class CL : public PrimaryRecord {
-public:
- CL();
- static const CSSM_DB_RECORDTYPE recordType = MDS_CDSADIR_CL_PRIMARY_RECORDTYPE;
-
- uint32 certTypeFormat() const;
- uint32 certType() const { return certTypeFormat() >> 16; }
- uint32 certEncoding() const { return certTypeFormat() & 0xFFFF; }
- uint32 crlTypeFormat() const;
- uint32 crlType() const { return crlTypeFormat() >> 16; }
- uint32 crlEncoding() const { return crlTypeFormat() & 0xFFFF; }
-};
-
-
-//
-// The TP Primary relation
-//
-class TP : public PrimaryRecord {
-public:
- TP();
- static const CSSM_DB_RECORDTYPE recordType = MDS_CDSADIR_TP_PRIMARY_RECORDTYPE;
-
- uint32 certTypeFormat() const;
- uint32 certType() const { return certTypeFormat() >> 16; }
- uint32 certEncoding() const { return certTypeFormat() & 0xFFFF; }
-};
-
-
-//
-// The TP Policy-OIDS relation
-//
-class PolicyOids : public Record {
-public:
- PolicyOids();
- static const CSSM_DB_RECORDTYPE recordType = MDS_CDSADIR_TP_OIDS_RECORDTYPE;
-
- string moduleID() const;
- uint32 subserviceID() const;
- CssmData oid() const;
- CssmData value() const;
-};
-
-
-} // end namespace MDSClient
-} // end namespace Security
-
-#endif // _H_CDSA_CLIENT_MDS_STANDARD