Help Center - KeePass

KeePass Password Safe

KeePass is Copyright © 2003-2008 Dominik Reichl. The program is OSI Certified Open Source Software. OSI Certified is a certification mark of the Open Source Initiative. For more information see the License page.

Introduction

Today you need to remember many passwords. You need a password for the Windows network logon, your e-mail account, your homepage's ftp password, online passwords (like website member account), etc. etc. etc. The list is endless. Also, you should use different passwords for each account. Because if you use only one password everywhere and someone gets this password you have a problem... A serious problem. He would have access to your e-mail account, homepage, etc. Unimaginable.

But who can remember all those passwords? Nobody, but KeePass can. KeePass is a free, open-source, light-weight and easy-to-use password manager for Windows.

The program stores your passwords in a highly encrypted database. This database consists of only one file, so it can be easily transferred from one computer to another.

KeePass supports password groups, you can sort your passwords (for example into Windows, Internet, My Homepage, etc.). You can drag&drop passwords into other windows. The powerful auto-type feature will type user names and passwords for you into other windows. The program can export the database to various formats. It can also import data from various other formats (more than 20 different formats of other password managers, a generic CSV importer, ...).

Of course, you can also print the password list or current view. Using the context menu of the password list you can quickly copy password or user name to the Windows clipboard. Searching in password database is possible.

The program ships with a strong random password generator (you can define the possible output characters, length, generation rules, etc.).

The program features a plugin architecture. Other people can write plugins for KeePass, extending its functionality: support for even more data import/export formats, backup features, network features, etc. See the plugins page on the KeePass homepage for downloadable plugins and an introduction on how to write your own plugins.

And the best: it's free and you have full access to its source code!

KeePass is a Windows application. It has been developed using Microsoft Visual C++ with MFC classes. No .NET framework is required, nor any other special DLLs. It should run on all Windows operating systems.

KeePass is distributed under the GPL license. See the file 'License.txt' in the downloadable KeePass package for details.

This documentation applies to KeePass 1.x.


First Steps Tutorial - KeePass

Help

First Steps Tutorial

A short tutorial showing you the basic usage of KeePass.

This short tutorial will show you how to actually use KeePass. It describes only the basic usage, advanced features are covered on separate pages.

Creating a new database

The very first step is creating a new password database. KeePass will store all your passwords in such a database. To create one, click 'File - New...' in the main menu or click the leftmost toolbar button. A window will appear, which prompts you for a master password and/or key-disk. The database will be encrypted with the password you enter here. The password you enter here will be the only password you'll ever have to remember from on now. It should be long and built up of mixed characters. Keep in mind that when someone gets your database file and guesses the password, he could access all passwords you stored in the database.

For this tutorial, we'll just use a simple password. Click into the password edit field and enter a password of your choice. The password edit control isn't limited in length, so feel free to even enter a whole sentence (just keep in mind that you'll need to remember it). It is recommended that you use the Repeat Password field below and type your password again, in order to verify that you didn't accidently type in a wrong password.

After clicking [OK], a second dialog appears. In this dialog you can configure some generic database properties. For now, just leave everything as it is and click [OK].

Now you see the main window. On the left, you see the password groups. On the right, you see the actual password entries. The password entries are grouped together into the password groups you see on the left. So, depending on which group on the left you selected, it'll show you the entries in this group in the right view. KeePass has created a few default groups for you, but you're totally free to delete them and create your own ones.

Adding an entry

Time to store your very first password in the KeePass database! Right-click into the right password entry view and choose 'Add Entry...'. A window will pop up. In this window you can now edit your entry: enter some title for it, an username, an URL, the actual password, etc. If you don't need some of the fields, just leave them empty. When you're done, click [OK].

You'll see your new entry in the password list on the right now.

Using entries

You got the new entry in the password list now. What can you actually do with it now? Right-click onto the entry.

You have several options now. You can for example copy the username of the entry to the Windows clipboard. When you've copied it, you can post it into any other program of your choice. The same works for copying passwords.

Alternatively, you can drag&drop fields into other windows. To see an example of how this works, see this page: Drag&Dropping Fields.

KeePass can open the URL you specified. To do this, just click 'URL(s) - Open URL(s)...' in the context menu. KeePass will start the default browser and open the specified URL.

Saving the database

It's time to save our database. Click onto the 'save' toolbar button (looks like a disk; 3rd toolbar button). You now have to specify a location where you want the database file to be stored.

More

That's it! You've made the first steps in using KeePass! You can now have a look at the more advanced features of KeePass.

Passwords and Key Files: In the tutorial above we've encrypted the database using a password. But KeePass also supports key-disks, i.e. you can lock your database using a file (which you can carry around on your USB stick for example). It even supports combining those two methods for maximum security!

TAN Entries: TAN entries are one-time passwords. Many banks are using TANs for better security. KeePass supports TAN entries by making them expire automatically when using them.

Auto-Type: The auto-typing functionality is a very powerful feature. In the tutorial above you've copied the username and password of an entry to the clipboard. Wouldn't it be nice if KeePass would just type those strings for you into other windows? Wouldn't it be nice if you could define whole sequences of keypresses that KeePass should type for you? That's exactly what the Auto-Typing feature does: it sends simulated keypresses for you to other windows!

URL Field Capabilities: The URL field supports URLs of course. In the tutorial, you've learned that you can enter simple URLs into this field and KeePass will open the browser window for you. But the URL field can do more! It actually supports many different protocols (not just http), is able to use PuTTY for ssh:// URLs and supports executing Windows command-lines through the cmd:// virtual protocol. The field also features a powerful substitution engine, replacing special sequences of characters by other fields (username, password, ...) of this entry.

Command Line Capabilities: You can open .kdb files by passing the filename to the KeePass executable file. But did you know that you can also send the password for the database and key-file location over the command-line? You can also use the command-line to pre-select a key-drive for you.

Plugins: KeePass features a powerful plugin architecture. If you miss some functionality, have a look at the plugins page to see if there are other people that have already written plugins for this. Many plugins exist to import/export data from/to other file formats.


Acknowledgements - KeePass

Help

Acknowledgements / Credits

Thanks to various people for contributions and/or work.

At this place I want to thank a lot of people very much for their help, source code, suggestions and other contributions (in no particular order).

  • Source Code Acknowledgements
  • Translation Acknowledgements
  • Plugin Acknowledgements
  • Tools Acknowledgements
  • Hosting/Distribution Acknowledgements
  • Suggestions and Forum Support Acknowledgements
  • Special Acknowledgements
  • Icons Acknowledgements

Info Source Code Acknowledgements

KeePass uses a lot of classes and libraries written by different people and given away for free. Here I want to thank them for writing these classes and libraries.

Author | Class / Library
Szymon Stefanek | C++ implementation of the AES/Rijndael encryption algorithm.
Brian Gladman | C implementation of the SHA-2 (256/384/512) hashing algorithms.
Brent Corkum | MFC class for XP-style menu (BCMenu).
Davide Calabro | MFC class for buttons with icons (CButtonST).
Peter Mares | MFC class for window side banners (CKCSideBannerWnd).
Chris Maunder | MFC class for system tray icons (CSystemTray).
Hans Dietrich | MFC class for hyperlinks in dialogs (XHyperLink).
PJ Naughter | MFC class for checking for single instance (CSingleInstance).
Lallous | Class for sending simulated keystrokes to other applications (CSendKeys).
Jarrod Nelson | Class for computing SHA-256 hashes (NetSHA.SHA256).
Mike Krueger, John Reilly | Library to handle GZip files (SharpZipLib).

Info Translation Acknowledgements

Thanks a lot to all people who created translations for KeePass (see translations page).

Info Plugin Acknowledgements

Very many thanks to all people who wrote plugins for KeePass (see plugins page). Without you, KeePass would be a lot less powerful and useful!

Info Tools Acknowledgements

Thanks to the UPX Team for the writing the Ultimate Packer for eXecutables (UPX). This tool is used to compress the final KeePass executables, in order to create a smaller distribution and making KeePass start up faster.

Thanks to Jordan Russell for creating Inno Setup. This tool is used to create the nice KeePass installation program.

Info Hosting/Distribution Acknowledgements

SourceForge | Thanks to SourceForge.net for hosting the KeePass downloads / translations / plugins and for providing the project support platform (forums, feature requests / bug trackers, ...) for free.
domain)FACTORY | Thanks to domain)FACTORY for hosting the KeePass website.
Datensysteme Lenk | Thanks to datensysteme-lenk for hosting the German KeePass support forum.

Info Suggestions and Forum Support Acknowledgements

Thanks to all the people answering questions of others in the KeePass forums! A product is only as good as its support is, and I alone could never provide such an excellent individual help platform.

Two persons should be mentioned here, because of an extraordinary amount of suggestions (features, bug reports, ...) and helping others in the forums: Paul Tannard and Michael Scheer.

Info Special Acknowledgements

Thanks to Daniel Turini for suggesting "KeePass" as the name of the project.

An especially big thanks to Bill Rubin. He not only contributed a lot of source code to KeePass, he also had an enormous amount of feature and improvement suggestions, helped people in the KeePass forums, and wrote a KeePass plugin for backing up databases. He's also the reason why many of the sections in the KeePass Help are very precise, helpful, clear and easy to understand. In our countless hours long IM chats, we not only discussed much about the design of KeePass, Bill also told me a lot about C++ and other stuff. Thanks!

Info Icons Acknowledgements

Thanks a lot to Christopher Bolin for creating the main KeePass icon (see top left on this page) and its variations.

Thanks to David Vignoni for creating the nice 'Nuvola' icon theme. Most of the icons used in KeePass and on its website are icons of this theme. You can find the original images on the homepage of the author. Usage of the icons is allowed under the terms of the LGPL license (which you can find here: GNU Lesser General Public License), plus an addition. The original distribution notice can be found here: 'Nuvola' Icon Theme License.


License - KeePass

Help

KeePass License

License terms of KeePass 1.x.

KeePass is copyright © 2003-2008 Dominik Reichl.

The program is distributed under the terms of the GNU General Public License version 2 or later. The complete source code can be obtained from the Official KeePass Website.

