1#ifndef HEADER_CURL_NTLM_CORE_H 2#define HEADER_CURL_NTLM_CORE_H 3/*************************************************************************** 4 * _ _ ____ _ 5 * Project ___| | | | _ \| | 6 * / __| | | | |_) | | 7 * | (__| |_| | _ <| |___ 8 * \___|\___/|_| \_\_____| 9 * 10 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al. 11 * 12 * This software is licensed as described in the file COPYING, which 13 * you should have received as part of this distribution. The terms 14 * are also available at http://curl.haxx.se/docs/copyright.html. 15 * 16 * You may opt to use, copy, modify, merge, publish, distribute and/or sell 17 * copies of the Software, and permit persons to whom the Software is 18 * furnished to do so, under the terms of the COPYING file. 19 * 20 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY 21 * KIND, either express or implied. 22 * 23 ***************************************************************************/ 24 25#include "setup.h" 26 27#if defined(USE_NTLM) && !defined(USE_WINDOWS_SSPI) 28 29#ifdef USE_SSLEAY 30# if !defined(OPENSSL_VERSION_NUMBER) && \ 31 !defined(HEADER_SSL_H) && !defined(HEADER_MD5_H) 32# error "curl_ntlm_core.h shall not be included before OpenSSL headers." 33# endif 34# ifdef OPENSSL_NO_MD4 35# define USE_NTRESPONSES 0 36# define USE_NTLM2SESSION 0 37# endif 38#endif 39 40/* 41 * Define USE_NTRESPONSES to 1 in order to make the type-3 message include 42 * the NT response message. Define USE_NTLM2SESSION to 1 in order to make 43 * the type-3 message include the NTLM2Session response message, requires 44 * USE_NTRESPONSES defined to 1. 45 */ 46 47#ifndef USE_NTRESPONSES 48# define USE_NTRESPONSES 1 49# define USE_NTLM2SESSION 1 50#endif 51 52void Curl_ntlm_core_lm_resp(const unsigned char *keys, 53 const unsigned char *plaintext, 54 unsigned char *results); 55 56void Curl_ntlm_core_mk_lm_hash(struct SessionHandle *data, 57 const char *password, 58 unsigned char *lmbuffer /* 21 bytes */); 59 60#if USE_NTRESPONSES 61CURLcode Curl_ntlm_core_mk_nt_hash(struct SessionHandle *data, 62 const char *password, 63 unsigned char *ntbuffer /* 21 bytes */); 64#endif 65 66#endif /* USE_NTLM && !USE_WINDOWS_SSPI */ 67 68#endif /* HEADER_CURL_NTLM_CORE_H */ 69