VirtualBox

source: vbox/trunk/include/VBox/VBoxAuth.h@ 59012

Last change on this file since 59012 was 56291, checked in by vboxsync, 9 years ago

include: Updated (C) year.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 7.2 KB
Line 
1/** @file
2 * VirtualBox External Authentication Library Interface.
3 */
4
5/*
6 * Copyright (C) 2006-2015 Oracle Corporation
7 *
8 * This file is part of VirtualBox Open Source Edition (OSE), as
9 * available from http://www.virtualbox.org. This file is free software;
10 * you can redistribute it and/or modify it under the terms of the GNU
11 * General Public License (GPL) as published by the Free Software
12 * Foundation, in version 2 as it comes in the "COPYING" file of the
13 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
14 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
15 *
16 * The contents of this file may alternatively be used under the terms
17 * of the Common Development and Distribution License Version 1.0
18 * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
19 * VirtualBox OSE distribution, in which case the provisions of the
20 * CDDL are applicable instead of those of the GPL.
21 *
22 * You may elect to license modified versions of this file under the
23 * terms and conditions of either the GPL or the CDDL or both.
24 */
25
26#ifndef ___VBox_vboxauth_h
27#define ___VBox_vboxauth_h
28
29/* The following 2 enums are 32 bits values.*/
30typedef enum AuthResult
31{
32 AuthResultAccessDenied = 0,
33 AuthResultAccessGranted = 1,
34 AuthResultDelegateToGuest = 2,
35 AuthResultSizeHack = 0x7fffffff
36} AuthResult;
37
38typedef enum AuthGuestJudgement
39{
40 AuthGuestNotAsked = 0,
41 AuthGuestAccessDenied = 1,
42 AuthGuestNoJudgement = 2,
43 AuthGuestAccessGranted = 3,
44 AuthGuestNotReacted = 4,
45 AuthGuestSizeHack = 0x7fffffff
46} AuthGuestJudgement;
47
48/* UUID memory representation. Array of 16 bytes. */
49typedef unsigned char AUTHUUID[16];
50typedef AUTHUUID *PAUTHUUID;
51/*
52Note: VirtualBox uses a consistent binary representation of UUIDs on all platforms. For this reason
53the integer fields comprising the UUID are stored as little endian values. If you want to pass such
54UUIDs to code which assumes that the integer fields are big endian (often also called network byte
55order), you need to adjust the contents of the UUID to e.g. achieve the same string representation.
56The required changes are:
57 * reverse the order of byte 0, 1, 2 and 3
58 * reverse the order of byte 4 and 5
59 * reverse the order of byte 6 and 7.
60Using this conversion you will get identical results when converting the binary UUID to the string
61representation.
62*/
63
64/* The library entry point calling convention. */
65#ifdef _MSC_VER
66# define AUTHCALL __cdecl
67#elif defined(__GNUC__)
68# define AUTHCALL
69#else
70# error "Unsupported compiler"
71#endif
72
73
74/**
75 * Authentication library entry point.
76 *
77 * Parameters:
78 *
79 * pUuid Pointer to the UUID of the accessed virtual machine. Can be NULL.
80 * guestJudgement Result of the guest authentication.
81 * szUser User name passed in by the client (UTF8).
82 * szPassword Password passed in by the client (UTF8).
83 * szDomain Domain passed in by the client (UTF8).
84 *
85 * Return code:
86 *
87 * AuthAccessDenied Client access has been denied.
88 * AuthAccessGranted Client has the right to use the
89 * virtual machine.
90 * AuthDelegateToGuest Guest operating system must
91 * authenticate the client and the
92 * library must be called again with
93 * the result of the guest
94 * authentication.
95 */
96typedef AuthResult AUTHCALL AUTHENTRY(PAUTHUUID pUuid,
97 AuthGuestJudgement guestJudgement,
98 const char *szUser,
99 const char *szPassword,
100 const char *szDomain);
101
102
103typedef AUTHENTRY *PAUTHENTRY;
104
105#define AUTHENTRY_NAME "VRDPAuth"
106
107/**
108 * Authentication library entry point version 2.
109 *
110 * Parameters:
111 *
112 * pUuid Pointer to the UUID of the accessed virtual machine. Can be NULL.
113 * guestJudgement Result of the guest authentication.
114 * szUser User name passed in by the client (UTF8).
115 * szPassword Password passed in by the client (UTF8).
116 * szDomain Domain passed in by the client (UTF8).
117 * fLogon Boolean flag. Indicates whether the entry point is called
118 * for a client logon or the client disconnect.
119 * clientId Server side unique identifier of the client.
120 *
121 * Return code:
122 *
123 * AuthAccessDenied Client access has been denied.
124 * AuthAccessGranted Client has the right to use the
125 * virtual machine.
126 * AuthDelegateToGuest Guest operating system must
127 * authenticate the client and the
128 * library must be called again with
129 * the result of the guest
130 * authentication.
131 *
132 * Note: When 'fLogon' is 0, only pUuid and clientId are valid and the return
133 * code is ignored.
134 */
135typedef AuthResult AUTHCALL AUTHENTRY2(PAUTHUUID pUuid,
136 AuthGuestJudgement guestJudgement,
137 const char *szUser,
138 const char *szPassword,
139 const char *szDomain,
140 int fLogon,
141 unsigned clientId);
142
143
144typedef AUTHENTRY2 *PAUTHENTRY2;
145
146#define AUTHENTRY2_NAME "VRDPAuth2"
147
148/**
149 * Authentication library entry point version 3.
150 *
151 * Parameters:
152 *
153 * szCaller The name of the component which calls the library (UTF8).
154 * pUuid Pointer to the UUID of the accessed virtual machine. Can be NULL.
155 * guestJudgement Result of the guest authentication.
156 * szUser User name passed in by the client (UTF8).
157 * szPassword Password passed in by the client (UTF8).
158 * szDomain Domain passed in by the client (UTF8).
159 * fLogon Boolean flag. Indicates whether the entry point is called
160 * for a client logon or the client disconnect.
161 * clientId Server side unique identifier of the client.
162 *
163 * Return code:
164 *
165 * AuthResultAccessDenied Client access has been denied.
166 * AuthResultAccessGranted Client has the right to use the
167 * virtual machine.
168 * AuthResultDelegateToGuest Guest operating system must
169 * authenticate the client and the
170 * library must be called again with
171 * the result of the guest
172 * authentication.
173 *
174 * Note: When 'fLogon' is 0, only pszCaller, pUuid and clientId are valid and the return
175 * code is ignored.
176 */
177typedef AuthResult AUTHCALL AUTHENTRY3(const char *szCaller,
178 PAUTHUUID pUuid,
179 AuthGuestJudgement guestJudgement,
180 const char *szUser,
181 const char *szPassword,
182 const char *szDomain,
183 int fLogon,
184 unsigned clientId);
185
186
187typedef AUTHENTRY3 *PAUTHENTRY3;
188
189#define AUTHENTRY3_NAME "AuthEntry"
190
191#endif
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette