/* Editor Settings: expandtabs and use 4 spaces for indentation * ex: set softtabstop=4 tabstop=8 expandtab shiftwidth=4: * * -*- mode: c, c-basic-offset: 4 -*- */ /* * Copyright Likewise Software 2004-2008 * All rights reserved. * * This library is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the license, or (at * your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser * General Public License for more details. You should have received a copy * of the GNU Lesser General Public License along with this program. If * not, see . * * LIKEWISE SOFTWARE MAKES THIS SOFTWARE AVAILABLE UNDER OTHER LICENSING * TERMS AS WELL. IF YOU HAVE ENTERED INTO A SEPARATE LICENSE AGREEMENT * WITH LIKEWISE SOFTWARE, THEN YOU MAY ELECT TO USE THE SOFTWARE UNDER THE * TERMS OF THAT SOFTWARE LICENSE AGREEMENT INSTEAD OF THE TERMS OF THE GNU * LESSER GENERAL PUBLIC LICENSE, NOTWITHSTANDING THE ABOVE NOTICE. IF YOU * HAVE QUESTIONS, OR WISH TO REQUEST A COPY OF THE ALTERNATE LICENSING * TERMS OFFERED BY LIKEWISE SOFTWARE, PLEASE CONTACT LIKEWISE SOFTWARE AT * license@likewisesoftware.com */ /* * Copyright (C) Likewise Software. All rights reserved. * * Module Name: * * gssntlm.h * * Abstract: * * * Authors: * */ #ifndef __GSSNTLM_H__ #define __GSSNTLM_H__ #include #include #include //****************************************************************************** // // S T R U C T S // //****************************************************************************** // // D E F I N E S // /* 1.3.6.1.4.1.311.2.2.10 */ #define GSS_MECH_NTLM "\x2b\x06\x01\x04\x01\x82\x37\x02\x02\x0a" #define GSS_MECH_NTLM_LEN 10 /* 1.3.6.1.4.1.27433.3.1 */ #define GSS_CRED_OPT_PW "\x2b\x06\x01\x04\x01\x81\xd6\x29\x03\x01" #define GSS_CRED_OPT_PW_LEN 10 #define GSS_C_QOP_DUMMY_SIG 1 //****************************************************************************** // // E X T E R N S // extern gss_OID gGssNtlmOid; //****************************************************************************** // // P R O T O T Y P E S // OM_uint32 ntlm_gss_acquire_cred( OM_uint32* pMinorStatus, const gss_name_t pDesiredName, OM_uint32 nTimeReq, const gss_OID_set pDesiredMechs, gss_cred_usage_t CredUsage, gss_cred_id_t* pOutputCredHandle, gss_OID_set* pActualMechs, OM_uint32 *pTimeRec ); OM_uint32 ntlm_gss_release_cred( OM_uint32* pMinorStatus, gss_cred_id_t* pCredHandle ); OM_uint32 ntlm_gss_release_oid( OM_uint32* MinorStatus, gss_OID *pOid ); OM_uint32 ntlm_gss_init_sec_context( OM_uint32* pMinorStatus, const gss_cred_id_t InitiatorCredHandle, gss_ctx_id_t* pContextHandle, const gss_name_t pTargetName, const gss_OID pMechType, OM_uint32 nReqFlags, OM_uint32 nTimeReq, const gss_channel_bindings_t pInputChanBindings, const gss_buffer_t pInputToken, gss_OID* pActualMechType, gss_buffer_t pOutputToken, OM_uint32* pRetFlags, OM_uint32* pTimeRec ); OM_uint32 ntlm_gss_accept_sec_context( OM_uint32* pMinorStatus, gss_ctx_id_t *pContextHandle, const gss_cred_id_t AcceptorCredHandle, const gss_buffer_t pInputTokenBuffer, const gss_channel_bindings_t pInputChanBindings, gss_name_t* pSrcName, gss_OID* pMechType, gss_buffer_t pOutputToken, OM_uint32* pRetFlags, OM_uint32* pTimeRec, gss_cred_id_t* pDelegatedCredHandle ); OM_uint32 ntlm_gss_delete_sec_context( OM_uint32* pMinorStatus, gss_ctx_id_t* pContextHandle, gss_buffer_t OutputToken ); OM_uint32 ntlm_gss_display_name( OM_uint32* pMinorStatus, gss_name_t pGssName, gss_buffer_t pOutputName, gss_OID* ppNameType ); OM_uint32 ntlm_gss_get_mic( OM_uint32* pMinorStatus, gss_ctx_id_t GssCtxtHandle, gss_qop_t Qop, gss_buffer_t Message, gss_buffer_t Token ); OM_uint32 ntlm_gss_verify_mic( OM_uint32* pMinorStatus, gss_ctx_id_t GssCtxtHandle, gss_buffer_t Message, gss_buffer_t Token, gss_qop_t* pQop ); OM_uint32 ntlm_gss_wrap( OM_uint32* pMinorStatus, gss_ctx_id_t GssCtxtHandle, INT nEncrypt, gss_qop_t Qop, gss_buffer_t InputMessage, PINT ActualQop, gss_buffer_t OutputMessage ); OM_uint32 ntlm_gss_wrap_iov( OM_uint32* pMinorStatus, gss_ctx_id_t GssCtxtHandle, INT nEncrypt, gss_qop_t Qop, PINT pEncrypted, gss_iov_buffer_desc* pBuffers, int cBuffers ); OM_uint32 ntlm_gss_unwrap( OM_uint32* pMinorStatus, gss_ctx_id_t GssCtxtHandle, gss_buffer_t InputMessage, gss_buffer_t OutMessage, PINT pEncrypted, gss_qop_t* pQop ); OM_uint32 ntlm_gss_unwrap_iov( OM_uint32* pMinorStatus, gss_ctx_id_t GssCtxtHandle, PINT pEncrypted, gss_qop_t* pQop, gss_iov_buffer_desc* pBuffers, int cBuffers ); OM_uint32 ntlm_gss_display_status( OM_uint32* pMinorStatus, OM_uint32 dwConvertStatus, INT dwStatusType, gss_OID pMechType, OM_uint32* pdwContinueNeeded, gss_buffer_t pMsg ); OM_uint32 ntlm_gss_compare_oid( OM_uint32* pMinorStatus, const gss_OID a, const gss_OID b, BOOLEAN *bIsEqual ); OM_uint32 ntlm_gss_import_name( OM_uint32* pMinorStatus, const gss_buffer_t InputNameBuffer, const gss_OID InputNameType, gss_name_t* pOutputName ); OM_uint32 ntlm_gss_release_name( OM_uint32* pMinorStatus, gss_name_t* pName ); OM_uint32 ntlm_gss_inquire_cred( OM_uint32* pMinorStatus, const gss_cred_id_t CredHandle, gss_name_t* pName, OM_uint32* pLifeTime, gss_cred_usage_t* pCredUsage, gss_OID_set* pMechs ); OM_uint32 ntlm_gss_inquire_context( OM_uint32* pMinorStatus, gss_ctx_id_t GssCtxtHandle, gss_name_t* ppSourceName, gss_name_t* pTargetName, OM_uint32* pLifeTime, gss_OID* pMechType, OM_uint32* pCtxtFlags, PINT pLocal, PINT pOpen ); OM_uint32 ntlm_gss_inquire_sec_context_by_oid( OM_uint32* pMinorStatus, const gss_ctx_id_t GssCtxtHandle, const gss_OID Attrib, gss_buffer_set_t* ppBufferSet ); OM_uint32 ntlm_gssspi_set_cred_option( OM_uint32* pMinorStatus, gss_cred_id_t GssCredHandle, const gss_OID Option, const gss_buffer_t Buffer ); OM_uint32 ntlm_gss_get_name_attribute( OM_uint32* pMinorStatus, gss_name_t pName, gss_buffer_t pAttr, int* pAuthenticate, int* pComplete, gss_buffer_t pValue, gss_buffer_t pDisplayValue, int* pMore ); #endif /* __GSSNTLM_H__ */