Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ntlm_core(3)		      Heimdal ntlm library		    ntlm_core(3)

NAME
     ntlm_core - Heimdal NTLM library

SYNOPSIS
   Functions
     void heim_ntlm_free_buf (struct ntlm_buf *p)
     void heim_ntlm_free_targetinfo (struct ntlm_targetinfo *ti)
     int  heim_ntlm_encode_targetinfo  (const  struct  ntlm_targetinfo	*ti, int
	 ucs2, struct ntlm_buf *data)
     int heim_ntlm_decode_targetinfo (const struct  ntlm_buf  *data,  int  ucs2,
	 struct ntlm_targetinfo *ti)
     void heim_ntlm_free_type1 (struct ntlm_type1 *data)
     int heim_ntlm_encode_type1 (const struct ntlm_type1 *type1, struct ntlm_buf
	 *data)
     void heim_ntlm_free_type2 (struct ntlm_type2 *data)
     int heim_ntlm_encode_type2 (const struct ntlm_type2 *type2, struct ntlm_buf
	 *data)
     void heim_ntlm_free_type3 (struct ntlm_type3 *data)
     int heim_ntlm_encode_type3 (const struct ntlm_type3 *type3, struct ntlm_buf
	 *data, size_t *mic_offset)
     int heim_ntlm_nt_key (const char *password, struct ntlm_buf *key)
     int  heim_ntlm_calculate_ntlm1  (void *key, size_t len, unsigned char chal-
	 lenge[8], struct ntlm_buf *answer)
     int heim_ntlm_build_ntlm1_master (void *key, size_t  len,	struct	ntlm_buf
	 *session, struct ntlm_buf *master)
     int  heim_ntlm_build_ntlm2_master	(void  *key, size_t len, struct ntlm_buf
	 *blob, struct ntlm_buf *session, struct ntlm_buf *master)
     int heim_ntlm_keyex_unwrap (struct ntlm_buf *baseKey, struct ntlm_buf  *en-
	 cryptedSession, struct ntlm_buf *session)
     int  heim_ntlm_ntlmv2_key	(const	void *key, size_t len, const char *user-
	 name,	const  char  *target,  int  upper_case_target,	 unsigned   char
	 ntlmv2[16])
     int heim_ntlm_calculate_lm2 (const void *key, size_t len, const char *user-
	 name,	const  char *target, const unsigned char serverchallenge[8], un-
	 signed char ntlmv2[16], struct ntlm_buf *answer)
     int heim_ntlm_calculate_ntlm2 (const void	*key,  size_t  len,  const  char
	 *username,  const char *target, const unsigned char serverchallenge[8],
	 const struct ntlm_buf *infotarget,  unsigned  char  ntlmv2[16],  struct
	 ntlm_buf *answer)
     int  heim_ntlm_verify_ntlm2 (const void *key, size_t len, const char *user-
	 name, const char *target, time_t now, const unsigned  char  serverchal-
	 lenge[8],  const  struct ntlm_buf *answer, struct ntlm_buf *infotarget,
	 unsigned char ntlmv2[16])

Detailed Description
     The NTLM core functions implement the string2key generation function,  mes-
     sage encode and decode function, and the hash function functions.

