VRDPAuth.h revision 677833bc953b6cb418c701facbdcf4aa18d6c44e
/** @file
* VBox Remote Desktop Protocol:
* External Authentication Library Interface.
*/
/*
* Copyright (C) 2006 InnoTek Systemberatung GmbH
*
* This file is part of VirtualBox Open Source Edition (OSE), as
* available from http://www.virtualbox.org. This file is free software;
* you can redistribute it and/or modify it under the terms of the GNU
* General Public License as published by the Free Software Foundation,
* in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
* distribution. VirtualBox OSE is distributed in the hope that it will
* be useful, but WITHOUT ANY WARRANTY of any kind.
*
* If you received this file as part of a commercial VirtualBox
* distribution, then only the terms of your commercial VirtualBox
* license agreement apply instead of the previous paragraph.
*/
#ifndef __VBox_vrdpauth_h__
#define __VBox_vrdpauth_h__
/* The following 2 enums are 32 bits values.*/
typedef enum _VRDPAuthResult
{
VRDPAuthAccessDenied = 0,
VRDPAuthAccessGranted = 1,
VRDPAuthDelegateToGuest = 2,
VRDPAuthSizeHack = 0x7fffffff
} VRDPAuthResult;
typedef enum _VRDPAuthGuestJudgement
{
VRDPAuthGuestNotAsked = 0,
VRDPAuthGuestAccessDenied = 1,
VRDPAuthGuestNoJudgement = 2,
VRDPAuthGuestAccessGranted = 3,
VRDPAuthGuestNotReacted = 4,
VRDPAuthGuestSizeHack = 0x7fffffff
} VRDPAuthGuestJudgement;
/* UUID memory representation. Array of 16 bytes. */
typedef unsigned char VRDPAUTHUUID[16];
typedef VRDPAUTHUUID *PVRDPAUTHUUID;
/* The library entry point calling convention. */
#ifdef _MSC_VER
# define VRDPAUTHCALL __cdecl
#elif defined(__GNUC__)
# define VRDPAUTHCALL
#else
# error "Unsupported compiler"
#endif
/**
* Authentication library entry point. Decides whether to allow
* a client connection.
*
* Parameters:
*
* pUuid Pointer to the UUID of the virtual machine
* which the client connected to.
* guestJudgement Result of the guest authentication.
* szUser User name passed in by the client (UTF8).
* szPassword Password passed in by the client (UTF8).
* szDomain Domain passed in by the client (UTF8).
*
* Return code:
*
* VRDPAuthAccessDenied Client access has been denied.
* VRDPAuthAccessGranted Client has the right to use the
* virtual machine.
* VRDPAuthDelegateToGuest Guest operating system must
* authenticate the client and the
* library must be called again with
* the result of the guest
* authentication.
*/
typedef VRDPAuthResult VRDPAUTHCALL VRDPAUTHENTRY(PVRDPAUTHUUID pUuid,
VRDPAuthGuestJudgement guestJudgement,
const char *szUser,
const char *szPassword,
const char *szDomain);
typedef VRDPAUTHENTRY *PVRDPAUTHENTRY;
#endif /* __VBox_vrdpauth_h__ */