X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/80e2389990082500d76eb566d4946be3e786c3ef..d8f41ccd20de16f8ebe2ccc84d47bf1cb2b26bbb:/Security/libsecurityd/lib/ssnotify.h diff --git a/Security/libsecurityd/lib/ssnotify.h b/Security/libsecurityd/lib/ssnotify.h new file mode 100644 index 00000000..b0d9bed4 --- /dev/null +++ b/Security/libsecurityd/lib/ssnotify.h @@ -0,0 +1,118 @@ +/* + * Copyright (c) 2000-2004,2006,2011,2014 Apple Inc. All Rights Reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this + * file. + * + * The 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. + * + * @APPLE_LICENSE_HEADER_END@ + */ + + +// +// ssnotify - constants for Security notifications +// +// This interface is private to the Security system. It is not a public interface, +// and it may change at any time. You have been warned. +// +#ifndef _H_SSNOTIFY +#define _H_SSNOTIFY + + +#include + +namespace Security { +namespace SecurityServer { + + +// +// Types +// +typedef uint32 NotificationDomain; // message domain (group) +typedef uint32 NotificationEvent; // event number (within a domain) +typedef uint32 NotificationMask; // mask of events (containing 1 << event number) + + +// +// Values for notification domains. +// +enum { + kNotificationDomainAll = 0, // all domains (useful for testing only) + kNotificationDomainDatabase = 1, // something happened to a database (aka keychain) + kNotificationDomainPCSC = 2, // pcscd-generated events + kNotificationDomainCDSA = 3 // CDSA-layer events (for plugins) +}; + + +// +// Event codes are separate per domain, with a maximum of 32 event codes +// per domain (0-31) so they fit into a uint32 mask set. For each domain, +// this constant will thus select all possible events for that domain: +// +enum { + kNotificationAllEvents = uint32(-1) // mask of all events +}; + + +// +// Notification events for kNotificationDomainDatabase. +// These are public events (vended through the "keychain notifications" API), +// and the event numbers must match the public API. +// The constants below only describe the subset of this domain whose events +// are generated directly by securityd. The full complement is in +// , including those generated by clients for other +// clients. +// +enum { + kNotificationEventLocked = 1, // a keychain was locked + kNotificationEventUnlocked = 2, // a keychain was unlocked + kNotificationEventPassphraseChanged = 6 // a keychain password was (possibly) changed +}; + + +// +// PCSC-related notifications. +// These are generated by the PCSC daemon (pcscd), and are generally only +// (directly) listened to by securityd, though they may be useful for other +// programs that want to know when smart-card state is changing. This is +// an Apple-specific feature of pcscd. +// +enum { + kNotificationPCSCStateChange = 1, // general PCSC state change + kNotificationPCSCInitialized = 2 // pcscd has just started up +}; + + +// +// CDSA-related notifications. +// These are generated by securityd, and are listened to by CDSA plugins +// that need to generate CDSA-layer event notifications. This feature is +// internal to Apple's smart-card support architecture; the official (CDSA) +// standard events are sent by the plugins to CSSM (as a result of receiving +// these events). +// +enum { + kNotificationCDSAInsertion = 1, // CDSA insertion event + kNotificationCDSARemoval = 2, // CDSA removal event + kNotificationCDSAFailure = 3 // CDSA failure event +}; + + +} // end namespace SecurityServer +} // end namespace Security + + +#endif //_H_SSNOTIFY