Function Documentation
   int	heim_ntlm_build_ntlm1_master  (void * key, size_t len, struct ntlm_buf *
     session, struct ntlm_buf * master)
     Generates an NTLMv1 session random with assosited session master key.

     Parameters
	 key the ntlm v1 key
	 len length of key
	 session   generated   session	 nonce,    should    be    freed    with
	 heim_ntlm_free_buf().
	 master   calculated   session	 master   key,	 should  be  freed  with
	 heim_ntlm_free_buf().

     Returns
	 In case of success 0 is return, an errors, a errno in what went wrong.

   int heim_ntlm_build_ntlm2_master (void * key, size_t len, struct  ntlm_buf  *
     blob, struct ntlm_buf * session, struct ntlm_buf * master)
     Generates an NTLMv2 session random with associated session master key.

     Parameters
	 key the NTLMv2 key
	 len length of key
	 blob the NTLMv2 'blob'
	 session    generated	 session    nonce,    should   be   freed   with
	 heim_ntlm_free_buf().
	 master  calculated  session  master   key,   should   be   freed   with
	 heim_ntlm_free_buf().

     Returns
	 In case of success 0 is return, an errors, a errno in what went wrong.

   int heim_ntlm_calculate_lm2 (const void * key, size_t len, const char * user-
     name, const char * target, const unsigned char serverchallenge[8], unsigned
     char ntlmv2[16], struct ntlm_buf * answer)
     Calculate LMv2 response

     Parameters
	 key the ntlm key
	 len length of key
	 username  name  of  the  user, as sent in the message, assumed to be in
	 UTF8.
	 target the name of the target, assumed to be in UTF8.
	 serverchallenge challenge as sent by the server in the type2 message.
	 ntlmv2 calculated session key
	 answer ntlm response answer, should be freed with heim_ntlm_free_buf().

     Returns
	 In case of success 0 is return, an errors, a errno in what went wrong.

   int heim_ntlm_calculate_ntlm1 (void * key, size_t len,  unsigned  char  chal-
     lenge[8], struct ntlm_buf * answer)
     Calculate NTLMv1 response hash

     Parameters
	 key the ntlm v1 key
	 len length of key
	 challenge sent by the server
	 answer calculated answer, should be freed with heim_ntlm_free_buf().

     Returns
	 In case of success 0 is return, an errors, a errno in what went wrong.

     Examples
	 test_ntlm.c.

   int	heim_ntlm_calculate_ntlm2  (const  void  * key, size_t len, const char *
     username, const char *  target,  const  unsigned  char  serverchallenge[8],
     const  struct  ntlm_buf  *  infotarget,  unsigned	char  ntlmv2[16], struct
     ntlm_buf * answer)
     Calculate NTLMv2 response

     Parameters
	 key the ntlm key
	 len length of key
	 username name of the user, as sent in the message,  assumed  to  be  in
	 UTF8.
	 target the name of the target, assumed to be in UTF8.
	 serverchallenge challenge as sent by the server in the type2 message.
	 infotarget infotarget as sent by the server in the type2 message.
	 ntlmv2 calculated session key
	 answer ntlm response answer, should be freed with heim_ntlm_free_buf().

     Returns
	 In case of success 0 is return, an errors, a errno in what went wrong.

     Examples
	 test_ntlm.c.

   int	heim_ntlm_decode_targetinfo  (const  struct  ntlm_buf  * data, int ucs2,
     struct ntlm_targetinfo * ti)
     Decodes an NTLM targetinfo message

     Parameters
	 data input data buffer with the encode NTLM targetinfo message
	 ucs2 if the strings should be encoded with ucs2 (selected  by	flag  in
	 message).
	 ti the decoded target info, should be freed with heim_ntlm_free_target-
	 info().

     Returns
	 In case of success 0 is return, an errors, a errno in what went wrong.

     Examples
	 test_ntlm.c.

   int heim_ntlm_encode_targetinfo (const struct ntlm_targetinfo * ti, int ucs2,
     struct ntlm_buf * data)
     Encodes a ntlm_targetinfo message.

     Parameters
	 ti the ntlm_targetinfo message to encode.
	 ucs2 ignored
	 data  is  the	return	buffer with the encoded message, should be freed
	 with heim_ntlm_free_buf().

     Returns
	 In case of success 0 is return, an errors, a errno in what went wrong.

     Examples
	 test_ntlm.c.

   int heim_ntlm_encode_type1 (const struct ntlm_type1 * type1, struct	ntlm_buf
     * data)
     Encodes an ntlm_type1 message.

     Parameters
	 type1 the ntlm_type1 message to encode.
	 data  is  the	return	buffer with the encoded message, should be freed
	 with heim_ntlm_free_buf().

     Returns
	 In case of success 0 is return, an errors, a errno in what went wrong.

     Examples
	 test_ntlm.c.

   int heim_ntlm_encode_type2 (const struct ntlm_type2 * type2, struct	ntlm_buf
     * data)
     Encodes an ntlm_type2 message.

     Parameters
	 type2 the ntlm_type2 message to encode.
	 data  is  the	return	buffer with the encoded message, should be freed
	 with heim_ntlm_free_buf().

     Returns
	 In case of success 0 is return, an errors, a errno in what went wrong.

     Examples
	 test_ntlm.c.

   int heim_ntlm_encode_type3 (const struct ntlm_type3 * type3, struct	ntlm_buf
     * data, size_t * mic_offset)
     Encodes an ntlm_type3 message.

     Parameters
	 type3 the ntlm_type3 message to encode.
	 data is the return buffer with the encoded message, should be
	 mic_offset    offset	 of    message	 integrity   code   freed   with
	 heim_ntlm_free_buf().

     Returns
	 In case of success 0 is return, an errors, a errno in what went wrong.

     Examples
	 test_ntlm.c.

   void heim_ntlm_free_buf (struct ntlm_buf * p)
     heim_ntlm_free_buf frees the ntlm buffer

     Parameters
	 p buffer to be freed

     Examples
	 test_ntlm.c.

   void heim_ntlm_free_targetinfo (struct ntlm_targetinfo * ti)
     Frees the ntlm_targetinfo message

     Parameters
	 ti targetinfo to be freed

     Examples
	 test_ntlm.c.

   void heim_ntlm_free_type1 (struct ntlm_type1 * data)
     Frees the ntlm_type1 message

     Parameters
	 data message to be freed

     Examples
	 test_ntlm.c.

   void heim_ntlm_free_type2 (struct ntlm_type2 * data)
     Frees the ntlm_type2 message

     Parameters
	 data message to be freed

     Examples
	 test_ntlm.c.

   void heim_ntlm_free_type3 (struct ntlm_type3 * data)
     Frees the ntlm_type3 message

     Parameters
	 data message to be freed

     Examples
	 test_ntlm.c.

   int heim_ntlm_keyex_unwrap (struct ntlm_buf * baseKey, struct ntlm_buf *  en-
     cryptedSession, struct ntlm_buf * session)
     Given a key and encrypted session, unwrap the session key

     Parameters
	 baseKey the sessionBaseKey
	 encryptedSession encrypted session, type3.session field.
	 session    generated	 session    nonce,    should   be   freed   with
	 heim_ntlm_free_buf().

     Returns
	 In case of success 0 is return, an errors, a errno in what went wrong.

   int heim_ntlm_nt_key (const char * password, struct ntlm_buf * key)
     Calculate the NTLM key, the password is assumed to be in UTF8.

     Parameters
	 password password to calcute the key for.
	 key calcuted key, should be freed with heim_ntlm_free_buf().

     Returns
	 In case of success 0 is return, an errors, a errno in what went wrong.

     Examples
	 test_ntlm.c.

   int heim_ntlm_ntlmv2_key (const void * key, size_t len, const  char	*  user-
     name, const char * target, int upper_case_target, unsigned char ntlmv2[16])

     Generates an NTLMv2 session key.

     Parameters
	 key the ntlm key
	 len length of key
	 username  name  of  the  user, as sent in the message, assumed to be in
	 UTF8.
	 target the name of the target, assumed to be in UTF8.
	 upper_case_target upper case the target, should not be  used  only  for
	 legacy systems
	 ntlmv2 the ntlmv2 session key

     Returns
	 0 on success, or an error code on failure.

   int	heim_ntlm_verify_ntlm2 (const void * key, size_t len, const char * user-
     name, const char * target, time_t	now,  const  unsigned  char  serverchal-
     lenge[8], const struct ntlm_buf * answer, struct ntlm_buf * infotarget, un-
     signed char ntlmv2[16])
     Verify NTLMv2 response.

     Parameters
	 key the ntlm key
	 len length of key
	 username  name  of  the  user, as sent in the message, assumed to be in
	 UTF8.
	 target the name of the target, assumed to be in UTF8.
	 now the time now (0 if the library should pick it up itself)
	 serverchallenge challenge as sent by the server in the type2 message.
	 answer ntlm response answer, should be freed with heim_ntlm_free_buf().
	 infotarget infotarget as sent by the server in the type2 message.
	 ntlmv2 calculated session key

     Returns
	 In case of success 0 is return, an errors, a errno in what went wrong.

     First check with the domain as the client passed it to the function.

     Second check with domain uppercased.

     Third check with empty domain.

     Examples
	 test_ntlm.c.

Author
     Generated automatically by Doxygen for Heimdal ntlm library from the source
     code.

Version 7.8.0			 Tue Nov 15 2022		    ntlm_core(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=heim_ntlm_build_ntlm1_master&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help