+++ /dev/null
-/**
- * WinPR: Windows Portable Runtime
- * Network Security Support Provider Interface (NetSSPI)
- *
- * Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef WINPR_NETSSPI_H
-#define WINPR_NETSSPI_H
-
-#include <winpr/sspi.h>
-
-#define NETSSPI_ENUMERATE_SECURITY_PACKAGES 1
-#define NETSSPI_QUERY_CREDENTIALS_ATTRIBUTES 3
-#define NETSSPI_ACQUIRE_CREDENTIALS_HANDLE 4
-#define NETSSPI_FREE_CREDENTIALS_HANDLE 5
-#define NETSSPI_INITIALIZE_SECURITY_CONTEXT 7
-#define NETSSPI_ACCEPT_SECURITY_CONTEXT 8
-#define NETSSPI_COMPLETE_AUTH_TOKEN 9
-#define NETSSPI_DELETE_SECURITY_CONTEXT 10
-#define NETSSPI_APPLY_CONTROL_TOKEN 11
-#define NETSSPI_QUERY_CONTEXT_ATTRIBUTES 12
-#define NETSSPI_IMPERSONATE_SECURITY_CONTEXT 13
-#define NETSSPI_REVERT_SECURITY_CONTEXT 14
-#define NETSSPI_MAKE_SIGNATURE 15
-#define NETSSPI_VERIFY_SIGNATURE 16
-#define NETSSPI_FREE_CONTEXT_BUFFER 17
-#define NETSSPI_QUERY_SECURITY_PACKAGE_INFO 18
-#define NETSSPI_EXPORT_SECURITY_CONTEXT 21
-#define NETSSPI_IMPORT_SECURITY_CONTEXT 22
-#define NETSSPI_ADD_CREDENTIALS 23
-#define NETSSPI_QUERY_SECURITY_CONTEXT_TOKEN 25
-#define NETSSPI_ENCRYPT_MESSAGE 26
-#define NETSSPI_DECRYPT_MESSAGE 27
-#define NETSSPI_SET_CONTEXT_ATTRIBUTES 28
-
-#define NETSSPI_FLAGS_UNICODE 0x80
-
-#define NETSSPI_FIELD_01 0x000001
-#define NETSSPI_FIELD_02 0x000002
-#define NETSSPI_FIELD_03 0x000004
-#define NETSSPI_FIELD_04 0x000008
-#define NETSSPI_FIELD_05 0x000010
-#define NETSSPI_FIELD_06 0x000020
-#define NETSSPI_FIELD_07 0x000040
-#define NETSSPI_FIELD_08 0x000080
-#define NETSSPI_FIELD_09 0x000100
-#define NETSSPI_FIELD_10 0x000200
-#define NETSSPI_FIELD_11 0x000400
-#define NETSSPI_FIELD_12 0x000800
-#define NETSSPI_FIELD_13 0x001000
-#define NETSSPI_FIELD_14 0x002000
-#define NETSSPI_FIELD_15 0x004000
-#define NETSSPI_FIELD_16 0x008000
-#define NETSSPI_FIELD_17 0x010000
-#define NETSSPI_FIELD_18 0x020000
-#define NETSSPI_FIELD_19 0x040000
-#define NETSSPI_FIELD_20 0x080000
-#define NETSSPI_FIELD_21 0x100000
-#define NETSSPI_FIELD_22 0x200000
-#define NETSSPI_FIELD_23 0x400000
-#define NETSSPI_FIELD_24 0x800000
-
-#define NETSSPI_HEADER_REQ_LENGTH 10
-#define NETSSPI_HEADER_RSP_LENGTH 10
-
-struct _NETSSPI_STRING
-{
- UINT16 Length;
- BYTE* Buffer;
-};
-typedef struct _NETSSPI_STRING NETSSPI_STRING;
-
-struct _NETSSPI_HANDLE
-{
- UINT64 dwLower;
- UINT64 dwUpper;
-};
-typedef struct _NETSSPI_HANDLE NETSSPI_HANDLE;
-
-struct _NETSSPI_TIMESTAMP
-{
- UINT32 LowPart;
- INT32 HighPart;
-};
-typedef struct _NETSSPI_TIMESTAMP NETSSPI_TIMESTAMP;
-
-struct _NETSSPI_LUID
-{
- UINT32 LowPart;
- INT32 HighPart;
-};
-typedef struct _NETSSPI_LUID NETSSPI_LUID;
-
-struct _NETSSPI_AUTH_IDENTITY
-{
- UINT32 Flags;
- NETSSPI_STRING User;
- NETSSPI_STRING Domain;
- NETSSPI_STRING Password;
-};
-typedef struct _NETSSPI_AUTH_IDENTITY NETSSPI_AUTH_IDENTITY;
-
-struct _NETSSPI_SEC_BUFFER
-{
- UINT32 cbBuffer;
- UINT32 BufferType;
- void* pvBuffer;
-};
-typedef struct _NETSSPI_SEC_BUFFER NETSSPI_SEC_BUFFER;
-
-struct _NETSSPI_SEC_BUFFER_DESC
-{
- UINT32 ulVersion;
- UINT32 cBuffers;
- NETSSPI_SEC_BUFFER* pBuffers;
-};
-typedef struct _NETSSPI_SEC_BUFFER_DESC NETSSPI_SEC_BUFFER_DESC;
-
-struct _NETSSPI_HEADER_REQ
-{
- UINT32 TotalLength;
- UINT8 Flags;
- UINT8 FunctionId;
- UINT32 ExtFlags;
-};
-typedef struct _NETSSPI_HEADER_REQ NETSSPI_HEADER_REQ;
-
-struct _NETSSPI_HEADER_RSP
-{
- UINT32 TotalLength;
- UINT8 Flags;
- UINT8 FunctionId;
- UINT32 Status;
-};
-typedef struct _NETSSPI_HEADER_RSP NETSSPI_HEADER_RSP;
-
-struct _NETSSPI_QUERY_SECURITY_PACKAGE_INFO_REQ
-{
- NETSSPI_STRING PackageName;
-};
-typedef struct _NETSSPI_QUERY_SECURITY_PACKAGE_INFO_REQ NETSSPI_QUERY_SECURITY_PACKAGE_INFO_REQ;
-
-struct _NETSSPI_QUERY_SECURITY_PACKAGE_INFO_RSP
-{
- UINT32 fCapabilities;
- UINT16 wVersion;
- UINT16 wRPCID;
- UINT32 cbMaxToken;
- NETSSPI_STRING Name;
- NETSSPI_STRING Comment;
-};
-typedef struct _NETSSPI_QUERY_SECURITY_PACKAGE_INFO_RSP NETSSPI_QUERY_SECURITY_PACKAGE_INFO_RSP;
-
-struct _NETSSPI_ACQUIRE_CREDENTIALS_HANDLE_REQ
-{
- NETSSPI_STRING Principal;
- NETSSPI_STRING Package;
- UINT32 fCredentialUse;
- NETSSPI_LUID LogonID;
- UINT16 AuthDataType;
- UINT32 AuthDataLength;
- NETSSPI_AUTH_IDENTITY identity;
-};
-typedef struct _NETSSPI_ACQUIRE_CREDENTIALS_HANDLE_REQ NETSSPI_ACQUIRE_CREDENTIALS_HANDLE_REQ;
-
-struct _NETSSPI_ACQUIRE_CREDENTIALS_HANDLE_RSP
-{
- NETSSPI_HANDLE Credential;
- NETSSPI_TIMESTAMP Expiry;
-};
-typedef struct _NETSSPI_ACQUIRE_CREDENTIALS_HANDLE_RSP NETSSPI_ACQUIRE_CREDENTIALS_HANDLE_RSP;
-
-struct _NETSSPI_ACCEPT_SECURITY_CONTEXT_REQ
-{
- NETSSPI_HANDLE Credential;
- NETSSPI_HANDLE Context;
- NETSSPI_SEC_BUFFER_DESC Input;
- UINT32 fContextReq;
- UINT32 TargetDataRep;
- NETSSPI_HANDLE NewContext;
- NETSSPI_SEC_BUFFER_DESC Output;
- UINT32 fContextAttr;
- NETSSPI_TIMESTAMP TimeStamp;
-};
-typedef struct _NETSSPI_ACCEPT_SECURITY_CONTEXT_REQ NETSSPI_ACCEPT_SECURITY_CONTEXT_REQ;
-
-struct _NETSSPI_ACCEPT_SECURITY_CONTEXT_RSP
-{
- NETSSPI_HANDLE Context;
- NETSSPI_HANDLE NewContext;
- NETSSPI_SEC_BUFFER_DESC Output;
- UINT32 fContextAttr;
- NETSSPI_TIMESTAMP TimeStamp;
-};
-typedef struct _NETSSPI_ACCEPT_SECURITY_CONTEXT_RSP NETSSPI_ACCEPT_SECURITY_CONTEXT_RSP;
-
-#endif /* WINPR_NETSSPI_H */