KIO
#include <kntlm.h>
Classes | |
struct | Auth |
struct | Blob |
struct | Challenge |
struct | Negotiate |
struct | SecBuf |
Public Types | |
enum | AuthFlag { Force_V1 = 0x1, Force_V2 = 0x2, Add_LM = 0x4 } |
enum | Flags { Negotiate_Unicode = 0x00000001, Negotiate_OEM = 0x00000002, Request_Target = 0x00000004, Negotiate_Sign = 0x00000010, Negotiate_Seal = 0x00000020, Negotiate_Datagram_Style = 0x00000040, Negotiate_LM_Key = 0x00000080, Negotiate_Netware = 0x00000100, Negotiate_NTLM = 0x00000200, Negotiate_Domain_Supplied = 0x00001000, Negotiate_WS_Supplied = 0x00002000, Negotiate_Local_Call = 0x00004000, Negotiate_Always_Sign = 0x00008000, Target_Type_Domain = 0x00010000, Target_Type_Server = 0x00020000, Target_Type_Share = 0x00040000, Negotiate_NTLM2_Key = 0x00080000, Request_Init_Response = 0x00100000, Request_Accept_Response = 0x00200000, Request_NonNT_Key = 0x00400000, Negotiate_Target_Info = 0x00800000, Negotiate_128 = 0x20000000, Negotiate_Key_Exchange = 0x40000000, Negotiate_56 = 0x80000000 } |
Static Public Member Functions | |
static bool | getAuth (QByteArray &auth, const QByteArray &challenge, const QString &user, const QString &password, const QString &domain=QString(), const QString &workstation=QString(), AuthFlags authflags=Add_LM) |
static QByteArray | getLMResponse (const QString &password, const unsigned char *challenge) |
static QByteArray | getLMv2Response (const QString &target, const QString &user, const QString &password, const unsigned char *challenge) |
static bool | getNegotiate (QByteArray &negotiate, const QString &domain=QString(), const QString &workstation=QString(), quint32 flags=Negotiate_Unicode|Request_Target|Negotiate_NTLM) |
static QByteArray | getNTLMResponse (const QString &password, const unsigned char *challenge) |
static QByteArray | getNTLMv2Response (const QString &target, const QString &user, const QString &password, const QByteArray &targetInformation, const unsigned char *challenge) |
static QByteArray | lmHash (const QString &password) |
static QByteArray | lmResponse (const QByteArray &hash, const unsigned char *challenge) |
static QByteArray | lmv2Response (const QByteArray &hash, const QByteArray &clientData, const unsigned char *challenge) |
static QByteArray | ntlmHash (const QString &password) |
static QByteArray | ntlmv2Hash (const QString &target, const QString &user, const QString &password) |
Detailed Description
KNTLM class implements the NTLM authentication protocol.
The KNTLM class is useful for creating the authentication structures which can be used for various servers which implements NTLM type authentication. A comprehensive description of the NTLM authentication protocol can be found at http://davenport.sourceforge.net/ntlm.html The class also contains methods to create the LanManager and NT (MD4) hashes of a password. This class doesn't maintain any state information, so all methods are static.
Member Enumeration Documentation
enum KNTLM::AuthFlag |
enum KNTLM::Flags |
Member Function Documentation
|
static |
Creates the type 3 message which should be sent to the server after the challenge (type 2) received.
- Parameters
-
auth - a buffer where the Type 3 message will returned. challenge - the Type 2 message returned by the server. user - user's name. password - user's password. domain - the target domain. If left empty, it will be extracted from the challenge. workstation - the user's workstation. authflags - AuthFlags flags that changes the response generation behavior. Force_V1 or Force_V2 forces (NT)LMv1 or (NT)LMv2 responses generation, otherwise it's autodetected from the challenge. Add_LM adds LMv1 or LMv2 responses additional to the NTLM response.
- Returns
- true if auth filled with the Type 3 message, false if an error occurred (challenge data invalid, NTLMv2 authentication forced, but the challenge data says no NTLMv2 supported, or no NTLM supported at all, and Add_LM not specified).
|
static |
|
static |
|
static |
Creates the initial message (type 1) which should be sent to the server.
- Parameters
-
negotiate - a buffer where the Type 1 message will returned. domain - the domain name which should be send with the message. workstation - the workstation name which should be send with the message. flags - various flags, in most cases the defaults will good.
- Returns
- true if creating the structure succeeds, false otherwise.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
The documentation for this class was generated from the following files:
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:24:54 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.