GNU General Public License (copy from http://www.gnu.org/licenses/gpl.html):

GNU GENERAL PUBLIC LICENSE

Version 2, June 1991

Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA

Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble

The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too.

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.

To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.

For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.

We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.

Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.

Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.

The precise terms and conditions for copying, distribution and modification follow.

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.

1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.

You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.

2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.

In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:

a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.

4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.

6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.

7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.

This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.

8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.

9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.

10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.

NO WARRANTY

11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

END OF TERMS AND CONDITIONS

How to Apply These Terms to Your New Programs

If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.

To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.

one line to give the program's name and an idea of what it does.
Copyright (C) yyyy  name of author

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this when it starts in an interactive mode:

Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
type `show w'.  This is free software, and you are welcome
to redistribute it under certain conditions; type `show c'
for details.

The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program.

You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names:

Yoyodyne, Inc., hereby disclaims all copyright
interest in the program `Gnomovision'
(which makes passes at compilers) written
by James Hacker.

signature of Ty Coon, 1 April 1989
Ty Coon, President of Vice

This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License.

End GNU General Public License

Icon Theme

The icon theme used in KeePass has been created and is copyrighted by David Vignoni. For more information, see the Acknowledgements page.


Setup - KeePass

System

Installation / Portability

KeePass installation, uninstallation, portability and updates.

Setup Installation / Uninstallation / Portability

When downloading KeePass, you have the choice between 3 different packages:

  • KeePass-X.XXx.zip: The binary ZIP package (portable version).
  • KeePass-X.XXx-Setup.exe: A Windows installer package.
  • KeePass-X.XXx-Src.zip: The full source code.

KeePass does not need to be installed. Just download the binary ZIP package, unpack it with your favorite packer and KeePass is ready to be used. Copy it to a location of your choice (for example onto your USB stick), no additional configuration or installation is needed.

The KeePass development team also provides you an installer, which automates creating links in the start menu etc. Apart from those integration options, there's nothing different from the binary ZIP package.

In contrast to many other applications, KeePass does not use any functions that require the latest Windows operating system, such like theming on XP or like a .NET application that requires the .NET framework. It runs perfectly on older systems without any feature limitations.

The source code package contains everything you need to compile KeePass. It includes all C++ source code and header files, resource files, source files of the documentation, all the latest language/translation files, sources for building the installer, etc.

KeePass doesn't store anything on your system. The program doesn't create any new registry keys and it doesn't create any initialization files (INI) in your Windows directory. Deleting the KeePass directory (in case you downloaded the binary zip package) or using the uninstaller (in case you downloaded the installer package) leaves no trace of KeePass on your system.

When using the portable version (the files in the binary ZIP package), make sure that KeePass has write access to its application directory. Otherwise, if it doesn't have, it'll attempt to store the configuration options (nothing security-relevant though) into the application configuration directory of the currently logged on user. For more about that, see this page: Configuration.

Setup Updating KeePass

When a new KeePass version has been released, you can update your existing KeePass installation without losing any configuration settings.

If you were using the binary ZIP package, download the latest one, unpack it and copy all new files over the old ones. Your configuration settings won't be lost (they are stored in the KeePass.ini file, which won't be overwritten because binary ZIPs don't include a KeePass.ini file).

If you were using the Windows installer package, first uninstall the old version. Afterwards, download the latest Windows installer package of KeePass and install it. Your configuration options will not be lost (see Configuration for details).

Translations should also be updated when you install a new KeePass version. You can find the latest translation files here: KeePass Translations.


Translations - KeePass

Language

Installing Translations

How to install translations of KeePass 1.x.
  • Installing User Interface Translations
  • Additional Localized Content

Text Installing User Interface Translations

To install a user interface translation, follow these steps:

  1. Download the translation file from the Translations page.
  2. Unpack the ZIP archive you just downloaded to some directory.
  3. Copy the <Language>.lng file into the KeePass application directory (where KeePass.exe is located).
  4. Start KeePass. In the main menu, click 'View' - 'Change Language...'. In the dialog that opens, select your language. In the restarting prompt, click [Yes].

That's it! The user interface is now translated completely into your language!

Text Additional Localized Content

For some languages (not for all) there is additional localized content available, like translated help files, tutorials, etc. All this content is available from the same page where the user interface translations are downloadable: Translations page.

If you'd like to create some translated content yourself, please first ask the KeePass team if the thing you're planning to create isn't in work already by someone else. If not, you'll make a lot of people very happy by creating translated content!


Plugins - KeePass

Plugin

KeePass Plugins

Plugins provide additional functionality.

Plugin Introduction

KeePass features a plugin framework. Plugins can provide additional functionality, like support of more file formats for import/export, network functionalities, backup features, etc.

Plugin Online Resources

You can download the latest KeePass plugins (and their source code) from http://keepass.info/plugins.html.

Plugin Plugin Installation

To install a plugin, follow these steps:

  1. Download the plugin from the page above and unpack the .ZIP file to a directory of your choice.
  2. Copy the plugin .DLL file into the KeePass directory (where KeePass.exe is).
  3. Start KeePass and enable the plugin in the plugins dialog ('Tools - Plugins...').
  4. Restart KeePass in order to load the new plugin.

To uninstall a plugin, just delete its .DLL file. You don't need to disable it in the plugins dialog first.

Plugin Security

Some people had doubts about the security of plugins: can't malicious spyware plugins 'inject' themselves into KeePass? Of course, they theoretically can, but if plugins can register themselves (i.e. have write access to the KeePass directory), they could also just replace the whole KeePass.exe. It's rather a problem of the file system security, not the plugin system.

If you worry about this, you can do the following:

  1. Install KeePass as administrator.
  2. Write-protect the KeePass directory. Nobody must have write access.
  3. Log on as normal user (with no administrator privileges).

This will solve the problem above. Since the KeePass directory is write-protected, no other program can copy files into it. KeePass requires the plugins to be in the application directory, paths with characters like '.' and '\' are rejected. Therefore, plugins cannot inject themselves anymore.


Compatibility - KeePass

Help

Compatibility

Compatibility between different KeePass versions, side-by-side usage.

This page lists the compatibility of KeePass 1.10 with other KeePass versions.

Note that the latest version can load all database files created by any older KeePass version without any data loss.

If you were looking for instructions how to update to the latest version, please read the updating instructions.

Database File Compatibility (KDB Files):

Compatibility Type | Versions
Full SxS | 1.09, 1.08, 1.07, 1.06, 1.05, 1.04, 1.03, 1.02
DB SxS | 1.01, 1.00, 0.99c, 0.99b, 0.99a, 0.98b, 0.98a
Lossy SxS | 0.97c, 0.97b, 0.97a, 0.96b, 0.96a, 0.95b, 0.95a
No SxS | 0.94a, 0.93b, 0.93a, 0.92a, 0.91, 0.90a, 0.89, 0.88a, 0.87, 0.86, 0.85, 0.84, 0.83b, 0.83, 0.82, 0.81, 0.80
Full Backward | 1.09, 1.08, 1.07, 1.06, 1.05, 1.04, 1.03, 1.02, 1.01, 1.00, 0.99c, 0.99b, 0.99a, 0.98b, 0.98a, 0.97c, 0.97b, 0.97a, 0.96b, 0.96a, 0.95b, 0.95a, 0.94a, 0.93b, 0.93a, 0.92a, 0.91, 0.90a, 0.89, 0.88a, 0.87, 0.86, 0.85, 0.84, 0.83b, 0.83, 0.82, 0.81, 0.80

Full SxS: This compatibility type means that you can use the latest version with the listed ones side-by-side (SxS) without any data loss. These versions use exactly the same database format and are 100% compatible.

DB SxS: This type means that you can run these KeePass versions side-by-side, the database files are compatible. But there are some minor, visual incompatiblities. For example, from KeePass 1.01 to 1.02, the entry icons have changed. While this doesn't affect the database file format, creating a database with 1.01 will lead to different icons displayed in 1.02.

Lossy SxS: This type means that is possible to use the listed versions with the latest one side-by-side (database format is compatible), but some data of the newer version could be lost or displayed incorrectly in the old versions. For example, older versions don't know meta entries yet and display them as normal entries. Though no data will be lost, users may be confused when KeePass displays such meta entries.
The listed versions can open databases of the latest one, but it is generally not recommended to use them side-by-side.

No SxS: This means that the database format of the latest version is incompatible with the listed KeePass versions. The listed ones are not able to load the database files created by the latest version. Note that the latest version can load all database versions (this is called 'full backward compatibility').

Full Backward: The latest KeePass version can load all database files created by any older version. KeePass has been designed to be 100% backward compatible, i.e. the latest KeePass version will always be able to load a database created by an older version. No data is lost.


Security - KeePass

Locked

Security

Detailed information about the security of KeePass.

  • Database Encryption
  • Hashing and Key Derivation
  • Random Number Generation
  • Protection against Dictionary Attacks
  • Process Memory Protection
  • Locking the Workspace
  • Plugins
  • Self-Tests
  • References

Key Database Encryption

KeePass database files are encrypted. KeePass encrypts the whole database, i.e. not only your passwords. Your user names, notes, even the entry times and UUIDs, etc. are encrypted, too.

The databases are encrypted using one of the following block ciphers:

Cipher | Block Size | Key Size
Advanced Encryption Standard (AES / Rijndael) | 128 bits | 256 bits
Twofish | 128 bits | 256 bits

These algorithms are well-known, analyzed thoroughly and generally considered to be very secure by the cryptographic community (see [1] for comments by the NIST on AES for example).

The block ciphers are used in the CBC (cipher-block chaining) block cipher mode. In CBC mode, plaintext patterns are concealed.

For both algorithms, a 128-bit initialization vector (IV) is generated randomly each time you save the database. This allows multiple databases to be saved using the same key without observable patterns being revealed.

Key Hashing and Key Derivation

In order to generate the 256-bit key for the block ciphers, the Secure Hash Algorithm SHA-256 is used. This algorithm compresses the user key provided by the user (consisting of password and/or key file) to a fixed-size key of 256 bits. This transformation is one-way, i.e. it is computationally infeasible to invert the hash or find a second message that compresses to the same hash.

Please note that the recently discovered attack against SHA-1 [2] doesn't affect the security of SHA-256. SHA-256 is still considered as being secure [3].

Key Derivation:

If only a password is used (i.e. no key file), the password plus a 128-bit random salt are hashed using SHA-256 to form the final key (but note there is some preprocessing: Protection against Dictionary Attacks). This random salt prevents attacks that are based on pre-computed hashes.

When using both password and key file, the final key is derived as follows: SHA-256(SHA-256(password), key file contents), i.e. the hash of the master password is concatenated with the key file bytes and the resulting byte string is hashed with SHA-256 again. If the key file doesn't contain exactly 32 bytes (256 bits), they are hashed with SHA-256, too, to form a 256-bit key. The formula above then changes to: SHA-256(SHA-256(password), SHA-256(key file contents)).

Binary Random Number Generation

We need to generate several random bytes (for the IV, the master key salt, etc.). For this, several pseudo-random sources are used: current tick count, performance counter, system date/time, mouse cursor position, memory status (free virtual memory, etc.), active window, clipboard owner, various process and thread IDs, various window focus handles (active window, desktop, ...), window message stack, process heap status, process startup information and several system information structures. Additionally, KeePass uses random bytes provided by the system's default CSP RNG.

This pseudo-random data is collected in a random pool. To generate 16 random bytes, the pool is hashed (SHA-256) with a counter to form the final 16 random bytes. The counter is increased after 16 generated bytes. This way, we can efficiently produce as many secure random bytes as we need.

Key Protection against Dictionary Attacks

KeePass supports protection against guessing and dictionary attacks.

You can't really prevent dictionary and guessing attacks: nothing prevents an attacker to just try all possible keys and look if the database decrypts. But what we can do (and KeePass does) is to make it harder: by adding a constant time factor to the key initialization, we can make them as hard as we want.

To generate the final 256-bit key that is used for the block cipher, KeePass first hashes the user's password using SHA-256, encrypts the result N times using the Advanced Encryption Standard (AES) algorithm (called key transformation rounds from on now), and then hashes it again using SHA-256. For AES, a random 256-bit key is used, which is stored in the database file. As the AES transformations aren't pre-computable (key is random), an attacker has to perform all the encryptions, too, otherwise he cannot try and see if the current key is correct.

An attacker now needs much more time to try a key. If he can only try a few hundred keys per second, a dictionary attack is not practical any more.

By default, KeePass sets N to 6000 encryption rounds (full encryptions are meant; N has nothing to do with the internal encryption rounds of AES). This has been done in order to provide compatibility with the PocketPC version (PocketPC processors are slower, therefore the key computation takes longer).

If you are using KeePass on PC only, it is highly recommended to increase the number of key transformation rounds. You can change the number in the database options dialog. Right of the field for the rounds, you'll find a button. When clicking this button, KeePass computes the rounds number that leads to a 1-second delay. Waiting 1 second at database opening isn't a problem, but for an attacker of course it is. But, the number can be freely set to a number of your choice. The button only should give you a rough idea how many rounds can be computed in 1 second on your computer.

This protection feature is only useful when using master passwords; key files are random anyway, there's no need to transform the key file contents (guessing the key file contents is equally hard to a brute-force attack on the final key).

Application Protection In-Memory Passwords Protection

While KeePass is running, your passwords are stored encrypted in process memory. For this, the ARC4 encryption algorithm is used, using a random, 12 bytes long key.

This means that even if you would dump the whole KeePass process memory to disk, you couldn't find the passwords (at least not in plain text). Note that this only applies to the password field, not to the user names, etc. because of performance reasons.

When you are copying a password to the clipboard for example, KeePass first decrypts the password field, copies it to the clipboard and immediately re-encrypts it using the random key.

Additionally, KeePass erases all security-critical memory when it's not needed any more, i.e. it overwrites these memory areas before releasing them (this applies to all security-critical memory, not only the passwords field).

Key Locking the Workspace

Locking the workspace closes the database file, and remembers the last view settings (i.e. which group and entries you selected, list position, etc.).

This provides maximum security: unlocking the workspace is as hard as opening the database file the normal way. Also, it prevents data-loss (your computer can crash while KeePass is locked, without doing any damage to the database).

Plugins Plugin Security

A separate page exist about the security of plugins: Plugin Security.

Black Box Self-Tests

Each time you start KeePass, the program will perform a quick self-test to see whether the block ciphers and the hash are compiled correctly and pass their test-vectors. If one of the algorithms doesn't pass its test vectors, KeePass will show a security exception message box at startup.

References References and Further Reading

[1] National Institute of Standards and Technology: Report on the Development of the Advanced Encryption Standard (AES) (PDF).

[2] Bruce Schneier's blog: SHA-1 broken.

[3] Bruce Schneier's blog: Cryptanalysis of SHA-1, with comments about the impact of that discovery and what to do now.


Repairing Databases - KeePass

Help

Repairing Databases

KeePass can repair corrupted databases in some cases.

Several people have reported that they suddenly cannot open their databases any more. That's mostly the result of a database that hasn't been written completely to the disk. For example, when you unplug your USB stick before the file has been written/flushed completely, the database file can be corrupted.

In this case, the repair functionality could help. Try to open your corrupted database in KeePass: main menu 'Tools' - 'Repair KeePass Database File...'. KeePass will try to read as much data as possible out of the corrupted file.

Anyway, if you've lost the master key for the database, the repair functionality cannot help you. Also, if the header of the database (first few bytes) is corrupted, you're out of luck too: the repair functionality won't be able to restore any entries.

The repair functionality should be seen as last hope. Regularly making backups of your databases is much better and preferred. There are no security implications if you regularly make backups of your database. A KeePass plugin automates this, you can find it on the KeePass plugins page.


Error Codes - KeePass

Binary

Error Codes

This document lists all KeePass error codes and their meanings.

Error Code | Name | User? | Description
0x00000000 | Unknown | No | An unknown error occured. KeePass uses this error code internally and the user should never see this error.
0x00000001 | Success | Yes | No error occured. Everything worked perfectly.
0x00000002 | Invalid Parameter | No | A function within KeePass has received an invalid parameter. This should never happen.
0x00000003 | Out of Memory | Yes | The operating system didn't grant KeePass enough memory. The current operation was cancelled. The database maybe is in a broken state and should not be saved.
0x00000004 | Invalid Key | Yes | The user-provided composite key (password / key file) for the database was incorrect or the database is corrupted. Make sure the password and/or key file is correct. If you are absolutely sure that the password / key file is correct, then probably the file is corrupted (maybe you removed the USB stick from the computer without unmounting it). In this case, try the Repair Database functionality of KeePass.
0x00000005 | File Access Error: Read File | Yes | The operating system (Windows) didn't grant KeePass read access to the specified database file. Note that this doesn't mean that the database is corrupted or something like that, KeePass just cannot get read access to the file. Make sure that you can read the file.
0x00000006 | File Access Error: Write File | Yes | The operating system (Windows) didn't grant KeePass write access to the specified database file. Try saving the database to a different location, where the administrators of your network have granted you write access to.
0x00000007 | File Error: Read | Yes | An error occured while reading the database or key file. This can happen if you for example open a big database from USB stick and remove the stick while KeePass is reading the file. Make sure KeePass can access the complete file and don't remove the device before KeePass has read it completely.
0x00000008 | File Error: Write | Yes | An error occured while writing the database or key file. This can happen if you for example save a big database to USB stick and remove the stick while KeePass is writing the file. Make sure there is enough free space left on the target device and don't remove the device before KeePass has written the file completely. Make sure you correctly unmount the device (USB stick).
0x00000009 | Invalid Random Source | No | This is an internal cryptographic error. The random source, that is used to generate random numbers, is invalid. This means that it produces non-random values and therefore the security (secrecy) of your database cannot be guaranteed; therefore the operation was aborted. This error should never occur. If you see this error code, please submit a bug report.
0x0000000A | Invalid File Structure | Yes | The structure of the current database file is invalid. This can either happen if the user-supplied composite key (password, key file) is invalid or if the file is corrupted. If you are sure that the key is correct, try the Repair Database functionality.
0x0000000B | Cryptographic Error | No | An internal cryptographic error occured. One of the cryptographic components cannot be initialized, tested and/or returned an error.
0x0000000C | Invalid File Size | Yes | The file size isn't valid. This means that the file is probably corrupted.
0x0000000D | Invalid File Signature | Yes | The file's signature is invalid. This means that the file is corrupted and/or not a file that KeePass can read.
0x0000000E | Invalid File Header | Yes | The file's header is invalid. The file could be corrupted, could have been created by a newer KeePass version, or could not be a KeePass file at all.
0x0000000F | File Access Error: Read Key | Yes | The operating system (Windows) didn't grant KeePass read access to the specified key file or it doesn't exist. Note that this doesn't mean that the key file is corrupted, KeePass just cannot get read access to the file. Make sure the media that contains the key file is inserted and that KeePass has the right to access it (check file access rights, ensure that no other application is blocking the file, ...). In case you're selecting the key file's drive (i.e. not specifying it manually), have a look for the "pwsafe.key" file. See the composite key documentation for more information about using key files.

User?

Yes: This error is not a bug. KeePass has failed to perform some operation and you can fix this "error" yourself. For example, when you entered an invalid key for your database, failing to open the database isn't a bug.

No: This error is a bug. You should never see this error. Please submit a Bug Report.


Auto-Type - KeePass

Auto-Type Icon

Auto-Type

Powerful feature that sends keypresses to other applications.
  • Basic Auto-Type Information
  • Invoking Auto-Type
    • Context Menu: 'Perform Auto-Type' Command
    • Global Auto-Type Hot Key
  • Specifying Keystroke Sequences and Target Windows
    • Auto-Type Keystroke Sequences
    • Target Window Filters
    • Change Default Auto-Type Sequence
  • Usage Example

Text Basic Auto-Type Information

KeePass features an "Auto-Type" functionality. This feature allows you to define a sequence of keypresses, which KeePass can automatically perform for you. The simulated keypresses can be sent to any other currently open window of your choice (browser windows, login dialogs, ...).

By default, the sent keystroke sequence is {USERNAME}{TAB}{PASSWORD}{ENTER}, i.e. it first types the user name of the selected entry, then presses the Tab key, then types the password of the entry and finally presses the Enter key.

For TAN entries, the default sequence is {PASSWORD}, i.e. it just types the TAN into the target window, without pressing Enter.

You can freely define your own Auto-Type sequence: simply write the sequence into the notes field of the entry, prefixed with "Auto-Type:". Your notes could look something like this:
You can write any notes here.
My e-mail I used to register: test@nowhere.com

Auto-Type: {USERNAME}{TAB}{TAB}Some fixed string{TAB}{PASSWORD}{ENTER}

Here you can continue with your notes if you wish...
As you can see, the only important thing is that the auto-type sequence is prefixed using "Auto-Type:" and is one single line. An auto-type sequence cannot be defined using two or more lines. If you define two auto-type sequences, the first one is used.

Additionally, you can create customized window/sequence associations, which override the default sequence. You can specify different keystroke sequences for different windows for each entry. For example, imagine a webpage, to which you want to login, that has multiple pages where one can login. These pages could all look a bit different (on one you could additionally need to check some checkbox -- like often seen in forums). Here creating customized window/sequence associations solves the problems: you simply specify different auto-type sequences for each windows (identified by their window titles).

Invoking Auto-Type:
There are three different methods to invoke auto-type:

  • Invoke auto-type for an entry by using the context menu command Perform Auto-Type while the entry is selected.
  • Similar to the first one: select the entry and press Ctrl-V (that's the menu shortcut for the context menu command above).
  • The second method is using the system-wide auto-type hot key. KeePass will search all entries in the currently opened database for matching sequences.

All methods are explained in details below.

Text Context Menu: 'Perform Auto-Type' Command

This method is the one that requires the least amount of configuration and is the simpler one, but it has the disadvantage that you need to select the entry in KeePass which you want to auto-type.

The method is simple: right-click on an entry of your currently opened database and click 'Perform Auto-Type' (or alternatively press the Ctrl-V shortcut for this command). The window that previously got the focus (i.e. the one in which you worked before switching to KeePass) will be brought to the foreground and KeePass auto-types into this window.

The sequence which is auto-typed depends on the window's title. If you didn't specify any custom window/sequence associations, the default sequence is sent. If you created associations, KeePass uses the sequence of the first matching association. If none of the associations match, the default sequence is used.

Text Global Auto-Type Hot Key

This is the more powerful method, but it also requires a little bit more work/knowledge, before it can be used.

KeePass registers a system-wide hot key for auto-type. The advantage of this hot key is that you don't need to switch to the KeePass window and select the entry. You simply press the hot key while having the target window open (i.e. the window which will receive the keypresses).

By default, the global hot key is Ctrl-Alt-A (i.e. hold the Control and Alt keys, press 'A' and release all keys). You can change this hot key in the options dialog (main menu - 'Tools' - 'Options', tab 'Setup'): here, click into the textbox below "Global Auto-Type Hot Key Combination" and press the hot key that you wish to use. If the hot key is usable, it will appear in the textbox.

When you press the hot key, KeePass will look at the title of the currently opened window and search the currently opened database for usable entries. If KeePass finds multiple entries that can be used, it displays a selection dialog. In order to decide if an entry is usable for the current window title, at least one of the following conditions must be fulfilled:

  • The title field of the entry is a substring of the currently active window title.
  • The entry has a window/sequence association, of which the window specifier matches the currently active window title.

You probably thought of the second condition already, but the first one at least is new. By using entry titles as filters for window titles, the configuration amount for auto-type is almost zero: you only need to make sure that the entry title is contained in the window title of the window into which you want the entry to be auto-typed. Of course, this is not always possible (for example if a webpage has a very generic title like "Welcome"), in this case you need to use the custom window/sequence associations.

Custom window/sequence associations can be specified using the Notes field of entries.
My e-mail I used to register: test@nowhere.com

Auto-Type: {USERNAME}{TAB}{TAB}Some fixed string{TAB}{PASSWORD}{ENTER}
Auto-Type-Window: PayPal - Welcome*

Here you can continue with your notes if you wish...
If you now have a window open that starts with "PayPal - Welcome" and press the global auto-type hot key combination, KeePass performs the auto-type sequence above.

Some sites, notably Banks, use multi-page login schemes. You can use Auto-Type-Window strings to automate these sites. You can also use Auto-Type-Window strings to standardize your LAN login in one KeePass entry.

As many Auto-Type-Window strings per entry can be defined as you wish.

Also, one sequence can be used for multiple windows. For this, first define a window/sequence pair as normal, then continue by appending '-' and a number, starting with 1. Example:
Auto-Type: {USERNAME}{TAB}{PASSWORD}{ENTER}
Auto-Type-Window: Some Dialog - *
Auto-Type-1: {USERNAME}{ENTER}
Auto-Type-Window-1: * - Editor
Auto-Type-Window-1: * - NotePad
Auto-Type-Window-1: * - WordPad
Auto-Type-2: {PASSWORD}{ENTER}
Auto-Type-Window-2: Some Web Page - *
Here, the Auto-Type-1 sequence will be used for all Auto-Type-Window-1 windows.

Text Auto-Type Keystroke Sequences

What exactly is an auto-type keystroke sequence? This is simply a one-line string, which can have placeholders and special key codes.

Above you've seen already that the default auto-type is {USERNAME}{TAB}{PASSWORD}{ENTER}. Here, {USERNAME} and {PASSWORD} are placeholders: when auto-type is performed, these are replaced by the appropriate field values of the entry. {TAB} and {ENTER} are special key codes: these are replaced by the appropriate keypresses. Special key codes are the only way to specify special keys like Arrow-Down, Shift, Escape, etc.

Of course, keystroke sequences can also contain simple characters to be sent. For example, the following string is perfectly valid as keystroke sequence string:
{USERNAME}{TAB}Some text to be sent!{ENTER}.

Placeholders and special key codes are case-sensitive.

KeePass supports the following placeholders:

Field | Placeholder
Title | {TITLE}
User Name | {USERNAME}
URL | {URL}
Password | {PASSWORD}
Notes | {NOTES}

The following codes for special keys are supported:

Special Key | Code
Tab | {TAB}
Enter | {ENTER} or ~
Arrow Up | {UP}
Arrow Down | {DOWN}
Arrow Left | {LEFT}
Arrow Right | {RIGHT}
Insert | {INSERT} or {INS}
Delete | {DELETE} or {DEL}
Home | {HOME}
End | {END}
Page Up | {PGUP}
Page Down | {PGDN}
Backspace | {BACKSPACE}, {BS} or {BKSP}
Break | {BREAK}
Caps-Lock | {CAPSLOCK}
Escape | {ESC}
Help | {HELP}
Numlock | {NUMLOCK}
Print Screen | {PRTSC}
Scroll Lock | {SCROLLLOCK}
F1 - F16 | {F1} - {F16}
Keypad + | {ADD}
Keypad - | {SUBTRACT}
Keypad * | {MULTIPLY}
Keypad / | {DIVIDE}
Shift | +
Control | ^
Alt | %

Special Key | Code
Space | {SPACE}
+ | {PLUS}
@ | {AT}
% | {PERCENT}
Apps | {APPS}
^ | {CARET}
~ | {TILDE}
{, } | {LEFTBRACE}, {RIGHTBRACE}
(, ) | {LEFTPAREN}, {RIGHTPAREN}
Windows Key: Left, Right | {LWIN} {RWIN}
Windows Key | {WIN} (equ. to LWIN)
Windows Key | @

Additionally, some special commands are supported:

Command Syntax | Action
{APPDIR} | Will be replaced by the current application directory path.
{INTERNETEXPLORER} | Will be replaced by the path of Internet Explorer, if installed.
{FIREFOX} | Will be replaced by the path of Mozilla Firefox, if installed.
{OPERA} | Will be replaced by the path of Opera, if installed.

Command Syntax | Action
{CLEARFIELD} | Clears the contents of the edit control that currently has the focus (only single-line edit controls).
{VKEY X} | Sends the VKEY of value X.
{BEEP X Y} | Beeps with a frequency of X and a duration of Y milliseconds.
{DELAY X} | Delays X milliseconds.
{DELAY=X} | Sets the default delay to X milliseconds for all following keypresses.
{APPACTIVATE WindowTitle} | Activates the window "WindowTitle".

Finally, some examples:

{TITLE}{TAB}{USERNAME}{TAB}{PASSWORD}{ENTER}
Types the entry's title, a tab, the user name, a tab and the password of the currently selected entry.

{TAB}{PASSWORD}{ENTER}
Presses the tab key, enters the entry's password and presses return.

{DELAY=50}{WIN}{UP}{UP}{UP}{ENTER}notepad{ENTER}
Start Notepad.

Toggling Checkboxes:
Sometimes you find checkboxes on websites ("Stay logged in on this computer" for example). You can toggle these checkboxes by sending a space character (' ') when auto-typing. For example:
{USERNAME}{TAB}{PASSWORD}{TAB} {TAB}{ENTER}
If there is a webform with a user name field, password field and a checkbox, this sequence would enter the user name, the password and toggle the checkbox that follows the password control.

Higher ANSI Characters:
The auto-type function supports sending of higher ANSI characters in range 126-255. This means that you can send special characters like ©, @, etc. without any problems: simply write them directly into the keystroke sequence definition.

Text Target Window Filters

When creating a custom window/sequence association, you need to tell KeePass how the matching window titles look like. Here, KeePass supports simple wildcards:

String with Wildcard | Meaning
STRING | Matches all window titles that are named exactly "STRING".
STRING* | Matches all window titles that start with "STRING".
*STRING | Matches all window titles that end with "STRING".
*STRING* | Matches all window titles that have "STRING" somewhere in the window title. This includes the string being directly at the start or at the end of the window title.

Other wildcards aren't supported. The * wildcard must not be in the middle of a string.

For example, this is invalid: "*Windows*Explorer*". This won't match "Windows Explorer", it will only match "Windows*Explorer", i.e. the middle * character is treated as '*' character instead of a wildcard.

By using wildcards, you can make your auto-type associations browser-independent. See the usage examples for more information.

Text Change Default Auto-Type Sequence

The default auto-type sequence (i.e. the one which is used when you don't specify a custom one) is {USERNAME}{TAB}{PASSWORD}{ENTER}. KeePass allows you to change this default sequence. Normally you won't need to change it (use custom window/sequence definitions instead!), but it is quite useful when some other application is interfering KeePass (for example a security software that always asks you for permission before allowing KeePass to auto-type).

To change the default auto-type sequence, open the KeePass.ini configuration file and set the KeeDefaultAutoTypeSequence string (add it, if it doesn't exist yet) to your favorite sequence.

Text Usage Example

Now let's have a look at a real-world example: logging in at PayPal. In this example, will we use the global auto-type hot key to fill out the webpage. Create an entry for PayPal (it should have the title "PayPal").

Let's assume the global auto-type hot key is set to Ctrl-Alt-A (the default). KeePass is running in the background, you have opened your database and the workspace is unlocked.

When you now navigate to the PayPal website and are being prompted for your user name and password, just click into the user name field and press Ctrl-Alt-A. KeePass enters the user name and password for you! Can it be easier?

Why did this work? The window title of your browser window was "PayPal - Welcome - Internet Explorer" or "PayPal - Welcome - Mozilla Firefox", depending on the browser you are using. Because we gave the entry in KeePass the title PayPal, the entry title is contained in the window title, therefore KeePass uses this entry.

Here you already see the huge advantages of auto-type: it not only doesn't require any additional browser software (the browser knows nothing of KeePass -- there are no helper browser plugins required), it is also browser-independent: the one entry that you created within KeePass works for Internet Explorer and Mozilla Firefox (and other browsers) without requiring any modifications or definitions.

When you would use window/sequence associations, you can achieve the same browser-independent effect using wildcards: you could for example have used PayPal - Welcome - * as window filter: this filter matches both the Internet Explorer and the Firefox window.

PayPal is a registered trademark of PayPal, Inc. It is used for demonstration purposes only.


Command Line Options - KeePass

Command Line

Command Line Options

Command line options to automate KeePass tasks.

You can pass a file path in the command line in order to tell KeePass to open this file immediately after startup.

Additionally, you can specify the password and/or key file location for this database. Switches can be either prefixed using a slash (/) or a minus (-).

The database file location is passed as argument. Only one database file is allowed. If the path contains a space, it must be enclosed in quotes (").

Passwords are passed using the -pw: option. In order to pass 'abc' as password, you would add the following argument to the command line: -pw:abc. Note that there must be no space between the ':' and the password. If your password contains a space, you must enclose it in quotes. For example: -pw:"my secret password".

For supplying the key file location, the -keyfile: switch exists. The same rules as above apply, just that you specify the key file location: -keyfile:D:\pwsafe.key. You also need to quote the value, if it contains a space, tab or other whitespace characters.

In order to just pre-select a key file, use the -preselect: option. For example, if you lock your database with a password and a key file, but just want to type in the password (so, without selecting the key file manually), your command line would look like this:

KeePass.exe "C:\My Documents\MyDatabase.kdb" -preselect:C:\pwsafe.key

KeePass would then show a prompt for the password for the database, but in the key file list, the C:\pwsafe.key file is selected already. When using the preselect switch, KeePass by default activates the key file switch and sets the focus to the password edit window.

Note the difference! The preselect switch just pre-selects the key file for you and displays the login prompt. In contrast, the keyfile switch doesn't prompt you for the (maybe missing) password.

If the -readonly switch is present in the command line, KeePass will open the database in read-only mode.

The order of the arguments doesn't matter.

Text Usage Examples

Open the database file 'C:\My Documents\MyDatabase.kdb' (KeePass will prompt you for the password and/or key file location):

KeePass.exe "C:\My Documents\MyDatabase.kdb"

If you got a database that is locked with a password 'abc', you could open it like this:

KeePass.exe "C:\My Documents\MyDatabaseWithPw.kdb" -pw:abc

If your USB stick always mounts to drive F: and you've locked your database with a key file on the USB stick, you could open your database as follows:

KeePass.exe "C:\My Documents\MyDatabaseWithFile.kdb" -keyfile:F:\pwsafe.key

If you've locked your database using a password and a key file, you can combine the two switches and open your database as follows:

KeePass.exe "C:\My Documents\MyDatabaseWithTwo.kdb" -pw:abc -keyfile:F:\pwsafe.key

You have locked your database using a password and a key file, but only want to have the key file pre-selected (i.e. you want to get prompted for the password), your command line would look like this:

KeePass.exe "C:\My Documents\MyDatabaseWithTwo.kdb" -preselect:F:\pwsafe.key

Text Starting KeePass using Batch Files

Batch files can be used to start KeePass. Mostly you want to specify some of the parameters listed above. You can theoretically simply put the command line (i.e. application path and parameters) into the batch file, but this is not recommended as the command window will stay open until KeePass is closed. The following method is recommended instead:

START "" KeePass.exe ..\MyDb.kdb -pw:MySecretPw

This START command will run KeePass, open the ..\MyDb.kdb file using MySecretPw as password. KeePass is assumed to be in the same directory (working directory) as the batch file, otherwise you need to specify a different path.

START simply executes the given command line and exits, i.e. it doesn't wait until the application is terminated. Consequently, the command window will disappear after KeePass has been started.

Please note the two quotes (") after the START command. These quotes are required if the application path contains quotes (in the example above, the quotes could also be removed)! If you want to learn more about the START command syntax, type START /? into the command window.

Text Closing KeePass using Batch Files

To close all currently running KeePass instances, call KeePass.exe with the '--exit-all' parameter:

KeePass.exe --exit-all

All KeePass windows will attempt to close. If a database has been modified, KeePass will ask you whether you want to save or not. If you wish to save in any case (i.e. a forced exit without any confirmation dialog), enable the 'Automatically save database on exit and workspace locking' option in 'Tools' - 'Options...' - 'Advanced'.

The KeePass instance that has been created by the command above is not visible (i.e. it does not show a main window) and will immediately terminate after sending close requests to the other instances.


Composite Master Key - KeePass

Help

Composite Master Key

This document details how KeePass locks its databases.
  • Master Passwords
  • Key Files
  • Windows User Account

KeePass stores your passwords securely in an encrypted file (database). This database is locked with a master password, a key file and/or the current Windows account details. To open a database, all key sources (password, key file, ...) are required. Together, these key sources form the Composite Master Key.

KeePass does not support keys being used alternatively, i.e. it's not possible that you can open your database using a password or a key file. Either use a password, a key file, or both at once (both required), but not interchangeably.

Info Master Passwords

If you use a master password, you only have to remember one password or passphrase (which should be good!). KeePass has some basic protection against brute-force and dictionary attacks, read the security information page for more about this.

If you forget this master password, all your other passwords in the database are lost, too. There isn't any backdoor or a key which can open all databases. There is no way of recovering your passwords.

Info Key Files

You don't even have to remember a long, complicated master passphrase. The database can alternatively be locked using a key file.

If you lose the key file and have no backup copy of it, your passwords in the database are lost, too. It's just the same as forgetting the master password. There is no backdoor.

A 'key disk' is just a normal disk which holds a file (called 'pwsafe.key') with password bytes (KeePass can generate such disks for you). If you want, you can also select the key file (which is stored on the key disk) manually, i.e. one disk can then store multiple keys for multiple databases. In this case, you have to tell KeePass which file it should use, you cannot simply select a drive any more (when you just select a drive, KeePass assumes that it should load the 'pwsafe.key' file in the root directory of the disk).

Info Windows User Account

KeePass 1.x does not support encrypting databases using Windows user account credentials. Only 2.x and higher support this.


Configuration - KeePass

Configuration

Configuration

Details about how and where KeePass stores its configuration.

KeePass supports multiple locations for storing configuration information: the global configuration file in the KeePass application directory, a local user-dependent one in the user's private configuration folder, and an enforced configuration file in the KeePass application directory. The first one is called global, because everyone using this KeePass installation will write to the same configuration file (and possibly overwriting settings of other users). The second one is called local, because changes made to this configuration file only affect the current user.

Configuration files are stored in INI format.

Configuration | Location | Typical File Path
Global | Application Directory | C:\Program Files\KeePass Password Safe\KeePass.ini
Global (Virtualized) | Windows Vista Virtual Store | C:\Users\User Name\AppData\Local\VirtualStore\Program Files\KeePass Password Safe\KeePass.ini
Local | User Application Data | C:\Documents and Settings\User Name\Application Data\KeePass\KeePass.ini
Enforced | Application Directory | C:\Program Files\KeePass Password Safe\KeePass.enforced.ini

Text Installation by Administrator, Usage by User

If you use the KeePass installer and install the program with administrator rights, the program directory will be write-protected when working as a normal/limited user. KeePass will use local configuration files, i.e. save and load the configuration from a file in your user directory.

Multiple users can use the locally installed KeePass. Configuration settings will not be shared and can be configured individually by each user.

Text Portable Version

If you downloaded the portable version of KeePass (ZIP package), KeePass will try to store its configuration in the application directory. No configuration settings will be stored in the user directory (if the global configuration file is writable).

Text Create Portable Version of Installed KeePass

If you are currently using a locally installed version of KeePass (installed by the KeePass installer) and want to create a portable version of it, first copy all files of KeePass to the portable device. Then get the configuration file from your user directory (application data, see above) and copy it over the configuration file on the portable device.

Text For Network Administrators: Enforced Configuration

KeePass can be forced to load specific configuration settings. Enforced configuration settings are loaded from KeePass.enforced.ini (KeePass 1.x) and KeePass.config.enforced.xml (KeePass 2.x) files in the application directory (where KeePass.exe is stored).

Configuration items that are not present in the enforced configuration file are loaded normally from global/local configuration files.

This method of course only is effective as long as your users run the KeePass installation on the network drive. If they copy KeePass to their hard drives and run it from there, the options you set are not enforced (the local KeePass installation doesn't know anything of the enforced configuration file on the network drive in this case).

Text Technical Details

This section explains in detail how loading and saving the configuration actually works.

When KeePass starts up and finds both global and local configuration files, it must decide the order in which KeePass tries to get the configuration items. This is controlled by the (Kee)PreferUserConfiguration flag in the global configuration file. If it is not present, it defaults to false.

The flag is set to true in the global configuration file of the KeePass installer package. The portable ZIP package does not contain a configuration file, consequently the flag defaults to false.

Loading:
  • Try to get the configuration item from the enforced configuration file. If found, use this one.
  • If the item is neither present in the global configuration file nor in the local one: use default value.
  • If the item is present in the global configuration file, but not in the local one: use item from global configuration.
  • If the item is present in the local configuration file, but not in the global one: use item from local configuration.
  • If the item is present in the global and the local configuration file:
    • If the KeePreferUserConfiguration flag is True, use the item from the local configuration file, otherwise use the one of the global one.
Saving:
  • If the KeePreferUserConfiguration flag is True, try to store the configuration item into the local configuration file. If this fails, try to store the item into the global configuration file. If this fails, report error.
  • If the KeePreferUserConfiguration flag is False, try to store the item into the global configuration file. If this fails try to store the item into the local configuration file. If this fails, report error.


File Formats - KeePass

Help

Import / Export

KeePass supports importing/exporting data from/to various file formats.

KeePass 1.x supports importing data from CSV files (special form), CodeWallet, Password Safe, and Personal Vault.

KeePass 2.x supports importing data from CSV files (all), KeePass 1.x (KDB and CSV), KeePass 2.x XML, Alle meine Passworte, Any Password, CodeWallet, Mozilla Bookmarks, Password Agent, Password Depot, Password Exporter, Password Gorilla, Password Safe, Passwort.Tresor, Personal Vault, PINs, Security TXT, Steganos Password Manager 2007, Whisper 32, and Spamex.com.

For both KeePass 1.x and 2.x, there are importer plugins available, which add more import capabilities/formats.

  • For KeePass 1.x:
    • File Format: CSV
    • File Format: XML
  • For KeePass 2.x:
    • Generic CSV Importer
    • Formats that require custom options/steps in order to be imported:
      • How to Import CodeWallet TXT 6.05
      • How to Import Password Gorilla CSV 1.42
      • How to Import PINs TXT 4.50
      • How to Import Data from Steganos Password Manager 2007

Unfortunately there isn't any standard password database format. Every password manager uses its own file format. Anyway, almost all support exporting to CSV or XML files. This sounds good at first glance, but CSV and XML files aren't specialized password database formats, they only specify a low-level layout of the stored data (for CSV: data fields are separated by commas; for XML: hierarchical form using tags). These formats do not specify the high-level arrangement of the data (for CSV: order/meaning of the fields; for XML: tag names and structure). Because of this, many users are confused when application #1 exports data to CSV/XML and application #2 can't read the CSV/XML file, although it claims that it can read those files.

This help page details the expected CSV and XML file formats. Knowing the formats which KeePass expects, you can reformat CSV and XML files exported by other password managers to match the KeePass formats. CSV files can be reformatted using OpenOffice Calc (see below). XML files can be reformatted using an XML editor.

KeePass can import many password database formats directly (for example: CodeWallet TXT, Password Safe v2 TXT, Personal Vault TXT). Additionally, there are specialized KeePass Plugins available for importing more formats (like AnyPassword CSV, Oubliette files, PINs TXT, ZSafe files, and many more...). Using these plugins, you don't need to manually reformat the output of other password managers; you can directly import the exported files.

If no import plugin exists for importing data from your previous password manager, feel free to post a request for it in the KeePass Feature Requests and/or in the Open Discussion forum.

Text File Format: CSV (KeePass 1.x)

KeePass imports and exports data from/to CSV files in the following format:

"Account","Login Name","Password","Web Site","Comments"

For a detailed example, download this file: ZIP Package FileSample_CSV.zip. This file is zipped only in order to ensure correct encoding (if not zipped, browsers or download managers could automatically convert the file to a different encoding). When importing a CSV file, it must not be zipped!

Important notes about the format:

  • The file must be encoded using UTF-8 (Unicode). Other encodings are not supported.
  • CSV files only support the following fields: title, user name, password, URL and notes. Other fields like last entry modification time, expiration time, icon, entry file attachments, etc. are not supported. If you want to transfer such information, you have to use a different format (like XML).
  • All fields must be enclosed in quotes ("). These quotes are mandatory, unquoted fields are not allowed.
  • Quotes (") in strings are encoded as \" (i.e. two characters, where \ represents an escape character). Backslashes (\) are encoded as \\.
  • Multi-line comments are realized through normal line breaks. Encoding line breaks by \n is not supported.

Microsoft® Excel® by default does not enclose fields in quotes ("). It is recommended that you use OpenOffice Calc to create a correct CSV file (see below), or use the Generic CSV Importer of KeePass 2.x (import your CSV file into KeePass 2.x, then export the data to a KeePass 1.x KDB file), or fix the CSV file by manually adding the quotes using a text editor.

If you want to transfer data between KeePass 1.x databases, you must not change the default export options of KeePass. Do not export additional fields or uncheck any options, otherwise KeePass will not be able to re-import the CSV file, because it does not comply to the specification above any more!

Using OpenOffice Calc to create a CSV file:
OpenOffice Calc can be used to create CSV files that can be imported correctly into KeePass. Follow these steps:

  • Make sure you got 5 columns as described above.
  • Select everything, right-click and select 'Format Cells'. In the dialog, choose Text as category. Click [OK].
  • Go 'File' -> 'Save As...', choose a location and make sure that the check box 'Edit Filter Settings' is enabled. Click the 'Save' button.
  • Choose 'Unicode (UTF-8)' as character set. The field separator must be set to a comma. The text separator must be ". Make sure that the Fixed Column Width box is not checked. Click [OK].

Text File Format: XML (KeePass 1.x)

This section describes the KeePass XML 1.x format. Note that this format is different from the XML format used by KeePass 2.x!

You can download a detailed XML sample file here: ZIP Package FileSample_XML.zip. This file is zipped only in order to ensure correct encoding (if not zipped, browsers or download managers could automatically convert the file to a different encoding). When importing a XML file, it of course must not be zipped!

Important notes about the format:

  • The files must be encoded using UTF-8 (Unicode). Other encodings are not supported.
  • The following five entities must be encoded: < > & " '. They are encoded by &lt; &gt; &amp; &quot; &apos;.
  • The UUID is a hex-encoded 16-byte string (i.e. an 32 ANSI hex character string in the XML file). The UUID is unique (also across multiple databases) and can be used to identify entries.
  • Dates/times are encoded in the standard date/time XML format (YYYY-MM-DDTHH:mm:ss): first the date in form YYYY-MM-DD, a 'T' character, and the time in form HH:mm:ss.

Text Generic CSV Importer

KeePass 2.x ships with a generic CSV importer. This tool can import almost all CSV formats out there. The CSV files are loaded and you can manually specify the encoding / character set, assign columns to data fields and specify how the low-level structure looks like (usage of quotes, etc.).

To start the generic CSV file importer, click 'File' -> 'Import' and choose 'Generic CSV Importer'.

Text How to Import CodeWallet TXT 6.05

CodeWallet is a password manager that supports different card types (fields). KeePass cannot know which of the CodeWallet fields correspond to the KeePass standard fields (title, user name, ...), because they don't have fixed names (language-dependent, user-customizable, ...). Therefore all fields from the CodeWallet file are imported into custom string fields of KeePass entries. After importing the file, you can move some of the strings to the correct standard fields (by clicking the 'Move' button on the second tab page of the entries dialog.

Text How to Import Password Gorilla CSV 1.42

In order to successfully import a Password Gorilla CSV file, you need to configure the following settings in 'File - Preferences - Export' in Password Gorilla:

  • Enable 'Include password field'.
  • Enable 'Include notes field'.
  • Enable 'Save as Unicode text file'.
  • Set the field separator to 'µ' (mu, press AltGr+M).
  • Make sure you didn't use the 'µ' character anywhere in your password database.

When you carefully set these options, export the data to a CSV file and import it into KeePass using 'File -> Import' in KeePass 2.x.

Text How to Import PINs TXT 4.50

In order to successfully import a PINs TXT file, you need to do the following:

  • Switch PINs language to 'English'.
  • In PINs export dialog: Enable all fields.
  • In PINs export dialog: Set separator to 'tab'.
  • In PINs export dialog: Enable 'Quote texts'.

After exporting a TXT file using the settings above, import it using 'File -> Import' in KeePass 2.x.

Text How to Import Data from Steganos Password Manager 2007

Warning! It is possible that the transfer fails and that KeePass accidently overwrites your existing passwords in Steganos Password Manager. Therefore backup your SEF file before starting the import! In any case you should restore your passwords by restoring the backup you just created after the import process! Even if you think KeePass hasn't changed anything, restore from the backup!

Unfortunately Steganos Password Manager (SPM) lacks any form of export functionality. As the SEF file format (in which the data is stored) is proprietary and no specification is available, KeePass needs to try to get all the data out of the windows of SPM.

The import process works as follows. First you start SPM and open your password database. The main password management window should be open (i.e. the one which lists your items in the middle of the screen, and got toolbar-like buttons at the top). Make sure that all your items are displayed in the list (select the correct filter in the combobox above the item list).

Now switch to KeePass 2.x and open your KeePass database. Go File -> Import and choose Steganos Password Manager 2007. Click [OK]. Now read the rest before continuing.

After pressing the [Yes] button in the KeePass import confirmation dialog, you got 10 seconds to switch to the SPM window. Select the very first entry within the SPM window (but do not open it, just select it). This is important! The first entry must have the keyboard focus and must be selected.

When the 10 seconds are over, KeePass will start importing. You will see how KeePass opens the SPM items, copies the data, closes the item's window, select the next item, etc. Everything goes automatic now and you can just sit back and watch. Sometimes Windows playes a ding sound, this is normal!

Note that it can take quite some time to import your items. Do not do anything while KeePass is importing! One single mouse click or keypress can ruin the complete import process.

The last item will be scanned twice. When completed, KeePass will show a message "The import process has finished!".

It is possible that KeePass failed to import some items (mainly caused by SPM's unpredictable slow response times). It is highly recommended that you compare each of the entries.


Integration - KeePass

Help

Integration

How KeePass integrates into your operating system environment.
  • Global Hot Key to Restore KeePass Window
  • Limit to Single Instance Option

Info Global Hot Key to Restore KeePass Window

To quickly switch back from an application to KeePass, you can use the global hot key that restores the KeePass main window.

If you have multiple instances of KeePass running, pressing the global hot key will restore the first instance that has been started.

The global hot key is Ctrl-Alt-K. You cannot change this hot key.

Info Limit to Single Instance Option

If you enable the 'Limit to Single Instance' option, at most one KeePass instance can be running at a time. If you try to start a second KeePass instance, it is immediately terminated, and the first instance is brought to the foreground.

If the second instance was started using a command line specifying a database to open, and the first instance doesn't have a sub-dialog open, the first instance attempts to close the current database. If this attempt is successful (or if no database was open in the first place), the first instance opens the database specified by the second instance's command line, using any -pw or -keyfile options specified by the second instance. All other command line options in the second instance are ignored.


Password Generator - KeePass

Security

Password Generator

Details about the built-in password generator of KeePass.

  • Generation Based on Character Sets
  • Generation Based on Patterns
  • Generating Passwords that Follow Rules
  • Security-Reducing Options
  • Configuring Settings of Automatically Generated Passwords for New Entries

Help Generation Based on Character Sets

This password generation method is the recommended way to generate random passwords. Other methods (pattern-based generation, ...) should only be used if passwords must follow special rules or fulfill certain conditions.

Generation based on a character set is very simple. You simply let KeePass know which characters can be used (i.e. upper-case letters, digits, ...) and KeePass will randomly pick characters out of the set.

Defining a Character Set:
The character set can be defined directly in the password generator window. For convenience, KeePass offers adding commonly used ranges of characters to the set. This is done by ticking the appropriate check box. Additionally to these predefined character ranges, you can specify characters manually: all characters that you enter in the 'Also include the following characters' edit box will be directly added to the character set.

Character Sets are Sets:
In mathematical terms, character sets are sets, not vectors. This means that characters can not be added twice to the set. Either a character is in the set or it is not.

For example, if you enter 'AAAAB' into the additional characters box, this is exactly the same set as 'AB'. 'A' will not be 4 times as likely as 'B'! If you need to follow rules like 'character A is more likely than B', you must use pattern-based generation + permuting password characters.

KeePass will 'optimize' your character set by removing all duplicate characters. If you'd enter the character set 'AAAAB' into the additional characters box, close and reopen the password generator, it'll show the shorter character set 'AB'. Similarly, if you tick the Digits check box and enter '3' into the additional box, the '3' will disappear because it is already included in the Digits character range.

Help Generation Based on Patterns

The password generator can create passwords using patterns. A pattern is a string defining the layout of the new password.

Placeholder | Type | Character Set
a | Lower-Case Alphanumeric | abcdefghijklmnopqrstuvwxyz 0123456789
A | Mixed-Case Alphanumeric | ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789
U | Upper-Case Alphanumeric | ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789
c | Lower-Case Consonants | bcdfghjklmnpqrstvwxyz
C | Mixed-Case Consonants | BCDFGHJKLMNPQRSTVWXYZ bcdfghjklmnpqrstvwxyz
z | Upper-Case Consonants | BCDFGHJKLMNPQRSTVWXYZ
d | Digit | 0123456789
h | Lower-Case Hex Character | 0123456789 abcdef
H | Upper-Case Hex Character | 0123456789 ABCDEF
l | Lower-Case Letters | abcdefghijklmnopqrstuvwxyz
L | Mixed-Case Letters | ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz
u | Upper-Case Letters | ABCDEFGHIJKLMNOPQRSTUVWXYZ
p | Punctuation | ,.;:
b | Brackets | ()[]{}<>
S | Printable 7-Bit ASCII | A-Z, a-z, 0-9, !"#$%&'()*+,-./:;<=>?[\]^_{|}~
v | Lower-Case Vowels | aeiou
V | Mixed-Case Vowels | AEIOU aeiou
Z | Upper-Case Vowels | AEIOU
x | High ANSI | From '~' to U255 (excluding U255)
\ | Escape (Fixed Char) | Use following character as is
{n} | Escape (Repeat) | Repeat the previous character n times
[...] | Custom Char Set | Define a custom character set

The \ placeholder is special: it's an escape character. The next character that follows the \ is written directly into the generated password. If you want a \ in your password at a specific place, you have to write \\.

Using the {n} code you can define how many times the previous placeholder should occur. The { } operator duplicates placeholders, not generated characters. Examples:
» d{4} is equivalent to dddd,
» dH{4}a is equivalent to dHHHHa and
» Hda{1}dH is equivalent to HdadH.

The [...] notation can be used to define a custom character set, from which the password generator will pick one character randomly. All characters between the [ and ] brackets follow the same rules as the placeholders above. Examples:
» [dp] generates exactly 1 random character out of the set digits + punctuation,
» [d\m\@]{5} generates 5 characters out of the set "0123456789m@",
» [u\_][u\_] generates 2 characters out of the set upper case + '_'.

More examples:

ddddd
Generates for example: 41922, 12733, 43960, 07660, 12390, 74680, ...

\H\e\x\:\ HHHHHH
Generates for example: 'Hex: 13567A', 'Hex: A6B99D', 'Hex: 02243C', ...

Common Password Patterns:

Name | Pattern
WEP Hex Key - 40 Bit | h{10}
WEP Hex Key - 128 Bit | h{32}
WEP Hex Key - 256 Bit | h{64}
Random MAC Address | HH\-HH\-HH\-HH\-HH\-HH

Help Generating Passwords that Follow Rules

Below are a few examples how the pattern generation feature can be used to generate passwords that follow certain rules.

Important! For all of the following examples you must enable the 'Randomly permute characters of password' option!

Rule | Pattern
Must consist of 2 upper case and 2 lower case characters, plus 2 digits | uulldd
Must consist of 9 digits and 1 letter | d{9}L
Must consist of 10 alphanumeric characters, where at least 1 is a letter and at least 1 is a digit | LdA{8}
Must consist of 10 alphanumeric characters, where at least 2 are upper case and at least are 2 lower case characters | uullA{6}
Must consist of 9 characters out of the set "ABCDEF" and an '@' symbol somewhere in it | \@[\A\B\C\D\E\F]{9}

Help Security-Reducing Options

The password generator supports several options like 'No repeating characters'. These options are reducing the security of generated passwords. You should only enable them if you are forced to follow such rules by the website/application, for which you are generating the password.

The options can be found in the 'Advanced' dialog / tab page.

Red Button If you enable a security-reducing option, the 'Advanced' button
in the password generator window is shown in red.

Help Configuring Settings of Automatically Generated Passwords for New Entries

When you create a new password entry, KeePass will automatically generate a random password for the new entry. The properties of these generated passwords can be configured in the password generator dialog.

To configure, open the password generator dialog and select all the options you wish (character set, pattern, etc.). Then, click the leftmost button right of the profile selection dropdown box (the one that looks like a disk with a pen on it). In the dialog that opens, click the dropdown arrow of the combo box and choose '(Automatically generated passwords for new entries)', then click the [OK] button.

Disabling Automatically Generated Passwords:
To disable automatically generated passwords for new entries, open the password generator dialog, select 'Generate using character set' and specify 0 as password length. As above, overwrite the appropriate profile.


Secure Edit Controls - KeePass

Help

Secure Edit Controls

KeePass supports security-enhanced edit controls.

KeePass was the first password manager featuring secure edit controls. The edit controls used in KeePass are resistant to password revealers and password control spies. Additionally, the entered passwords are protected against memory dumping attacks: the passwords aren't even visible in the process memory space of KeePass!

KeePass uses secure edit controls only when the hiding behind asterisks option is turned on! If you show the passwords in plaintext, they won't be protected (secure edit controls are just disabled then, replaced by standard Windows edit controls).

Selection Limitation

A limitation of these secure edit controls is that you can't select a range of characters. You for example cannot select 3 characters and replace them by the current contents of the clipboard using the paste command.

If you want to delete all the contents of a secure edit control, press Shift-Home or Shift-End. This will remove all entered characters.

Technical background

If you want to know more about how it's working internally, read this article (by the KeePass author) about secure edit controls:
http://www.codeproject.com/editctrl/SecEditEx.asp.


TAN Support - KeePass

Help

TAN Support

KeePass supports Transaction Authentication Numbers (TANs).
  • Using the TAN Wizard to add TANs
  • Using TANs

KeePass supports TANs, i.e. passwords that can be used only once. These special passwords are used by some banks: you need to confirm transactions using such TANs. This provides additional security, as a spy cannot perform transactions, even if he knows the password of your banking account.

Text Using the TAN Wizard to add TANs

You can use the KeePass TAN Wizard to add several TANs at once to your database. Just open the TAN wizard dialog (menu Tools - TAN Wizard) and enter all your TANs. The formatting doesn't matter, KeePass just uses all alphanumerical characters, i.e. characters like line breaks, tabs, spaces, dots, etc. are used as separators.

The wizard will then generate several TAN entries from the data you entered into the dialog. Each TAN is a standard KeePass entry. The title of a TAN entry always is set to "<TAN>". This tells KeePass that the entry is a TAN entry, you cannot change the title, username or URL of a TAN (doesn't make sense). But you can freely add notes to a TAN entry, if you wish.

When you use the TAN (i.e. execute the "Copy Password" command on it), its expiration date will be set to the current time, which expires the entry. It will get a red X as icon. If you later want to know when you used a specific TAN, you can just have a look at its expiration date.

Text Using TANs

TAN entries are marked as expired when you use the "Copy Password" command on them. It copies the TAN to the clipboard.

When copying a TAN to the clipboard, the database is marked as modified. You must save the file in order to remember the usage of a TAN.

If you accidently used a TAN without needing it, you can reset it (i.e. remove the red X and show it as valid TAN again). To do this, open the TAN entry (right-click it and choose 'Edit/View Entry...'). Here, uncheck the 'Expires' checkbox. Click OK to close the dialog.


URL Field Capabilities - KeePass

URL Field

URL Field Capabilities

The URL field supports various special protocols and placeholders.

URL Field Capabibilities:
  • Standard Capabilities
  • Executing Command Lines
  • Placeholders
Usage Tips & Tricks:
  • Starting RDP/TS Sessions (Remote Desktop / Terminal Server Connection)

Text Standard Capabilities

The URL field can execute any valid URL, for which you have defined a protocol handler. On most systems at least the http://, ftp:// and mailto: protocols are defined. KeePass supports all registered protocols that Internet Explorer supports.

For example, if you globally (i.e. using the Windows Explorer) register PuTTY for ssh:// URLs, KeePass will automatically use PuTTY for ssh:// URLs, too.

Terminal Executing Command Lines

Instead of an URL, you can also execute command lines using the URL field. To tell KeePass that the line you entered is a command line, prefix it using cmd://. For example if you would like to execute Notepad, your URL could look like this:

cmd://C:\Windows\Notepad.exe C:\Test\MyTestFile.txt

The virtual cmd:// protocol also supports parameters for executed applications, in contrast to the file:// protocol. This was the main reason why cmd:// was introduced; with file:// you aren't able to pass any parameters to started applications. Use the cmd:// protocol instead.

The paths for the cmd:// protocol don't need to be encoded. For example, you do not have to replace space characters by %20, as it is normally required for other URLs. KeePass just cuts away the cmd:// virtual protocol prefix and passes the remaining command line to Windows.

If the file path contains spaces, you must enclose it in quotes (").

Environment Variables:
Windows environment variables are supported. For example %TEMP% is replaced by the user's temporary path.

Text Placeholders

In the URL field, you can use several placeholders that will get automatically replaced when the URL is executed. For example:

http://www.yoursite.com/default.php?user={USERNAME}&pass={PASSWORD}

For this entry, KeePass will replace {USERNAME} by the data of the username field and {PASSWORD} by the data in the password field when you execute the link.

Exactly the same placeholders are supported as the auto-type feature supports. For a complete list of supported placeholders, see the Auto-Type Placeholders List.

Also note that the special placeholders are supported, too. For example, the {APPDIR} placeholder is replaced by the application directory path of the currently running KeePass instance. It's the absolute path of the directory containing the KeePass executable, without a trailing backslash. If you would like to start a new KeePass instance, you could set the URL to:

cmd://"{APPDIR}\KeePass.exe"

To use different browsers for entries, you can use URLs like the following:
cmd://{INTERNETEXPLORER} "http://www.yoursite.com"
cmd://{FIREFOX} "http://www.yoursite.com"
cmd://{OPERA} "http://www.yoursite.com"
The browser placeholder will be replaced by the browser's executable path (if installed).

Terminal Starting RDP/TS Sessions

You can use the URL field of entries and the virtual cmd:// protocol to start remote desktop connections.

For this, enter the following in the URL field of an entry:

cmd://mstsc.exe

When you now double-click onto the URL field of the entry in the main window, a Windows remote desktop connection is initiated.

MSTSC is the Windows terminal server connection program (remote desktop connection). You can pass a path to an existing RDP file to the program to open it. For example, the following URL opens the specified RDP file:

cmd://mstsc.exe "C:\My Files\Connection.rdp"

MSTSC also supports several command-line options:

  • /v:<Server[:Port]>
    Defines the terminal server to connect to.
  • /console
    Connects to the terminal session of the server.
  • /f
    Starts the client in full screen mode.
  • /w:<Width>
    Defines the width of the remote desktop screen.
  • /h:<Height>
    Defines the height of the remote desktop screen.
  • /edit
    Opens the specified RDP file for editing.
  • /migrate
    Migrates old connection files to new RDP files.

Text URL Override

The URL field behavior can be temporarily overridden to allow you to execute special programs, by adding an entry in the Notes field. Simply entering Url-Override: followed by the command you require, then double clicking the URL will run your special command.

Changing the default browser:
If your default browser is Firefox and you want to open a specific site with Internet Explorer, add the following to the Notes field:

Url-Override: cmd://"C:\Program Files\Internet Explorer\iexplore.exe" {URL}

KeePass will automatically open Internet Explorer and pass the data from the URL field as the parameter.

Running KeeForm:
If you want to open a specific site with KeeForm and Internet Explorer, add the following to the Notes field:

Url-Override: cmd://"{APPDIR}\KeeForm.exe" "{URL}" "{USERNAME}" "{PASSWORD}" {ENTERFORM}

KeePass will automatically open KeeForm and pass the data from the URL field, along with the user name and password as parameters.

Permanently changing the URL behavior:
If you want to change the default URL action (i.e. for all URLs), you can add a KeeUrlOverride line to the KeePass.ini file.

To use KeeForm as the default URL handler, add the following line to the end of KeePass.ini:

KeeUrlOverride=cmd://"{APPDIR}\KeeForm.exe" "{URL}" "{USERNAME}" "{PASSWORD}" {ENTERFORM}

More detailed KeeForm setup and usage instructions can be found in the help file of KeeForm.


Using Stored Passwords - KeePass

Help

Using Stored Passwords

How to copy passwords stored in KeePass to other applications.

There are many different methods to copy passwords stored in KeePass to other applications:

  • Context-Sensitive Password List
  • Drag&Drop
  • Auto-Type
  • KeeForm, Browser Integration Toolbar and other Plugins

Info Context-Sensitive Password List

Depending on which field you double-click in the password list (main window), different actions are performed:

  • Title field: open the entry editing dialog for this entry.
  • User Name field: copy user name to clipboard.
  • URL field: open the URL (in browser).
  • Password field: copy password to the clipboard.
  • Notes field: notes are copied to the clipboard.
  • Any other fields (like time and UUID fields): copy the contents of that field to the clipboard.

Info Drag&Drop

You can drag&drop all fields of KeePass entries into other windows. Here's a screenshot illustrating this:

Drag & Drop Screenshot

Info Auto-Type

Auto-Type is a powerful feature that sends simulated keypresses to other applications.

You can find more details about it here: Auto-Type documentation page.

Info KeeForm, Browser Toolbar and other Plugins

There are a lot of plugins available integrating KeePass directly with other applications. KeeForm and the Browser Integration Toolbar for Internet Explorer allow completely automatic filling of webforms for example.

You can find these integration plugins on the KeePass Plugins page.


Administrative FAQ - KeePass

Help

Administrative FAQ

Frequently Asked Questions about the project, licensing, ...
  • How can I help you? (Supporting the KeePass project)
  • May KeePass be used in a company?
  • What about a centralized KeePass Internet server?

Info How can I help you?

If you like KeePass and would like to help me in some way:

  • Donate
    This is the best way of helping me, if you don't have that much time or experience in application development. It's the recommended way of helping me for standard users.
  • Make a translation
    If you have some free time, you could make a translation of KeePass (of course only if you're language isn't offered already)!
  • Test new releases and submit bugfixes
    KeePass is under constant development, new features get implemented, bugs get fixed. If you have some free time, you could just test the new releases thoroughly and if you're a programmer, look through the sources to find bugs and maybe even submit fixes.
  • Spread the word
    If you like KeePass, tell all your friends how great KeePass is, publish articles about it, press it on CDs/DVDs, sell it with your USB sticks, submit it to software archives, talk in forums about it, etc.!

Info Am I permitted to install KeePass on all computers in my company?

Yes. KeePass is free software and you don't have to pay any fees. You may freely use KeePass under the terms of its license.

But of course, if you like KeePass, donations are always greatly appreciated.

Info What about a centralized KeePass Internet server?

The idea on the first glance sounds simple and useful: there should be a centralized KeePass Internet server, on which all users can store their passwords. By having Internet connection, you'd have access to all your passwords.

Note that this idea is different from simply providing webspace. KeePass 2.x already supports storing databases on servers using HTTP/FTP; that's not the point. The point is having one server for all users.

When creating such a server, there are several difficulties:

  • A fairly complex synchronization and caching mechanism will be required. You won't want to transfer the complete database, otherwise the service will be unusable for everyone storing attachments, etc.

  • Directly related to the previous point: in order to do synchronization, the server needs to be able to read and understand databases, i.e. some dedicated KeePass server would need to be written. While the transport way could be secure HTTPS, the server certainly has some user data as plain text in memory for some time. One needs to be very careful here. What to do if the server gets compromised? The security implications would be horrible, if an attacker could read any user data.

  • How to avoid server compromises? If a normal Internet server is compromised, the security implications are minimal: in the worst case all user accounts and data for this website are lost. But with KeePass server, whole identities would be lost. An attacker couldn't only impersonate someone on this particular server, but on the complete Internet and real world, depending on what is stored in the databases.

    Therefore, banking-level security systems would be required for a KeePass server. Keeping PHP / ASP / Linux / Windows (or whatever will be used) up-to-date definitely is not enough here.

  • Basically you offer people webspace for their databases, therefore the service obviously will cost something. By charging people, they expect reliability and you need to make up-time guarantees. Therefore, at least 2 servers are required (by different hosters), which need to be synchronized.

Summary: a centralized Internet server currently is out of range. If someone wants to start a company providing such a service, feel free to use KeePass as base application (of course respect the Open Source terms).

But what can and probably will be done later is a local intranet KeePass server (for companies for example). Employees could log in to the company's password server and use it. But a centralized Internet server -- no chance.


Technical FAQ - KeePass

Help

Technical FAQ

Frequently Asked Questions about the usage of KeePass.

Configuration:
  • I've saved my options, but when I reopen KeePass I get the old options. What's wrong?
Installation / Integration:
  • Where can I find more application icons for Windows shortcuts?
  • How can I add more client icons for password entries?
  • Can I directly edit file attachments?
  • Does KeePass support a mini mode?
  • Why doesn't KeePass lock after Auto-Type?
Security:
  • Is Auto-Type keylogger-safe?
  • Could you add the ... encryption algorithm to KeePass?
  • Why doesn't KeePass lock when Windows locks and a KeePass sub-dialog is open?
  • Printing creates a temporary file. Will it be erased securely?

Info I've saved my options, but when I reopen KeePass I get the old options. What's wrong?

KeePass supports two different locations for storing configuration information: the global configuration file in the KeePass directory and a local, user-dependent one in the user's private configuration folder. Most likely you do not have write access to your global configuration file.

For more details, see Cascading Configuration.

Info Where can I find more application icons for Windows shortcuts?

Application icons are icons in Windows ICO format. They can be used in Windows shortcuts and/or as file association icons. The KeePass executable contains various application icons which can be used for these purposes.

Additional application icons are available from the "Ext/Icons" directory of the KeePass source code download. Most of them, shown at right, are slight variations of the main KeePass icon.

Even more, contributed icons (by users) can be found on the plugins page.

If you have multiple KeePass databases, you can use differently colored KeePass application icons in order to distinguish them.

These icons are not included in the binary distribution because this would make the application file too large.

 Application Icons

Info How can I add more client icons for password entries?

Client icons are the icons used for password entries and groups within KeePass. Each entry can be assigned its own icon.

These icons are built-in. You cannot add/import your own icons.

If you think your icon is a very generic one and many people could use it, feel free to post a feature request for including your icon into KeePass.
Application Icons

Info Can I directly edit file attachments?

No, this is not possible. In order to edit attachments, you need to save them to a (temporary) file, edit it using an external application, import it back to KeePass as attachment, and finally delete the temporary file.

There will no feature be implemented that automates these steps, because of security problems. To see the problems, let's assume that KeePass would support editing attachments. When you click a button, KeePass would save the attachment to a file and open it using its associated external application. When the external application is closed, KeePass would import the temporary file and delete it securely. But what happens when KeePass is closed before the external application? KeePass cannot delete the file because it's eventually locked by the external application. Theoretically KeePass could tell the user this fact before closing, but what to do when the computer shuts down? Here, there's no time left to ask the user what to do. The temporary file would have been leaked, i.e. left unencryptedly on disk, which is obviously very bad.

One could argue that the leakage would only be temporary: at the next start, KeePass could scan the temporary directory for remaining files and delete them. Anyway, the files would be freely accessible (unencrypted) by all other applications during a complete computer shutdown and boot process. If you don't start KeePass on this computer ever again, the file is leaked forever. As KeePass is designed to be portable, i.e. may be securely used on many computers, this temporary leakage is unacceptable.

Info Does KeePass support a mini mode?

Yes. By specifying KeeMiniMode=True in the KeePass.ini file, KeePass will run in a minimal mode.

In this mode, the following functionality is hidden:
  • Configuration and administration options (database settings, global program options, plugins, ...).
  • Functionality that is not interesting to users in a company (like checking for updates, ...).
  • Import / export.
  • Auto-Type.
  • Key files (only a master password can be entered).
  • File operations (only the Save command is shown; if a specified database does not exist, KeePass automatically creates and opens one).

Info Why doesn't KeePass lock after Auto-Type?

I have enabled the "Use alternative auto-type method (minimize window)" and "Lock workspace when minimizing the main window" options. Why doesn't KeePass lock after auto-typing?

In this very special case, the window minimization only is a way to lose the focus, i.e. the window below comes to the foreground. The minimization is not user-initiated (it's only a side-effect of auto-type), nor a consequence of an external minimization command, therefore it is not (and should not be) affected by the automatic workspace locking handler.

If you worry about having KeePass minimized and unlocked, enable the "Automatically lock workspace after the following number of seconds" option and specify a reasonable amount.

Info Is Auto-Type keylogger-safe?

Is the Auto-Type feature resistant to keyloggers?

No. The Auto-Type feature has been designed in a way that it's impossible for target applications to distinguish real keys from auto-typed ones. This on the one hand has the advantage that the feature is really compatible with all applications out there. On the other hand, the auto-typed keys can of course be logged by keyloggers. If you worry about keyloggers, you have to use one of the other methods (drag&drop, copying to clipboard, KeeForm, browser integration toolbar, ...).

Info Could you add the ... encryption algorithm to KeePass?

Only Rijndael (AES) and Twofish are supported. There are no plans to add additional algorithms for the following reasons:
  • Backward Compatibility: If new algorithms are implemented and used, older KeePass versions will not be able to read files encrypted with the new algorithms.
  • Security: Some people are not well informed about encryption algorithms and may choose a weak algorithm such as TEA, if implemented. This would compromise the security of passwords managed by KeePass.
  • Size & Functionality: KeePass is a secure password manager, not a Swiss army knife of algorithms.

Info Why doesn't KeePass lock when Windows locks and a KeePass sub-dialog is open?

KeePass automatically tries to lock its workspace when Windows is locked, with one exception: when a KeePass sub-dialog (like the 'Edit Entry' window) is currently opened, the workspace is not locked.

To understand why this behavior makes sense, it is first important to know what happens when the workspace is locked. When locking, KeePass completely closes the database and only remembers several view parameters, like the last selected group, the top visible entry, selected entries, etc. From a security point of view, this achieves best security possible: breaking a locked workspace is equal to breaking the database itself.

Now back to the original question. Let's assume an edit dialog is open and the workstation locks. What should KeePass do now? Obviously, it's too late to ask the user what to do (the workstation is locked already and no window can't be displayed), consequently KeePass must make an automatic decision. There are several possibilities:

  • Do not save the database and lock.
    In this case, all unsaved data of the database would be lost. This not only applies to the data entered in the current dialog, but to all other entries that have been modified previously.
  • Save the database and lock.
    In this case, possibly unwanted changes are saved. Often you open files, try something, having in mind that you can just close the file without saving the changes. KeePass has an option 'Automatically save database when KeePass closes or the workspace is locked'. If this option is enabled and no sub-dialog is open, it's clear what to do: try to save the database and if successful: lock the workspace. But what to do with the unsaved changes in the sub-dialog? Should it be saved automatically, taking away the possibility of pressing the 'Cancel' button?
  • Save to a temporary location and lock.
    While this sounds the best alternative at first glance, there are several problems with it, too. First of all, saving to a temporary location could fail (for example there could be too few disk space or some other program like virus scanner could have blocked it). Secondly, saving to a temporary location isn't uncritical from a security point of view. When having to choose such a location, mostly the user's temporary directory on the hard disk is chosen (because it likely has enough free space, required rights for access, etc.). Therefore, KeePass databases could be leaked and accumulated there. It's not clear what should happen if the computer is shutdown or crashes while being locked. When the database is opened the next time, should it use the database stored in the temporary directory instead? What should happen if the 'real' database has been modified in the meanwhile (quite a realistic situation if you're carrying your database on an USB stick)?

Obviously, none of these alternatives is satisfactory. Therefore, KeePass implements the following simple and easy to understand behavior:

When Windows is locked and a KeePass sub-dialog is opened, the KeePass workspace is not locked.

This simple concept avoids all the problems above. The user is responsible for the state of the program.

Security consequence: the database is left open when Windows locks. Does this matter? Normally, you are the only one who can log back in to Windows. When someone else logs in (like administrator), he can't use your programs anyway. By default, KeePass keeps in-memory passwords encrypted, therefore it does not matter if Windows caches the process to disk at some time. So, your passwords are pretty safe anyway.

Info Printing creates a temporary file. Will it be erased securely?

KeePass creates a temporary HTML file when printing password lists and showing print previews. This file is securely erased (i.e. overwritten multiple times before being removed from the file system tree) when closing the database.

You must wait for the file being printed completely before closing KeePass (and close the print preview before closing KeePass), otherwise it could happen that the printing application blocks KeePass from deleting the file.

There is no way around the temporary file in the current printing system. If you want to write a plugin that directly sends the data to the printer, you can find a plugin development tutorial here: KeePass 2.x Plugin Development.


Acknowledgements - KeePass

Help

Nuvola Icons License

License of the 'Nuvola' icon theme by David Vignoni.

Usage of the 'Nuvola' icons is allowed under the terms of the LGPL license (which you can find here: GNU Lesser General Public License), plus an addition. Here's the original distribution notice:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
This copyright and license notice covers the images in this directory.
Note the license notice contains an add-on.
************************************************************************

TITLE:	NUVOLA ICON THEME for KDE 3.x
AUTHOR:	David Vignoni | ICON KING
SITE:	http://www.icon-king.com
MAILING LIST: http://mail.icon-king.com/mailman/listinfo/nuvola_icon-king.com

Copyright (c)  2003-2004  David Vignoni.

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation,
version 2.1 of the License.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library (see the the license.txt file); if not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
#######**** NOTE THIS ADD-ON ****#######
The GNU Lesser General Public License or LGPL is written for software libraries
in the first place. The LGPL has to be considered valid for this artwork
library too.
Nuvola icon theme for KDE 3.x is a special kind of software library, it is an
artwork library, it's elements can be used in a Graphical User Interface, or
GUI.
Source code, for this library means:
 - raster png image* .
The LGPL in some sections obliges you to make the files carry
notices. With images this is in some cases impossible or hardly usefull.
With this library a notice is placed at a prominent place in the directory
containing the elements. You may follow this practice.
The exception in section 6 of the GNU Lesser General Public License covers
the use of elements of this art library in a GUI.
dave [at] icon-king.com

Date:       15 october 2004
Version:    1.0

DESCRIPTION:

Icon theme for KDE 3.x.
Icons where designed using Adobe Illustrator, and then exported to PNG format.
Icons shadows and minor corrections were done using Adobe Photoshop.
Kiconedit was used to correct some 16x16 and 22x22 icons.

LICENSE

Released under GNU Lesser General Public License (LGPL)
Look at the license.txt file.

CONTACT

David Vignoni
e-mail :        david [at] icon-king.com
ICQ :           117761009
http:           http://www.icon-king.com


Disclaimer

This disclaimer applies to the KeePass program, website and help pages.
  • English Disclaimer
  • German Haftungsausschluss

Disclaimer

1. Content

The author reserves the right not to be responsible for the topicality, correctness, completeness or quality of the information provided. Liability claims regarding damage caused by the use of any information provided, including any kind of information which is incomplete or incorrect, will therefore be rejected.

All offers are not-binding and without obligation. Parts of the pages or the complete publication including all offers and information might be extended, changed or partly or completely deleted by the author without separate announcement.

2. Referrals and links

The author is not responsible for any contents linked or referred to from his pages - unless he has full knowledge of illegal contents and would be able to prevent the visitors of his site from viewing those pages. If any damage occurs by the use of information presented there, only the author of the respective pages might be liable, not the one who has linked to these pages. Furthermore the author is not liable for any postings or messages published by users of discussion boards, guestbooks or mailinglists provided on his page.

3. Copyright

The author intended not to use any copyrighted material for the publication or, if not possible, to indicate the copyright of the respective object.

The copyright for any material created by the author is reserved. Any duplication or use of objects such as images, diagrams, sounds or texts in other electronic or printed publications is not permitted without the author's agreement.

4. Privacy policy

If the opportunity for the input of personal or business data (email addresses, name, addresses) is given, the input of these data takes place voluntarily. The use and payment of all offered services are permitted - if and so far technically possible and reasonable - without specification of any personal data or under specification of anonymized data or an alias. The use of published postal addresses, telephone or fax numbers and email addresses for marketing purposes is prohibited, offenders sending unwanted spam messages will be punished.

5. Legal validity of this disclaimer

This disclaimer is to be regarded as part of the internet publication which you were referred from. If sections or individual terms of this statement are not legal or correct, the content or validity of the other parts remain uninfluenced by this fact.

Haftungsausschluss

1. Inhalt des Onlineangebotes

Der Autor übernimmt keinerlei Gewähr für die Aktualität, Korrektheit, Vollständigkeit oder Qualität der bereitgestellten Informationen. Haftungsansprüche gegen den Autor, welche sich auf Schäden materieller oder ideeller Art beziehen, die durch die Nutzung oder Nichtnutzung der dargebotenen Informationen bzw. durch die Nutzung fehlerhafter und unvollständiger Informationen verursacht wurden, sind grundsätzlich ausgeschlossen, sofern seitens des Autors kein nachweislich vorsätzliches oder grob fahrlässiges Verschulden vorliegt.

Alle Angebote sind freibleibend und unverbindlich. Der Autor behält es sich ausdrücklich vor, Teile der Seiten oder das gesamte Angebot ohne gesonderte Ankündigung zu verändern, zu ergänzen, zu löschen oder die Veröffentlichung zeitweise oder endgültig einzustellen.

2. Verweise und Links

Bei direkten oder indirekten Verweisen auf fremde Webseiten ("Hyperlinks"), die außerhalb des Verantwortungsbereiches des Autors liegen, würde eine Haftungsverpflichtung ausschließlich in dem Fall in Kraft treten, in dem der Autor von den Inhalten Kenntnis hat und es ihm technisch möglich und zumutbar wäre, die Nutzung im Falle rechtswidriger Inhalte zu verhindern.

Der Autor erklärt hiermit ausdrücklich, dass zum Zeitpunkt der Linksetzung keine illegalen Inhalte auf den zu verlinkenden Seiten erkennbar waren. Auf die aktuelle und zukünftige Gestaltung, die Inhalte oder die Urheberschaft der verlinkten / verknüpften Seiten hat der Autor keinerlei Einfluss. Deshalb distanziert er sich hiermit ausdrücklich von allen Inhalten aller verlinkten / verknüpften Seiten, die nach der Linksetzung verändert wurden. Diese Feststellung gilt für alle innerhalb des eigenen Internetangebotes gesetzten Links und Verweise sowie für Fremdeinträge in vom Autor eingerichteten Gästebüchern, Diskussionsforen, Linkverzeichnissen, Mailinglisten und in allen anderen Formen von Datenbanken, auf deren Inhalt externe Schreibzugriffe möglich sind. Für illegale, fehlerhafte oder unvollständige Inhalte und insbesondere für Schäden, die aus der Nutzung oder Nichtnutzung solcherart dargebotener Informationen entstehen, haftet allein der Anbieter der Seite, auf welche verwiesen wurde, nicht derjenige, der über Links auf die jeweilige Veröffentlichung lediglich verweist.

3. Urheber- und Kennzeichenrecht

Der Autor ist bestrebt, in allen Publikationen die Urheberrechte der verwendeten Bilder, Grafiken, Tondokumente, Videosequenzen und Texte zu beachten, von ihm selbst erstellte Bilder, Grafiken, Tondokumente, Videosequenzen und Texte zu nutzen oder auf lizenzfreie Grafiken, Tondokumente, Videosequenzen und Texte zurückzugreifen.

Alle innerhalb des Internetangebotes genannten und ggf. durch Dritte geschützten Marken- und Warenzeichen unterliegen uneingeschränkt den Bestimmungen des jeweils gültigen Kennzeichenrechts und den Besitzrechten der jeweiligen eingetragenen Eigentümer. Allein aufgrund der bloßen Nennung ist nicht der Schluss zu ziehen, dass Markenzeichen nicht durch Rechte Dritter geschützt sind!

Das Copyright für veröffentlichte, vom Autor selbst erstellte Objekte bleibt allein beim Autor der Seiten. Eine Vervielfältigung oder Verwendung solcher Grafiken, Tondokumente, Videosequenzen und Texte in anderen elektronischen oder gedruckten Publikationen ist ohne ausdrückliche Zustimmung des Autors nicht gestattet.

4. Datenschutz

Sofern innerhalb des Internetangebotes die Möglichkeit zur Eingabe persönlicher oder geschäftlicher Daten (Emailadressen, Namen, Anschriften) besteht, so erfolgt die Preisgabe dieser Daten seitens des Nutzers auf ausdrücklich freiwilliger Basis. Die Inanspruchnahme und Bezahlung aller angebotenen Dienste ist - soweit technisch möglich und zumutbar - auch ohne Angabe solcher Daten bzw. unter Angabe anonymisierter Daten oder eines Pseudonyms gestattet. Die Nutzung der im Rahmen des Impressums oder vergleichbarer Angaben veröffentlichten Kontaktdaten wie Postanschriften, Telefon- und Faxnummern sowie Emailadressen durch Dritte zur übersendung von nicht ausdrücklich angeforderten Informationen ist nicht gestattet. Rechtliche Schritte gegen die Versender von sogenannten Spam-Mails bei Verstössen gegen dieses Verbot sind ausdrücklich vorbehalten.

5. Rechtswirksamkeit dieses Haftungsausschlusses

Dieser Haftungsausschluss ist als Teil des Internetangebotes zu betrachten, von dem aus auf diese Seite verwiesen wurde. Sofern Teile oder einzelne Formulierungen dieses Textes der geltenden Rechtslage nicht, nicht mehr oder nicht vollständig entsprechen sollten, bleiben die übrigen Teile des Dokumentes in ihrem Inhalt und ihrer Gültigkeit davon unberührt.


LGPL License - KeePass

Help

LGPL License

GNU Lesser General Public License

          GNU LESSER GENERAL PUBLIC LICENSE
               Version 2.1, February 1999

 Copyright (C) 1991, 1999 Free Software Foundation, Inc.
     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

[This is the first released version of the Lesser GPL.  It also counts
 as the successor of the GNU Library Public License, version 2, hence
 the version number 2.1.]

                Preamble

  The licenses for most software are designed to take away your
freedom to share and change it.  By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.

  This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it.  You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.

  When we speak of free software, we are referring to freedom of use,
not price.  Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.

  To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights.  These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.

  For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you.  You must make sure that they, too, receive or can get the source
code.  If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it.  And you must show them these terms so they know their rights.

  We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.

  To protect each distributor, we want to make it very clear that
there is no warranty for the free library.  Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.

  Finally, software patents pose a constant threat to the existence of
any free program.  We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder.  Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.

  Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License.  This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License.  We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.

  When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library.  The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom.  The Lesser General
Public License permits more lax criteria for linking other code with
the library.

  We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License.  It also provides other free software developers Less
of an advantage over competing non-free programs.  These disadvantages
are the reason we use the ordinary General Public License for many
libraries.  However, the Lesser license provides advantages in certain
special circumstances.

  For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard.  To achieve this, non-free programs must be
allowed to use the library.  A more frequent case is that a free
library does the same job as widely used non-free libraries.  In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.

  In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software.  For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.

  Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.

  The precise terms and conditions for copying, distribution and
modification follow.  Pay close attention to the difference between a
"work based on the library" and a "work that uses the library".  The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.

          GNU LESSER GENERAL PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".

  A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.

  The "Library", below, refers to any such software library or work
which has been distributed under these terms.  A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language.  (Hereinafter, translation is
included without limitation in the term "modification".)

  "Source code" for a work means the preferred form of the work for
making modifications to it.  For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.

  Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope.  The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it).  Whether that is true depends on what the Library does
and what the program that uses the Library does.

  1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.

  You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.

  2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

    a) The modified work must itself be a software library.

    b) You must cause the files modified to carry prominent notices
    stating that you changed the files and the date of any change.

    c) You must cause the whole of the work to be licensed at no
    charge to all third parties under the terms of this License.

    d) If a facility in the modified Library refers to a function or a
    table of data to be supplied by an application program that uses
    the facility, other than as an argument passed when the facility
    is invoked, then you must make a good faith effort to ensure that,
    in the event an application does not supply such function or
    table, the facility still operates, and performs whatever part of
    its purpose remains meaningful.

    (For example, a function in a library to compute square roots has
    a purpose that is entirely well-defined independent of the
    application.  Therefore, Subsection 2d requires that any
    application-supplied function or table used by this function must
    be optional: if the application does not supply it, the square
    root function must still compute square roots.)

These requirements apply to the modified work as a whole.  If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works.  But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.

Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.

In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.

  3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library.  To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License.  (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.)  Do not make any other change in
these notices.

  Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.

  This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.

  4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.

  If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.

  5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library".  Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.

  However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library".  The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.

  When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library.  The
threshold for this to be true is not precisely defined by law.

  If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work.  (Executables containing this object code plus portions of the
Library will still fall under Section 6.)

  Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.

  6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.

  You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License.  You must supply a copy of this License.  If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License.  Also, you must do one
of these things:

    a) Accompany the work with the complete corresponding
    machine-readable source code for the Library including whatever
    changes were used in the work (which must be distributed under
    Sections 1 and 2 above); and, if the work is an executable linked
    with the Library, with the complete machine-readable "work that
    uses the Library", as object code and/or source code, so that the
    user can modify the Library and then relink to produce a modified
    executable containing the modified Library.  (It is understood
    that the user who changes the contents of definitions files in the
    Library will not necessarily be able to recompile the application
    to use the modified definitions.)

    b) Use a suitable shared library mechanism for linking with the
    Library.  A suitable mechanism is one that (1) uses at run time a
    copy of the library already present on the user's computer system,
    rather than copying library functions into the executable, and (2)
    will operate properly with a modified version of the library, if
    the user installs one, as long as the modified version is
    interface-compatible with the version that the work was made with.

    c) Accompany the work with a written offer, valid for at
    least three years, to give the same user the materials
    specified in Subsection 6a, above, for a charge no more
    than the cost of performing this distribution.

    d) If distribution of the work is made by offering access to copy
    from a designated place, offer equivalent access to copy the above
    specified materials from the same place.

    e) Verify that the user has already received a copy of these
    materials or that you have already sent this user a copy.

  For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it.  However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.

  It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system.  Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.

  7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:

    a) Accompany the combined library with a copy of the same work
    based on the Library, uncombined with any other library
    facilities.  This must be distributed under the terms of the
    Sections above.

    b) Give prominent notice with the combined library of the fact
    that part of it is a work based on the Library, and explaining
    where to find the accompanying uncombined form of the same work.

  8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License.  Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License.  However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.

  9. You are not required to accept this License, since you have not
signed it.  However, nothing else grants you permission to modify or
distribute the Library or its derivative works.  These actions are
prohibited by law if you do not accept this License.  Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.

  10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions.  You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.

  11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all.  For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.

If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices.  Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.

This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.

  12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded.  In such case, this License incorporates the limitation as if
written in the body of this License.

  13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.

Each version is given a distinguishing version number.  If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation.  If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.

  14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission.  For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this.  Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.

                NO WARRANTY

  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.

             END OF TERMS AND CONDITIONS

           How to Apply These Terms to Your New Libraries

  If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change.  You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).

  To apply these terms, attach the following notices to the library.  It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.

    <one line to give the library's name and a brief idea of what it does.>
    Copyright (C) <year>  <name of author>

    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2.1 of the License, or (at your option) any later version.

    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with this library; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

Also add information on how to contact you by electronic and paper mail.

You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary.  Here is a sample; alter the names:

  Yoyodyne, Inc., hereby disclaims all copyright interest in the
  library `Frob' (a library for tweaking knobs) written by James Random Hacker.

  <signature of Ty Coon>, 1 April 1990
  Ty Coon, President of Vice

That's all there is to it!


Übersetzungen - KeePass

Übersetzungen installieren

Wie man Übersetzungen für KeePass 1.x installiert.
  • Übersetzung für Benutzeroberfläche installieren
  • Zusätzliches übersetztes Material

Übersetzung für Benutzeroberfläche installieren

Die deutsche Übersetzung der Benutzeroberfläche lässt sich wie folgt installieren:

  1. Herunterladen der Übersetzungsdatei von Translations-Seite.
  2. Entpacken des heruntergeladenen ZIP-Archivs.
  3. Kopieren der Datei German.lng in das KeePass-Anwendungsverzeichnis (wo die KeePass.exe liegt).
  4. Starten von KeePass. Im Hauptmenü 'View' - 'Change Language...' auswählen. In dem Dialog der sich daraufhin öffnet, German auswählen. Den Dialog zum Neustarten von KeePass mit [Ja] bestätigen.

Das wars! Die komplette Benutzeroberfläche ist nun Deutsch!

Zusätzliches übersetztes Material

Zusätzliches deutsches Material findet sich auf der Translations-Seite.

Eine deutsche Hilfedatei existiert im Moment noch nicht.