-//
-// Code Signing Hosting registration.
-// Note that the Code Signing Proxy facility (implementing the "cshosting"
-// IPC protocol) is elsewhere.
-//
-kern_return_t ucsp_server_registerHosting(UCSP_ARGS, mach_port_t hostingPort, uint32 flags)
-{
- BEGIN_IPC(registerHosting)
- connection.process().registerCodeSigning(hostingPort, flags);
- END_IPC(CSSM)
-}
-
-kern_return_t ucsp_server_hostingPort(UCSP_ARGS, pid_t hostPid, mach_port_t *hostingPort)
-{
- BEGIN_IPC(hostingPort)
- if (RefPointer<Process> process = Server::active().findPid(hostPid))
- *hostingPort = process->hostingPort();
- else
- *hostingPort = MACH_PORT_NULL;
- secinfo("hosting", "hosting port for for pid=%d is port %d", hostPid, *hostingPort);
- END_IPC(CSSM)
-}
-
-
-kern_return_t ucsp_server_setGuest(UCSP_ARGS, SecGuestRef guest, SecCSFlags flags)
-{
- BEGIN_IPC(setGuest)
- connection.guestRef(guest, flags);
- END_IPC(CSSM)
-}
-
-
-kern_return_t ucsp_server_createGuest(UCSP_ARGS, SecGuestRef host,
- uint32_t status, const char *path, DATA_IN(cdhash), DATA_IN(attributes),
- SecCSFlags flags, SecGuestRef *newGuest)
-{
- BEGIN_IPC(createGuest)
- *newGuest = connection.process().createGuest(host, status, path, DATA(cdhash), DATA(attributes), flags);
- END_IPC(CSSM)
-}
-
-kern_return_t ucsp_server_setGuestStatus(UCSP_ARGS, SecGuestRef guest,
- uint32_t status, DATA_IN(attributes))
-{
- BEGIN_IPC(setGuestStatus)
- connection.process().setGuestStatus(guest, status, DATA(attributes));
- END_IPC(CSSM)
-}
-
-kern_return_t ucsp_server_removeGuest(UCSP_ARGS, SecGuestRef host, SecGuestRef guest)
-{
- BEGIN_IPC(removeGuest)
- connection.process().removeGuest(host, guest);
- END_IPC(CSSM)
-}
-
-kern_return_t ucsp_server_helpCheckLoad(UCSP_ARGS, const char path[PATH_MAX], uint32_t type)
-{
- BEGIN_IPC(helpCheckLoad)
- END_IPC(CSSM)
-}
-