/* * ==================================================================== * Copyright (c) 2004-2012 TMate Software Ltd. All rights reserved. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at http://svnkit.com/license.html. * If newer versions of this license are posted there, you may use a * newer version instead, at your option. * ==================================================================== */ package org.tmatesoft.svn.core.internal.util.jna; import java.util.Arrays; import java.util.List; import com.sun.jna.NativeLong; import com.sun.jna.Pointer; import com.sun.jna.Structure; import com.sun.jna.WString; import com.sun.jna.win32.StdCallLibrary; /** * @version 1.1.2 * @author TMate Software Ltd. */ public interface ISVNSecurityLibrary extends StdCallLibrary { public static int SEC_WINNT_AUTH_IDENTITY_ANSI = 0x1; public static int SEC_WINNT_AUTH_IDENTITY_UNICODE = 0x2; public static int SECPKG_CRED_OUTBOUND = 0x00000002; public static int SECURITY_NATIVE_DREP = 0x00000010; public static int SECBUFFER_TOKEN = 2; public static int SEC_I_CONTINUE_NEEDED = 0x00090312; public static int SEC_I_COMPLETE_NEEDED = 0x00090313; public static int SEC_I_COMPLETE_AND_CONTINUE = 0x00090314; public static class SecHandle extends Structure { public NativeLong dwLower; public NativeLong dwUpper; protected List<String> getFieldOrder() { return Arrays.asList("dwLower", "dwUpper"); } } public static class TimeStamp extends Structure { public NativeLong LowPart; public NativeLong HighPart; protected List<String> getFieldOrder() { return Arrays.asList("LowPart", "HighPart"); } } public static class SecBufferDesc extends Structure { public NativeLong ulVersion; public NativeLong cBuffers; public Pointer pBuffers; protected List<String> getFieldOrder() { return Arrays.asList("ulVersion", "cBuffers", "pBuffers"); } } public static class SecBuffer extends Structure { public NativeLong cbBuffer; public NativeLong BufferType; public Pointer pvBuffer; protected List<String> getFieldOrder() { return Arrays.asList("cbBuffer", "BufferType", "pvBuffer"); } } public static class SEC_WINNT_AUTH_IDENTITY extends Structure { public WString User; public NativeLong UserLength; public WString Domain; public NativeLong DomainLength; public WString Password; public NativeLong PasswordLength; public NativeLong Flags; protected List<String> getFieldOrder() { return Arrays.asList("User", "UserLength", "Domain", "DomainLength", "Password", "PasswordLength", "Flags"); } } public int FreeCredentialsHandle(Pointer phCredential); public int AcquireCredentialsHandleW(WString pszPrincipal, WString pszPackage, NativeLong fCredentialUse, Pointer pvLogonID, Pointer pAuthData, Pointer pGetKeyFn, Pointer pvGetKeyArgument, Pointer phCredential, Pointer ptsExpiry); public int FreeContextBuffer(Pointer pvContextBuffer); public int InitializeSecurityContextW(Pointer phCredential, Pointer phContext, WString pszTargetName, NativeLong fContextReq, NativeLong Reserved1, NativeLong TargetDataRep, Pointer pInput, NativeLong Reserved2, Pointer phNewContext, Pointer pOutput, Pointer pfContextAttr, Pointer ptsExpiry); public int CompleteAuthToken(Pointer phContext, Pointer pToken); public int DeleteSecurityContext(Pointer phContext); }