#ifndef __heimntlm_protos_h__
#define __heimntlm_protos_h__
#include <stdarg.h>
#ifdef __cplusplus
extern "C" {
#endif
int
heim_ntlm_build_ntlm1_master (
void *,
size_t ,
struct ntlm_buf *,
struct ntlm_buf *);
int
heim_ntlm_build_ntlm2_master (
void *,
size_t ,
struct ntlm_buf *,
struct ntlm_buf *,
struct ntlm_buf *);
int
heim_ntlm_calculate_lm2 (
const void *,
size_t ,
const char *,
const char *,
const unsigned char serverchallenge[8],
unsigned char ntlmv2[16],
struct ntlm_buf *);
int
heim_ntlm_calculate_ntlm1 (
void *,
size_t ,
unsigned char challenge[8],
struct ntlm_buf *);
int
heim_ntlm_calculate_ntlm2 (
const void *,
size_t ,
const char *,
const char *,
const unsigned char serverchallenge[8],
const struct ntlm_buf *,
unsigned char ntlmv2[16],
struct ntlm_buf *);
int
heim_ntlm_calculate_ntlm2_sess (
const unsigned char clnt_nonce[8],
const unsigned char svr_chal[8],
const unsigned char ntlm_hash[16],
struct ntlm_buf *,
struct ntlm_buf *);
int
heim_ntlm_calculate_ntlm2_sess_hash (
const unsigned char clnt_nonce[8],
const unsigned char svr_chal[8],
unsigned char verifier[8]);
int
heim_ntlm_decode_targetinfo (
const struct ntlm_buf *,
int ,
struct ntlm_targetinfo *);
int
heim_ntlm_decode_type1 (
const struct ntlm_buf *,
struct ntlm_type1 *);
int
heim_ntlm_decode_type2 (
const struct ntlm_buf *,
struct ntlm_type2 *);
int
heim_ntlm_decode_type3 (
const struct ntlm_buf *,
int ,
struct ntlm_type3 *);
void
heim_ntlm_derive_ntlm2_sess (
const unsigned char sessionkey[16],
const unsigned char *,
size_t ,
const unsigned char svr_chal[8],
unsigned char derivedkey[16]);
int
heim_ntlm_encode_targetinfo (
const struct ntlm_targetinfo *,
int ,
struct ntlm_buf *);
int
heim_ntlm_encode_type1 (
const struct ntlm_type1 *,
struct ntlm_buf *);
int
heim_ntlm_encode_type2 (
const struct ntlm_type2 *,
struct ntlm_buf *);
int
heim_ntlm_encode_type3 (
const struct ntlm_type3 *,
struct ntlm_buf *,
size_t *mic_offset);
void
heim_ntlm_free_buf (struct ntlm_buf *);
void
heim_ntlm_free_targetinfo (struct ntlm_targetinfo *);
void
heim_ntlm_free_type1 (struct ntlm_type1 *);
void
heim_ntlm_free_type2 (struct ntlm_type2 *);
void
heim_ntlm_free_type3 (struct ntlm_type3 *);
int
heim_ntlm_keyex_unwrap (
struct ntlm_buf *,
struct ntlm_buf *,
struct ntlm_buf *);
int
heim_ntlm_keyex_wrap (
struct ntlm_buf *,
struct ntlm_buf *,
struct ntlm_buf *);
int
heim_ntlm_nt_key (
const char *,
struct ntlm_buf *);
int
heim_ntlm_ntlmv2_key (
const void *,
size_t ,
const char *,
const char *,
int upper_case_target,
unsigned char ntlmv2[16]);
size_t
heim_ntlm_unparse_flags (
uint32_t ,
char *,
size_t );
int
heim_ntlm_v1_base_session (
void *,
size_t ,
struct ntlm_buf *);
int
heim_ntlm_v2_base_session (
void *,
size_t ,
struct ntlm_buf *,
struct ntlm_buf *);
int
heim_ntlm_verify_ntlm2 (
const void *,
size_t ,
const char *,
const char *,
time_t ,
const unsigned char serverchallenge[8],
const struct ntlm_buf *,
struct ntlm_buf *,
unsigned char ntlmv2[16]);
uint64_t
heim_ntlm_unix2ts_time(time_t unix_time);
time_t
heim_ntlm_ts2unixtime(uint64_t t);
#ifdef __cplusplus
}
#endif
#endif