KerberosAgentIPC.defs   [plain text]


/*
 * KerberosAgent.defs
 *
 * Mach Interface specifications for Kerberos Login IPC
 *
 */
 
#include <mach/std_types.defs>
#include <mach/mach_types.defs>

import "KLMachIPC.h";

type	DataBlob              = array [] of char;

type	KLIPCInString         = DataBlob;
type	KLIPCOutString        = DataBlob;
type	KLIPCInIntArray       = array [] of int32;

type	KLIPCInPrincipal      = DataBlob;
type	KLIPCOutPrincipal     = DataBlob;

type	KLIPCStatus           = unsigned32;
type	KLIPCBoolean          = unsigned32;
type	KLIPCTime             = unsigned32;
type	KLIPCIndex            = unsigned32;
type	KLIPCSize             = unsigned32;

type	KLIPCPid              = int32;
type	KLIPCFlags            = int32;

type	KLIPCDialogIdentifier = unsigned32;


// These are the bottleneck routines which have UI.

// We do these via Mach IPC so we can support client-side idling and killing the
// server if the user cancels all dialogs.  

subsystem KerberosAgentIPC 128;
 
serverprefix KAIPC;
userprefix KLIPC;

waittime kKLMachIPCTimeout;

routine GetServerPID (inServerPort : mach_port_t;
                  out outServerPID : KLIPCPid);

routine AcquireNewInitialTickets (inServerPort : mach_port_t;
                             inApplicationTask : task_t;
                             inApplicationPath : KLIPCInString;
                    inAllowHomeDirectoryAccess : KLIPCBoolean;

                                   inPrincipal : KLIPCInPrincipal;
                                       inFlags : KLIPCFlags;
                                    inLifetime : KLIPCTime;
                                   inRenewLife : KLIPCTime;
                                   inStartTime : KLIPCTime;
                                 inForwardable : KLIPCBoolean;
                                   inProxiable : KLIPCBoolean;
                                 inAddressless : KLIPCBoolean;
                                 inServiceName : KLIPCInString;
                              out outPrincipal : KLIPCOutPrincipal;
                              out outCacheName : KLIPCOutString;
                                out outResult : KLIPCStatus);


routine Prompter (inServerPort : mach_port_t;
             inApplicationTask : task_t;
             inApplicationPath : KLIPCInString;
    inAllowHomeDirectoryAccess : KLIPCBoolean;
                  
                        inName : KLIPCInString;
                      inBanner : KLIPCInString;
                  inNumPrompts : KLIPCIndex;
                     inPrompts : KLIPCInString;
                     inHiddens : KLIPCInString;
                  inReplySizes : KLIPCInIntArray;
                out outReplies : KLIPCOutString;
                 out outResult : KLIPCStatus);


routine ChangePassword (inServerPort : mach_port_t;
                   inApplicationTask : task_t;
                   inApplicationPath : KLIPCInString;
          inAllowHomeDirectoryAccess : KLIPCBoolean;
                        
                         inPrincipal : KLIPCInPrincipal;
                       out outResult : KLIPCStatus);


routine HandleError (inServerPort : mach_port_t;
                inApplicationTask : task_t;
                inApplicationPath : KLIPCInString;
       inAllowHomeDirectoryAccess : KLIPCBoolean;
                     
                          inError : KLIPCStatus;
                         inDialog : KLIPCDialogIdentifier;
                      inShowAlert : KLIPCBoolean;
                    out outResult : KLIPCStatus);