2 * Copyright (c) 2000-2007,2009-2010,2012 Apple Inc. All Rights Reserved.
4 * @APPLE_LICENSE_HEADER_START@
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
21 * @APPLE_LICENSE_HEADER_END@
28 #include <security_utilities/logging.h>
29 #include <security_utilities/debugging.h>
30 #include <bsm/audit.h>
31 #include <bootstrap_priv.h>
35 #include <sys/types.h>
36 #include <sys/sysctl.h>
40 static pthread_once_t agent_cred_init
= PTHREAD_ONCE_INIT
;
41 static gid_t agent_gid
= 92;
42 static uid_t agent_uid
= 92;
44 void initialize_agent_creds()
46 struct passwd
*agentUser
= getpwnam("securityagent");
49 agent_uid
= agentUser
->pw_uid
;
50 agent_gid
= agentUser
->pw_gid
;
55 AuthHostInstance::AuthHostInstance(Session
&session
, AuthHostType host
) :
58 secdebug("authhost", "authhost born (%p)", this);
60 session
.addReference(*this);
61 if (host
== securityAgent
)
62 pthread_once(&agent_cred_init
, initialize_agent_creds
);
65 AuthHostInstance::~AuthHostInstance()
67 secdebug("authhost", "authhost died (%p)", this);
70 Session
&AuthHostInstance::session() const
72 return referent
<Session
>();
75 bool AuthHostInstance::inDarkWake()
77 return session().server().inDarkWake();
81 AuthHostInstance::childAction()
83 secdebug("AuthHostInstance", "authhostinstance not supported");
84 // Unconditional suicide follows.
88 // @@@ these definitions and the logic in lookup() should move into
90 #define SECURITYAGENT_BOOTSTRAP_NAME_BASE "com.apple.SecurityAgent"
91 #define AUTHORIZATIONHOST_BOOTSTRAP_NAME_BASE "com.apple.authorizationhost"
94 AuthHostInstance::lookup()
96 CssmError::throwMe(CSSM_ERRCODE_INTERNAL_ERROR
);
99 Port
AuthHostInstance::activate()
101 CssmError::throwMe(CSSM_ERRCODE_INTERNAL_ERROR
);