# class KPasswordDialog | A password input dialog. More...
Definition | `#include <kpassdlg.h>`
Inherits | KDialogBase [public ]
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

#### Public Types

- enum Types { Password, NewPassword }

#### Public Methods

- KPasswordDialog (int type, QString prompt, bool enableKeep=false, int extraBttn=0)
- virtual ~KPasswordDialog ()
- void setPrompt (QString prompt)
- void addLine (QString key, QString value)
- const char * password () const
- bool keep () const

#### Public Static Methods

- static int getPassword (QCString &password, QString prompt, int *keep=0L)
- static int getNewPassword (QCString &password, QString prompt)
- static void disableCoreDumps ()

#### Protected Methods

- virtual bool checkPassword (const char *)

#### Protected Slots

- void slotOk ()
- void slotCancel ()
- void slotKeep (bool)

## Detailed Description

This dialog asks the user to enter a password. The functions you're probably interested in are the static methods, getPassword() and getNewPassword().

### Usage example

     QCString password;
     int result = KPasswordDialog::getPassword(password, i18n("Password"));
     if (result == KPasswordDialog::Accepted)
         use(password);

### Security notes

Keeping passwords in memory can be a potential security hole. You should handle this situation with care.

- You may want to use disableCoreDump() to disable core dumps. Core dumps are dangerous because they are an image of the process memory, and thus include any passwords that were in memory.

- You should delete passwords as soon as they are not needed anymore. The functions getPassword() and getNewPassword() return the password as a QCString. I believe this is safer than a QString. A QString stores its characters internally as 16-bit wide values, so conversions are needed, both for creating the QString and by using it. The temporary memory used for these conversion is probably not erased. This could lead to stray passwords in memory, even if you think you erased all of them.

KPasswordDialog (int type, QString prompt, bool enableKeep=false, int extraBttn=0) | ### KPasswordDialog

~KPasswordDialog () | ### ~KPasswordDialog

[virtual]

void setPrompt (QString prompt) | ### setPrompt

void addLine (QString key, QString value) | ### addLine

const char * password () | ### password

[const]

Returns the password entered. The memory is freed in the destructor, so you should make a copy.

bool keep () | ### keep

[const]

int getPassword (QCString &password, QString prompt, int *keep=0L) | ### getPassword

[static]

Pops up the dialog, asks the user for a password, and returns it.

Parameters:

password | The password is returned in this reference parameter.
prompt | A prompt for the password. This can be a few lines of information. The text is word broken to fit nicely in the dialog.
keep | Enable/disable a checkbox controlling password keeping. If you pass a null pointer, or a pointer to the value 0, the checkbox is not shown. If you pass a pointer to a nonzero value, the checkbox is shown and the result is stored in *keep.

Returns: Result code: Accepted or Rejected.

int getNewPassword (QCString &password, QString prompt) | ### getNewPassword

[static]

Pops up the dialog, asks the user for a password and returns it. The user has to enter the password twice to make sure it was entered correctly.

Parameters:

password | The password is returned in this reference parameter.
prompt | A prompt for the password. This can be a few lines of information. The text is word broken to fit nicely in the dialog.

Returns: Result code: Accepted or Rejected.

void disableCoreDumps () | ### disableCoreDumps

[static]

enum Types { Password, NewPassword } | ### Types

void slotOk () | ### slotOk

[protected slots slot]

Reimplemented from KDialogBase.

void slotCancel () | ### slotCancel

[protected slots slot]

Reimplemented from KDialogBase.

void slotKeep (bool) | ### slotKeep

[protected slots slot]

bool checkPassword (const char *) | ### checkPassword

[protected virtual]

Virtual function that can be overridden to provide password checking in derived classes. It should return `true` if the password is valid, `false` otherwise.

- Author: Geert Jansen <jansen@kde.org>
- Generated: root@i386.ports.openbsd.org on Wed Apr 25 13:58:24 2001, using kdoc 2.0a53.