1c19800e8SDoug Rabson /* This is a generated file */ 2c19800e8SDoug Rabson #ifndef __heimntlm_protos_h__ 3c19800e8SDoug Rabson #define __heimntlm_protos_h__ 4c19800e8SDoug Rabson 5c19800e8SDoug Rabson #include <stdarg.h> 6c19800e8SDoug Rabson 7c19800e8SDoug Rabson #ifdef __cplusplus 8c19800e8SDoug Rabson extern "C" { 9c19800e8SDoug Rabson #endif 10c19800e8SDoug Rabson 11c19800e8SDoug Rabson int 12c19800e8SDoug Rabson heim_ntlm_build_ntlm1_master ( 13c19800e8SDoug Rabson void */*key*/, 14c19800e8SDoug Rabson size_t /*len*/, 15c19800e8SDoug Rabson struct ntlm_buf */*session*/, 16c19800e8SDoug Rabson struct ntlm_buf */*master*/); 17c19800e8SDoug Rabson 18c19800e8SDoug Rabson int 19ae771770SStanislav Sedov heim_ntlm_build_ntlm2_master ( 20ae771770SStanislav Sedov void */*key*/, 21ae771770SStanislav Sedov size_t /*len*/, 22ae771770SStanislav Sedov struct ntlm_buf */*blob*/, 23ae771770SStanislav Sedov struct ntlm_buf */*session*/, 24ae771770SStanislav Sedov struct ntlm_buf */*master*/); 25ae771770SStanislav Sedov 26ae771770SStanislav Sedov int 27ae771770SStanislav Sedov heim_ntlm_calculate_lm2 ( 28ae771770SStanislav Sedov const void */*key*/, 29ae771770SStanislav Sedov size_t /*len*/, 30ae771770SStanislav Sedov const char */*username*/, 31ae771770SStanislav Sedov const char */*target*/, 32ae771770SStanislav Sedov const unsigned char serverchallenge[8], 33ae771770SStanislav Sedov unsigned char ntlmv2[16], 34ae771770SStanislav Sedov struct ntlm_buf */*answer*/); 35ae771770SStanislav Sedov 36ae771770SStanislav Sedov int 37c19800e8SDoug Rabson heim_ntlm_calculate_ntlm1 ( 38c19800e8SDoug Rabson void */*key*/, 39c19800e8SDoug Rabson size_t /*len*/, 40ae771770SStanislav Sedov unsigned char challenge[8], 41c19800e8SDoug Rabson struct ntlm_buf */*answer*/); 42c19800e8SDoug Rabson 43c19800e8SDoug Rabson int 44c19800e8SDoug Rabson heim_ntlm_calculate_ntlm2 ( 45c19800e8SDoug Rabson const void */*key*/, 46c19800e8SDoug Rabson size_t /*len*/, 47c19800e8SDoug Rabson const char */*username*/, 48c19800e8SDoug Rabson const char */*target*/, 49ae771770SStanislav Sedov const unsigned char serverchallenge[8], 50c19800e8SDoug Rabson const struct ntlm_buf */*infotarget*/, 51c19800e8SDoug Rabson unsigned char ntlmv2[16], 52c19800e8SDoug Rabson struct ntlm_buf */*answer*/); 53c19800e8SDoug Rabson 54c19800e8SDoug Rabson int 55c19800e8SDoug Rabson heim_ntlm_calculate_ntlm2_sess ( 56c19800e8SDoug Rabson const unsigned char clnt_nonce[8], 57c19800e8SDoug Rabson const unsigned char svr_chal[8], 58c19800e8SDoug Rabson const unsigned char ntlm_hash[16], 59c19800e8SDoug Rabson struct ntlm_buf */*lm*/, 60c19800e8SDoug Rabson struct ntlm_buf */*ntlm*/); 61c19800e8SDoug Rabson 62c19800e8SDoug Rabson int 63ae771770SStanislav Sedov heim_ntlm_calculate_ntlm2_sess_hash ( 64ae771770SStanislav Sedov const unsigned char clnt_nonce[8], 65ae771770SStanislav Sedov const unsigned char svr_chal[8], 66ae771770SStanislav Sedov unsigned char verifier[8]); 67ae771770SStanislav Sedov 68ae771770SStanislav Sedov int 69c19800e8SDoug Rabson heim_ntlm_decode_targetinfo ( 70c19800e8SDoug Rabson const struct ntlm_buf */*data*/, 71c19800e8SDoug Rabson int /*ucs2*/, 72c19800e8SDoug Rabson struct ntlm_targetinfo */*ti*/); 73c19800e8SDoug Rabson 74c19800e8SDoug Rabson int 75c19800e8SDoug Rabson heim_ntlm_decode_type1 ( 76c19800e8SDoug Rabson const struct ntlm_buf */*buf*/, 77c19800e8SDoug Rabson struct ntlm_type1 */*data*/); 78c19800e8SDoug Rabson 79c19800e8SDoug Rabson int 80c19800e8SDoug Rabson heim_ntlm_decode_type2 ( 81c19800e8SDoug Rabson const struct ntlm_buf */*buf*/, 82c19800e8SDoug Rabson struct ntlm_type2 */*type2*/); 83c19800e8SDoug Rabson 84c19800e8SDoug Rabson int 85c19800e8SDoug Rabson heim_ntlm_decode_type3 ( 86c19800e8SDoug Rabson const struct ntlm_buf */*buf*/, 87c19800e8SDoug Rabson int /*ucs2*/, 88c19800e8SDoug Rabson struct ntlm_type3 */*type3*/); 89c19800e8SDoug Rabson 90*e4456411SJohn Baldwin int 91ae771770SStanislav Sedov heim_ntlm_derive_ntlm2_sess ( 92ae771770SStanislav Sedov const unsigned char sessionkey[16], 93ae771770SStanislav Sedov const unsigned char */*clnt_nonce*/, 94ae771770SStanislav Sedov size_t /*clnt_nonce_length*/, 95ae771770SStanislav Sedov const unsigned char svr_chal[8], 96ae771770SStanislav Sedov unsigned char derivedkey[16]); 97ae771770SStanislav Sedov 98c19800e8SDoug Rabson int 99c19800e8SDoug Rabson heim_ntlm_encode_targetinfo ( 100c19800e8SDoug Rabson const struct ntlm_targetinfo */*ti*/, 101c19800e8SDoug Rabson int /*ucs2*/, 102c19800e8SDoug Rabson struct ntlm_buf */*data*/); 103c19800e8SDoug Rabson 104c19800e8SDoug Rabson int 105c19800e8SDoug Rabson heim_ntlm_encode_type1 ( 106c19800e8SDoug Rabson const struct ntlm_type1 */*type1*/, 107c19800e8SDoug Rabson struct ntlm_buf */*data*/); 108c19800e8SDoug Rabson 109c19800e8SDoug Rabson int 110c19800e8SDoug Rabson heim_ntlm_encode_type2 ( 111c19800e8SDoug Rabson const struct ntlm_type2 */*type2*/, 112c19800e8SDoug Rabson struct ntlm_buf */*data*/); 113c19800e8SDoug Rabson 114c19800e8SDoug Rabson int 115c19800e8SDoug Rabson heim_ntlm_encode_type3 ( 116c19800e8SDoug Rabson const struct ntlm_type3 */*type3*/, 117c19800e8SDoug Rabson struct ntlm_buf */*data*/); 118c19800e8SDoug Rabson 119c19800e8SDoug Rabson void 120c19800e8SDoug Rabson heim_ntlm_free_buf (struct ntlm_buf */*p*/); 121c19800e8SDoug Rabson 122c19800e8SDoug Rabson void 123c19800e8SDoug Rabson heim_ntlm_free_targetinfo (struct ntlm_targetinfo */*ti*/); 124c19800e8SDoug Rabson 125c19800e8SDoug Rabson void 126c19800e8SDoug Rabson heim_ntlm_free_type1 (struct ntlm_type1 */*data*/); 127c19800e8SDoug Rabson 128c19800e8SDoug Rabson void 129c19800e8SDoug Rabson heim_ntlm_free_type2 (struct ntlm_type2 */*data*/); 130c19800e8SDoug Rabson 131c19800e8SDoug Rabson void 132c19800e8SDoug Rabson heim_ntlm_free_type3 (struct ntlm_type3 */*data*/); 133c19800e8SDoug Rabson 134c19800e8SDoug Rabson int 135ae771770SStanislav Sedov heim_ntlm_keyex_unwrap ( 136ae771770SStanislav Sedov struct ntlm_buf */*baseKey*/, 137ae771770SStanislav Sedov struct ntlm_buf */*encryptedSession*/, 138ae771770SStanislav Sedov struct ntlm_buf */*session*/); 139ae771770SStanislav Sedov 140ae771770SStanislav Sedov int 141ae771770SStanislav Sedov heim_ntlm_keyex_wrap ( 142ae771770SStanislav Sedov struct ntlm_buf */*base_session*/, 143ae771770SStanislav Sedov struct ntlm_buf */*session*/, 144ae771770SStanislav Sedov struct ntlm_buf */*encryptedSession*/); 145ae771770SStanislav Sedov 146ae771770SStanislav Sedov int 147c19800e8SDoug Rabson heim_ntlm_nt_key ( 148c19800e8SDoug Rabson const char */*password*/, 149c19800e8SDoug Rabson struct ntlm_buf */*key*/); 150c19800e8SDoug Rabson 151ae771770SStanislav Sedov int 152c19800e8SDoug Rabson heim_ntlm_ntlmv2_key ( 153c19800e8SDoug Rabson const void */*key*/, 154c19800e8SDoug Rabson size_t /*len*/, 155c19800e8SDoug Rabson const char */*username*/, 156c19800e8SDoug Rabson const char */*target*/, 157c19800e8SDoug Rabson unsigned char ntlmv2[16]); 158c19800e8SDoug Rabson 159ae771770SStanislav Sedov size_t 160ae771770SStanislav Sedov heim_ntlm_unparse_flags ( 161ae771770SStanislav Sedov uint32_t /*flags*/, 162ae771770SStanislav Sedov char */*s*/, 163ae771770SStanislav Sedov size_t /*len*/); 164ae771770SStanislav Sedov 165ae771770SStanislav Sedov int 166ae771770SStanislav Sedov heim_ntlm_v1_base_session ( 167ae771770SStanislav Sedov void */*key*/, 168ae771770SStanislav Sedov size_t /*len*/, 169ae771770SStanislav Sedov struct ntlm_buf */*session*/); 170ae771770SStanislav Sedov 171ae771770SStanislav Sedov int 172ae771770SStanislav Sedov heim_ntlm_v2_base_session ( 173ae771770SStanislav Sedov void */*key*/, 174ae771770SStanislav Sedov size_t /*len*/, 175ae771770SStanislav Sedov struct ntlm_buf */*ntlmResponse*/, 176ae771770SStanislav Sedov struct ntlm_buf */*session*/); 177ae771770SStanislav Sedov 178c19800e8SDoug Rabson int 179c19800e8SDoug Rabson heim_ntlm_verify_ntlm2 ( 180c19800e8SDoug Rabson const void */*key*/, 181c19800e8SDoug Rabson size_t /*len*/, 182c19800e8SDoug Rabson const char */*username*/, 183c19800e8SDoug Rabson const char */*target*/, 184c19800e8SDoug Rabson time_t /*now*/, 185ae771770SStanislav Sedov const unsigned char serverchallenge[8], 186c19800e8SDoug Rabson const struct ntlm_buf */*answer*/, 187c19800e8SDoug Rabson struct ntlm_buf */*infotarget*/, 188c19800e8SDoug Rabson unsigned char ntlmv2[16]); 189c19800e8SDoug Rabson 190c19800e8SDoug Rabson #ifdef __cplusplus 191c19800e8SDoug Rabson } 192c19800e8SDoug Rabson #endif 193c19800e8SDoug Rabson 194c19800e8SDoug Rabson #endif /* __heimntlm_protos_h__ */ 195