#include <stdint.h>
#include <Security/AuthSession.h>
#include <Security/AuthorizationPriv.h>
#include <security_utilities/ccaudit.h>
#include <security_cdsa_utilities/cssmbridge.h>
#include <Security/SecBase.h>
#include <security_utilities/logging.h>
#include "LegacyAPICounts.h"
OSStatus SessionGetInfo(SecuritySessionId requestedSession,
SecuritySessionId *sessionId,
SessionAttributeBits *attributes)
{
BEGIN_API
CommonCriteria::AuditInfo session;
if (requestedSession == callerSecuritySession)
session.get();
else
session.get(requestedSession);
if (sessionId)
*sessionId = session.sessionId();
if (attributes)
*attributes = (SessionAttributeBits)session.flags();
END_API(CSSM)
}
OSStatus SessionCreate(SessionCreationFlags flags,
SessionAttributeBits attributes)
{
BEGIN_API
if (flags)
Syslog::warning("SessionCreate flags=0x%lx unsupported (ignored)", (unsigned long)flags);
CommonCriteria::AuditInfo session;
session.create(attributes);
session.get();
char idString[80];
snprintf(idString, sizeof(idString), "%x", session.sessionId());
setenv("SECURITYSESSIONID", idString, 1);
END_API(CSSM)
}
OSStatus SessionSetDistinguishedUser(SecuritySessionId session, uid_t user)
{
BEGIN_API
CommonCriteria::AuditInfo session;
session.get();
session.ai_auid = user;
session.set();
END_API(CSSM)
}
OSStatus SessionGetDistinguishedUser(SecuritySessionId session, uid_t *user)
{
BEGIN_API
CommonCriteria::AuditInfo session;
session.get();
Required(user) = session.uid();
END_API(CSSM)
}
OSStatus SessionSetUserPreferences(SecuritySessionId session)
{
return errSecSuccess;
}