wpa_supplicant / hostapd
2.5
|
WPA Supplicant / shared MSCHAPV2 helper functions / RFC 2433 / RFC 2759. More...
#include "includes.h"
#include "common.h"
#include "sha1.h"
#include "ms_funcs.h"
#include "crypto.h"
Macros | |
#define | PWBLOCK_LEN 516 |
Functions | |
int | challenge_hash (const u8 *peer_challenge, const u8 *auth_challenge, const u8 *username, size_t username_len, u8 *challenge) |
ChallengeHash() - RFC 2759, Sect. 8.2. More... | |
int | nt_password_hash (const u8 *password, size_t password_len, u8 *password_hash) |
NtPasswordHash() - RFC 2759, Sect. 8.3. More... | |
int | hash_nt_password_hash (const u8 *password_hash, u8 *password_hash_hash) |
HashNtPasswordHash() - RFC 2759, Sect. 8.4. More... | |
void | challenge_response (const u8 *challenge, const u8 *password_hash, u8 *response) |
ChallengeResponse() - RFC 2759, Sect. 8.5. More... | |
int | generate_nt_response (const u8 *auth_challenge, const u8 *peer_challenge, const u8 *username, size_t username_len, const u8 *password, size_t password_len, u8 *response) |
GenerateNTResponse() - RFC 2759, Sect. 8.1. More... | |
int | generate_nt_response_pwhash (const u8 *auth_challenge, const u8 *peer_challenge, const u8 *username, size_t username_len, const u8 *password_hash, u8 *response) |
GenerateNTResponse() - RFC 2759, Sect. 8.1. More... | |
int | generate_authenticator_response_pwhash (const u8 *password_hash, const u8 *peer_challenge, const u8 *auth_challenge, const u8 *username, size_t username_len, const u8 *nt_response, u8 *response) |
GenerateAuthenticatorResponse() - RFC 2759, Sect. 8.7. More... | |
int | generate_authenticator_response (const u8 *password, size_t password_len, const u8 *peer_challenge, const u8 *auth_challenge, const u8 *username, size_t username_len, const u8 *nt_response, u8 *response) |
GenerateAuthenticatorResponse() - RFC 2759, Sect. 8.7. More... | |
int | nt_challenge_response (const u8 *challenge, const u8 *password, size_t password_len, u8 *response) |
NtChallengeResponse() - RFC 2433, Sect. A.5. More... | |
int | get_master_key (const u8 *password_hash_hash, const u8 *nt_response, u8 *master_key) |
GetMasterKey() - RFC 3079, Sect. 3.4. More... | |
int | get_asymetric_start_key (const u8 *master_key, u8 *session_key, size_t session_key_len, int is_send, int is_server) |
GetAsymetricStartKey() - RFC 3079, Sect. 3.4. More... | |
int | encrypt_pw_block_with_password_hash (const u8 *password, size_t password_len, const u8 *password_hash, u8 *pw_block) |
EncryptPwBlockWithPasswordHash() - RFC 2759, Sect. 8.10. More... | |
int | new_password_encrypted_with_old_nt_password_hash (const u8 *new_password, size_t new_password_len, const u8 *old_password, size_t old_password_len, u8 *encrypted_pw_block) |
NewPasswordEncryptedWithOldNtPasswordHash() - RFC 2759, Sect. 8.9. More... | |
void | nt_password_hash_encrypted_with_block (const u8 *password_hash, const u8 *block, u8 *cypher) |
NtPasswordHashEncryptedWithBlock() - RFC 2759, Sect 8.13. More... | |
int | old_nt_password_hash_encrypted_with_new_nt_password_hash (const u8 *new_password, size_t new_password_len, const u8 *old_password, size_t old_password_len, u8 *encrypted_password_hash) |
OldNtPasswordHashEncryptedWithNewNtPasswordHash() - RFC 2759, Sect. 8.12. More... | |
WPA Supplicant / shared MSCHAPV2 helper functions / RFC 2433 / RFC 2759.
int challenge_hash | ( | const u8 * | peer_challenge, |
const u8 * | auth_challenge, | ||
const u8 * | username, | ||
size_t | username_len, | ||
u8 * | challenge | ||
) |
ChallengeHash() - RFC 2759, Sect. 8.2.
peer_challenge | 16-octet PeerChallenge (IN) |
auth_challenge | 16-octet AuthenticatorChallenge (IN) |
username | 0-to-256-char UserName (IN) |
username_len | Length of username |
challenge | 8-octet Challenge (OUT) |
void challenge_response | ( | const u8 * | challenge, |
const u8 * | password_hash, | ||
u8 * | response | ||
) |
ChallengeResponse() - RFC 2759, Sect. 8.5.
challenge | 8-octet Challenge (IN) |
password_hash | 16-octet PasswordHash (IN) |
response | 24-octet Response (OUT) |
int encrypt_pw_block_with_password_hash | ( | const u8 * | password, |
size_t | password_len, | ||
const u8 * | password_hash, | ||
u8 * | pw_block | ||
) |
EncryptPwBlockWithPasswordHash() - RFC 2759, Sect. 8.10.
password | 0-to-256-unicode-char Password (IN; UTF-8) |
password_len | Length of password |
password_hash | 16-octet PasswordHash (IN) |
pw_block | 516-byte PwBlock (OUT) |
int generate_authenticator_response | ( | const u8 * | password, |
size_t | password_len, | ||
const u8 * | peer_challenge, | ||
const u8 * | auth_challenge, | ||
const u8 * | username, | ||
size_t | username_len, | ||
const u8 * | nt_response, | ||
u8 * | response | ||
) |
GenerateAuthenticatorResponse() - RFC 2759, Sect. 8.7.
password | 0-to-256-unicode-char Password (IN; UTF-8) |
password_len | Length of password |
nt_response | 24-octet NT-Response (IN) |
peer_challenge | 16-octet PeerChallenge (IN) |
auth_challenge | 16-octet AuthenticatorChallenge (IN) |
username | 0-to-256-char UserName (IN) |
username_len | Length of username |
response | 20-octet AuthenticatorResponse (OUT) (note: this value is usually encoded as a 42-octet ASCII string (S=hexdump_of_response) |
int generate_authenticator_response_pwhash | ( | const u8 * | password_hash, |
const u8 * | peer_challenge, | ||
const u8 * | auth_challenge, | ||
const u8 * | username, | ||
size_t | username_len, | ||
const u8 * | nt_response, | ||
u8 * | response | ||
) |
GenerateAuthenticatorResponse() - RFC 2759, Sect. 8.7.
password_hash | 16-octet PasswordHash (IN) |
nt_response | 24-octet NT-Response (IN) |
peer_challenge | 16-octet PeerChallenge (IN) |
auth_challenge | 16-octet AuthenticatorChallenge (IN) |
username | 0-to-256-char UserName (IN) |
username_len | Length of username |
response | 20-octet AuthenticatorResponse (OUT) (note: this value is usually encoded as a 42-octet ASCII string (S=hexdump_of_response) |
int generate_nt_response | ( | const u8 * | auth_challenge, |
const u8 * | peer_challenge, | ||
const u8 * | username, | ||
size_t | username_len, | ||
const u8 * | password, | ||
size_t | password_len, | ||
u8 * | response | ||
) |
GenerateNTResponse() - RFC 2759, Sect. 8.1.
auth_challenge | 16-octet AuthenticatorChallenge (IN) |
peer_challenge | 16-octet PeerChallenge (IN) |
username | 0-to-256-char UserName (IN) |
username_len | Length of username |
password | 0-to-256-unicode-char Password (IN; UTF-8) |
password_len | Length of password |
response | 24-octet Response (OUT) |
int generate_nt_response_pwhash | ( | const u8 * | auth_challenge, |
const u8 * | peer_challenge, | ||
const u8 * | username, | ||
size_t | username_len, | ||
const u8 * | password_hash, | ||
u8 * | response | ||
) |
GenerateNTResponse() - RFC 2759, Sect. 8.1.
auth_challenge | 16-octet AuthenticatorChallenge (IN) |
peer_challenge | 16-octet PeerChallenge (IN) |
username | 0-to-256-char UserName (IN) |
username_len | Length of username |
password_hash | 16-octet PasswordHash (IN) |
response | 24-octet Response (OUT) |
int get_asymetric_start_key | ( | const u8 * | master_key, |
u8 * | session_key, | ||
size_t | session_key_len, | ||
int | is_send, | ||
int | is_server | ||
) |
GetAsymetricStartKey() - RFC 3079, Sect. 3.4.
master_key | 16-octet MasterKey (IN) |
session_key | 8-to-16 octet SessionKey (OUT) |
session_key_len | SessionKeyLength (Length of session_key) (IN) |
is_send | IsSend (IN, BOOLEAN) |
is_server | IsServer (IN, BOOLEAN) |
int get_master_key | ( | const u8 * | password_hash_hash, |
const u8 * | nt_response, | ||
u8 * | master_key | ||
) |
GetMasterKey() - RFC 3079, Sect. 3.4.
password_hash_hash | 16-octet PasswordHashHash (IN) |
nt_response | 24-octet NTResponse (IN) |
master_key | 16-octet MasterKey (OUT) |
int hash_nt_password_hash | ( | const u8 * | password_hash, |
u8 * | password_hash_hash | ||
) |
HashNtPasswordHash() - RFC 2759, Sect. 8.4.
password_hash | 16-octet PasswordHash (IN) |
password_hash_hash | 16-octet PasswordHashHash (OUT) |
int new_password_encrypted_with_old_nt_password_hash | ( | const u8 * | new_password, |
size_t | new_password_len, | ||
const u8 * | old_password, | ||
size_t | old_password_len, | ||
u8 * | encrypted_pw_block | ||
) |
NewPasswordEncryptedWithOldNtPasswordHash() - RFC 2759, Sect. 8.9.
new_password | 0-to-256-unicode-char NewPassword (IN; UTF-8) |
new_password_len | Length of new_password |
old_password | 0-to-256-unicode-char OldPassword (IN; UTF-8) |
old_password_len | Length of old_password |
encrypted_pw_block | 516-octet EncryptedPwBlock (OUT) |
int nt_challenge_response | ( | const u8 * | challenge, |
const u8 * | password, | ||
size_t | password_len, | ||
u8 * | response | ||
) |
NtChallengeResponse() - RFC 2433, Sect. A.5.
challenge | 8-octet Challenge (IN) |
password | 0-to-256-unicode-char Password (IN; UTF-8) |
password_len | Length of password |
response | 24-octet Response (OUT) |
int nt_password_hash | ( | const u8 * | password, |
size_t | password_len, | ||
u8 * | password_hash | ||
) |
NtPasswordHash() - RFC 2759, Sect. 8.3.
password | 0-to-256-unicode-char Password (IN; UTF-8) |
password_len | Length of password |
password_hash | 16-octet PasswordHash (OUT) |
void nt_password_hash_encrypted_with_block | ( | const u8 * | password_hash, |
const u8 * | block, | ||
u8 * | cypher | ||
) |
NtPasswordHashEncryptedWithBlock() - RFC 2759, Sect 8.13.
password_hash | 16-octer PasswordHash (IN) |
block | 16-octet Block (IN) |
cypher | 16-octer Cypher (OUT) |
int old_nt_password_hash_encrypted_with_new_nt_password_hash | ( | const u8 * | new_password, |
size_t | new_password_len, | ||
const u8 * | old_password, | ||
size_t | old_password_len, | ||
u8 * | encrypted_password_hash | ||
) |
OldNtPasswordHashEncryptedWithNewNtPasswordHash() - RFC 2759, Sect. 8.12.
new_password | 0-to-256-unicode-char NewPassword (IN; UTF-8) |
new_password_len | Length of new_password |
old_password | 0-to-256-unicode-char OldPassword (IN; UTF-8) |
old_password_len | Length of old_password |
encrypted_password_hash | 16-octet EncryptedPasswordHash (OUT) |