25 #ifndef NASL_SMB_CRYPT_H
26 #define NASL_SMB_CRYPT_H
32 #include "byteorder.h"
35 #define uchar unsigned char
42 typedef unsigned int bool;
46 void E_P24(
const uchar *p21,
const uchar *c8, uchar *p24);
47 void E_P16(uchar *p14,uchar *p16);
49 int strupper_w(smb_ucs2_t *s);
51 void SMBsesskeygen_lm_sess_key_ntlmssp(
const uchar lm_hash[16],
const uchar lm_resp[24], uint8 sess_key[16]);
53 void SMBsesskeygen_ntv1_ntlmssp(
const uchar kr[16],
const uchar * nt_resp, uint8 sess_key[16]);
55 void SMBOWFencrypt_ntlmssp(
const uchar passwd[16],
const uchar *c8, uchar p24[24]);
57 void SMBencrypt_ntlmssp(
const char *passwd,
const uchar *c8, uchar p24[24]);
59 void SMBencrypt_hash_ntlmssp(
const uchar lm_hash[16],
const uchar *c8, uchar p24[24]);
61 void SMBNTencrypt_hash_ntlmssp(
const uchar nt_hash[16], uchar *c8, uchar *p24);
63 void E_md5hash_ntlmssp(
const uchar salt[16],
const uchar nthash[16], uchar hash_out[16]);
65 bool E_deshash_ntlmssp(
const char *passwd, uchar p16[16]);
67 void SamOEMhash( uchar *data,
const uchar *key,
int val);
70 void SMBOWFencrypt_ntv2_ntlmssp(
const uchar kr[16],
71 const uint8_t *srv_chal,
73 const uint8_t *cli_chal,
77 void SMBsesskeygen_ntv2_ntlmssp(
const uchar kr[16],
78 const uchar * nt_resp, uint8 sess_key[16]);
80 uint8_t * NTLMv2_generate_client_data_ntlmssp(
const char *addr_list,
int address_list_len);
82 void NTLMv2_generate_response_ntlmssp(
const uchar ntlm_v2_hash[16],
83 const char *server_chal,
84 const char *address_list,
int address_list_len, uint8_t *nt_response);
86 void LMv2_generate_response_ntlmssp(
const uchar ntlm_v2_hash[16],
87 const char *server_chal, uint8_t *lm_response);
89 void SMBNTLMv2encrypt_hash_ntlmssp(
const char *user,
const char *domain, uchar ntlm_v2_hash[16],
90 const char *server_chal,
91 const char *address_list,
int address_list_len,
92 unsigned char *lm_response,
unsigned char *nt_response,
93 unsigned char *user_session_key);