From 13c561569893f42371fbbb741f79e19fc07dbe02 Mon Sep 17 00:00:00 2001 From: tarek_saidi Date: Fri, 10 Aug 2007 21:07:30 +0000 Subject: [PATCH] changed some copyright headers, added copying file, extended main qmake projekt file, implemented all file dialogs for kde, new icons (bug #1730334), automatic file extension, fixed show/hide behavior of the simple password dlg (bug #1722682) git-svn-id: https://svn.code.sf.net/p/keepassx/code/trunk@145 b624d157-de02-0410-bad0-e51aec6abb33 --- COPYING | 360 +++++++++++++++++++++++++ keepass.pro | 37 ++- share/keepass/icons/clientic.png | Bin 36050 -> 37238 bytes src/Database.cpp | 4 +- src/Database.h | 4 +- src/Kdb3Database.cpp | 8 +- src/Kdb3Database.h | 8 +- src/KpxConfig.cpp | 4 +- src/KpxConfig.h | 3 +- src/KpxFirefox.cpp | 4 +- src/KpxFirefox.h | 4 +- src/crypto/aes.h | 49 ++-- src/crypto/aes_modes.c | 57 ++-- src/crypto/aes_tdefs.h | 50 ++-- src/crypto/aescpp.h | 49 ++-- src/crypto/aescrypt.c | 50 ++-- src/crypto/aeskey.c | 50 ++-- src/crypto/aesopt.h | 50 ++-- src/crypto/aestab.c | 50 ++-- src/crypto/aestab.h | 51 ++-- src/crypto/arcfour.cpp | 4 +- src/crypto/arcfour.h | 6 +- src/crypto/blowfish.cpp | 47 ++-- src/crypto/blowfish.h | 25 +- src/crypto/sha1.cpp | 43 +-- src/crypto/sha1.h | 26 +- src/crypto/sha256.cpp | 6 +- src/crypto/sha256.h | 4 +- src/crypto/twoclass.cpp | 47 ++-- src/crypto/twoclass.h | 47 ++-- src/crypto/yarrow.cpp | 45 ++-- src/crypto/yarrow.h | 46 ++-- src/dialogs/AboutDlg.cpp | 4 +- src/dialogs/AboutDlg.h | 4 +- src/dialogs/CalendarDlg.cpp | 4 +- src/dialogs/CalendarDlg.h | 4 +- src/dialogs/CollectEntropyDlg.cpp | 4 +- src/dialogs/CollectEntropyDlg.h | 6 +- src/dialogs/CustomizeDetailViewDlg.cpp | 6 +- src/dialogs/CustomizeDetailViewDlg.h | 6 +- src/dialogs/DatabaseSettingsDlg.cpp | 4 +- src/dialogs/DatabaseSettingsDlg.h | 4 +- src/dialogs/EditEntryDlg.cpp | 4 +- src/dialogs/EditEntryDlg.h | 4 +- src/dialogs/EditGroupDlg.cpp | 4 +- src/dialogs/EditGroupDlg.h | 4 +- src/dialogs/ExpiredEntriesDlg.cpp | 4 +- src/dialogs/ExpiredEntriesDlg.h | 4 +- src/dialogs/PasswordDlg.cpp | 4 +- src/dialogs/PasswordDlg.h | 4 +- src/dialogs/PasswordGenDlg.cpp | 4 +- src/dialogs/PasswordGenDlg.h | 4 +- src/dialogs/SearchDlg.cpp | 4 +- src/dialogs/SearchDlg.h | 4 +- src/dialogs/SelectIconDlg.cpp | 5 +- src/dialogs/SelectIconDlg.h | 4 +- src/dialogs/SettingsDlg.cpp | 5 +- src/dialogs/SettingsDlg.h | 4 +- src/dialogs/SimplePasswordDlg.cpp | 16 +- src/dialogs/SimplePasswordDlg.h | 4 +- src/dialogs/TrashCanDlg.cpp | 4 +- src/dialogs/TrashCanDlg.h | 4 +- src/export/Export.cpp | 4 +- src/export/Export.h | 6 +- src/export/Export_KeePassX_Xml.cpp | 6 +- src/export/Export_KeePassX_Xml.h | 4 +- src/export/Export_Txt.cpp | 6 +- src/export/Export_Txt.h | 4 +- src/forms/SimplePasswordDlg.ui | 52 ++-- src/import/Import.cpp | 6 +- src/import/Import.h | 4 +- src/import/Import_KWalletXml.cpp | 6 +- src/import/Import_KWalletXml.h | 4 +- src/import/Import_KeePassX_Xml.cpp | 4 +- src/import/Import_KeePassX_Xml.h | 6 +- src/import/Import_PwManager.cpp | 6 +- src/import/Import_PwManager.h | 4 +- src/lib/AutoType.h | 4 +- src/lib/AutoType_Win.cpp | 4 +- src/lib/AutoType_X11.cpp | 4 +- src/lib/EntryView.cpp | 4 +- src/lib/EntryView.h | 4 +- src/lib/FileDialogs.cpp | 30 ++- src/lib/FileDialogs.h | 4 +- src/lib/GroupView.cpp | 3 +- src/lib/GroupView.h | 4 +- src/lib/KpFileIconProvider.cpp | 4 +- src/lib/KpFileIconProvider.h | 6 +- src/lib/SecString.cpp | 6 +- src/lib/SecString.h | 4 +- src/lib/UrlLabel.cpp | 4 +- src/lib/UrlLabel.h | 6 +- src/lib/WaitAnimationWidget.cpp | 4 +- src/lib/WaitAnimationWidget.h | 4 +- src/lib/random.cpp | 4 +- src/lib/random.h | 6 +- src/main.h | 6 +- src/mainwindow.cpp | 5 +- src/mainwindow.h | 3 +- src/plugins/gnome/keepassx-gnome.cpp | 6 +- src/plugins/gnome/keepassx-gnome.h | 6 +- src/plugins/interfaces/IFileDialog.h | 6 +- src/plugins/interfaces/IGnomeInit.h | 4 +- src/plugins/interfaces/IKdeInit.h | 4 +- src/plugins/kde/keepassx-kde.cpp | 58 +++- src/plugins/kde/keepassx-kde.h | 4 +- src/src.pro | 3 - 107 files changed, 1035 insertions(+), 679 deletions(-) create mode 100644 COPYING diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..322a7ca --- /dev/null +++ b/COPYING @@ -0,0 +1,360 @@ +Copyright (C) 2005-2007 Tarek Saidi +Copyright (C) 2003-2007 Dominik Reichl +Copyright (C) 2001 Niels Müler +Copyright (C) 1998, 2001, 2002 Free Software Foundation, Inc. +Copyright (C) 2003, 2004 Michael Buesch +Copyright (c) 2003 Dr Brian Gladman, Worcester, UK +Copyright (C) 2001-2003 Christophe Devine +Copyright (C) 1992-2007 Trolltech ASA + +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; version 2 of the license. + +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 +text of the GNU General Public License below for more details. + +--------------------------------------------------------------------------- + + 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 Library 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. + + GNU GENERAL PUBLIC LICENSE + 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. + + + Copyright (C) 19yy + + 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) 19yy 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. + + , 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 Library General +Public License instead of this License. diff --git a/keepass.pro b/keepass.pro index 6bce9ee..61dc0f5 100755 --- a/keepass.pro +++ b/keepass.pro @@ -1,9 +1,28 @@ -# Diese Datei wurde mit dem qmake-Manager von KDevelop erstellt. -# ------------------------------------------- -# Unterverzeichnis relativ zum Projektverzeichnis: . -# Das Target ist Projekt im Unterverzeichnis - -CONFIG += release \ - warn_on -TEMPLATE = subdirs -SUBDIRS += src +message("See 'Install.txt' for configuration options.") +message("*** Build Configuration:") +TEMPLATE = subdirs +isEmpty(PREFIX){ + PREFIX = /usr +} +isEmpty(KDEDIR){ + KDEDIR = /usr +} +SUBDIRS += src +contains(INT_PLUGINS,kde) { + SUBDIRS +=src/plugins/kde + message("Build KDE Plugin: yes") +} +!contains(INT_PLUGINS,kde) { + message("Build KDE Plugin: no") +} +contains(INT_PLUGINS,gtk) { + SUBDIRS +=src/plugins/gnome + message("Build Gnome Plugin: yes") +} +!contains(INT_PLUGINS,gtk) { + message("Build Gnome Plugin: no") +} +message("Install Prefix:" $$PREFIX) +message("KDE Prefix:" $$KDEDIR) +message("*** Makefile successfully generated.") +message("*** Start make now.") \ No newline at end of file diff --git a/share/keepass/icons/clientic.png b/share/keepass/icons/clientic.png index 8585b799c5dd149c6c8a369a15d083609bb6ff71..0637614c336a417f97683020af099bebf76108a2 100755 GIT binary patch literal 37238 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 i^4&T{Oq%93Lj7NX_C=2BMqUsA0000 Kdb3Database::trashEntries(){ if(TrashHandles[i].isValid()) handles << &TrashHandles[i]; return handles; -} \ No newline at end of file +} diff --git a/src/Kdb3Database.h b/src/Kdb3Database.h index 7591546..f2154d9 100644 --- a/src/Kdb3Database.h +++ b/src/Kdb3Database.h @@ -1,11 +1,10 @@ /*************************************************************************** * Copyright (C) 2005-2007 by Tarek Saidi * - * keepassx@gmail.com * + * tarek.saidi@arcor.de * * * * 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. * + * the Free Software Foundation; version 2 of the License. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -39,6 +38,7 @@ #include #include #include +#include "main.h" #include "lib/SecString.h" #include "Database.h" @@ -168,7 +168,7 @@ public: virtual void addIcon(const QPixmap& icon); virtual void removeIcon(int index); virtual void replaceIcon(int index,const QPixmap& icon); - virtual int builtinIcons(){return 62;}; + virtual int builtinIcons(){return BUILTIN_ICONS;}; virtual void authByPwd(QString& password); virtual bool authByFile(QString& filename); virtual bool authByFileAndPwd(QString& password, QString& filename); diff --git a/src/KpxConfig.cpp b/src/KpxConfig.cpp index 174969e..00f9bcc 100644 --- a/src/KpxConfig.cpp +++ b/src/KpxConfig.cpp @@ -7,8 +7,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/KpxConfig.h b/src/KpxConfig.h index 665ca54..ce7df09 100644 --- a/src/KpxConfig.h +++ b/src/KpxConfig.h @@ -7,8 +7,7 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/KpxFirefox.cpp b/src/KpxFirefox.cpp index c4ef8fa..93c8b6a 100644 --- a/src/KpxFirefox.cpp +++ b/src/KpxFirefox.cpp @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/KpxFirefox.h b/src/KpxFirefox.h index 043f23d..1ce50f7 100644 --- a/src/KpxFirefox.h +++ b/src/KpxFirefox.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/crypto/aes.h b/src/crypto/aes.h index 91f2506..449a940 100644 --- a/src/crypto/aes.h +++ b/src/crypto/aes.h @@ -1,33 +1,24 @@ + /************************************************************************** + * * + * Copyright (C) 2007 by Tarek Saidi * + * Copyright (c) 2003 Dr Brian Gladman, Worcester, UK * + * * + * 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; version 2 of the License. * + * * + * 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., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + /* - --------------------------------------------------------------------------- - Copyright (c) 2003, Dr Brian Gladman, Worcester, UK. All rights reserved. - - LICENSE TERMS - - The free distribution and use of this software in both source and binary - form is allowed (with or without changes) provided that: - - 1. distributions of this source code include the above copyright - notice, this list of conditions and the following disclaimer; - - 2. distributions in binary form include the above copyright - notice, this list of conditions and the following disclaimer - in the documentation and/or other associated materials; - - 3. the copyright holder's name is not used to endorse products - built using this software without specific written permission. - - ALTERNATIVELY, provided that this notice is retained in full, this product - may be distributed under the terms of the GNU General Public License (GPL), - in which case the provisions of the GPL apply INSTEAD OF those given above. - - DISCLAIMER - - This software is provided 'as is' with no explicit or implied warranties - in respect of its properties, including, but not limited to, correctness - and/or fitness for purpose. - --------------------------------------------------------------------------- - Issue 31/01/2006 This file contains the definitions required to use AES in C. See aesopt.h for optimisation details. diff --git a/src/crypto/aes_modes.c b/src/crypto/aes_modes.c index 8b29db5..7ecc7eb 100644 --- a/src/crypto/aes_modes.c +++ b/src/crypto/aes_modes.c @@ -1,41 +1,22 @@ -/* - --------------------------------------------------------------------------- - Copyright (c) 2003, Dr Brian Gladman, Worcester, UK. All rights reserved. - - LICENSE TERMS - - The free distribution and use of this software in both source and binary - form is allowed (with or without changes) provided that: - - 1. distributions of this source code include the above copyright - notice, this list of conditions and the following disclaimer; - - 2. distributions in binary form include the above copyright - notice, this list of conditions and the following disclaimer - in the documentation and/or other associated materials; - - 3. the copyright holder's name is not used to endorse products - built using this software without specific written permission. - - ALTERNATIVELY, provided that this notice is retained in full, this product - may be distributed under the terms of the GNU General Public License (GPL), - in which case the provisions of the GPL apply INSTEAD OF those given above. - - DISCLAIMER - - This software is provided 'as is' with no explicit or implied warranties - in respect of its properties, including, but not limited to, correctness - and/or fitness for purpose. - --------------------------------------------------------------------------- - Issue 31/01/2006 - - These subroutines implement multiple block AES modes for ECB, CBC, CFB, - OFB and CTR encryption, The code provides support for the VIA Advanced - Cryptography Engine (ACE). - - NOTE: In the following subroutines, the AES contexts (ctx) must be - 16 byte aligned if VIA ACE is being used -*/ + /************************************************************************** + * * + * Copyright (C) 2007 by Tarek Saidi * + * Copyright (c) 2003 Dr Brian Gladman, Worcester, UK * + * * + * 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; version 2 of the License. * + * * + * 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., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ #include #include diff --git a/src/crypto/aes_tdefs.h b/src/crypto/aes_tdefs.h index 8f2bc7b..3ba9d0b 100644 --- a/src/crypto/aes_tdefs.h +++ b/src/crypto/aes_tdefs.h @@ -1,34 +1,24 @@ -/* - --------------------------------------------------------------------------- - Copyright (c) 2003, Dr Brian Gladman, Worcester, UK. All rights reserved. - - LICENSE TERMS - - The free distribution and use of this software in both source and binary - form is allowed (with or without changes) provided that: - - 1. distributions of this source code include the above copyright - notice, this list of conditions and the following disclaimer; - - 2. distributions in binary form include the above copyright - notice, this list of conditions and the following disclaimer - in the documentation and/or other associated materials; - - 3. the copyright holder's name is not used to endorse products - built using this software without specific written permission. - - ALTERNATIVELY, provided that this notice is retained in full, this product - may be distributed under the terms of the GNU General Public License (GPL), - in which case the provisions of the GPL apply INSTEAD OF those given above. - - DISCLAIMER - - This software is provided 'as is' with no explicit or implied warranties - in respect of its properties, including, but not limited to, correctness - and/or fitness for purpose. - --------------------------------------------------------------------------- - Issue 31/01/2006 + /************************************************************************** + * * + * Copyright (C) 2007 by Tarek Saidi * + * Copyright (c) 2003 Dr Brian Gladman, Worcester, UK * + * * + * 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; version 2 of the License. * + * * + * 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., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ +/* The unsigned integer types defined here are of the form uint_t where is the length of the type; for example, the unsigned 32-bit type is 'uint_32t'. These are NOT the same as the 'C99 integer types' that are diff --git a/src/crypto/aescpp.h b/src/crypto/aescpp.h index 7769b7d..471badb 100644 --- a/src/crypto/aescpp.h +++ b/src/crypto/aescpp.h @@ -1,33 +1,24 @@ -/* - --------------------------------------------------------------------------- - Copyright (c) 2003, Dr Brian Gladman, Worcester, UK. All rights reserved. - - LICENSE TERMS - - The free distribution and use of this software in both source and binary - form is allowed (with or without changes) provided that: - - 1. distributions of this source code include the above copyright - notice, this list of conditions and the following disclaimer; - - 2. distributions in binary form include the above copyright - notice, this list of conditions and the following disclaimer - in the documentation and/or other associated materials; + /************************************************************************** + * * + * Copyright (C) 2007 by Tarek Saidi * + * Copyright (c) 2003 Dr Brian Gladman, Worcester, UK * + * * + * 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; version 2 of the License. * + * * + * 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., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ - 3. the copyright holder's name is not used to endorse products - built using this software without specific written permission. - - ALTERNATIVELY, provided that this notice is retained in full, this product - may be distributed under the terms of the GNU General Public License (GPL), - in which case the provisions of the GPL apply INSTEAD OF those given above. - - DISCLAIMER - - This software is provided 'as is' with no explicit or implied warranties - in respect of its properties, including, but not limited to, correctness - and/or fitness for purpose. - --------------------------------------------------------------------------- - Issue 31/01/2006 +/* This file contains the definitions required to use AES (Rijndael) in C++. */ diff --git a/src/crypto/aescrypt.c b/src/crypto/aescrypt.c index 94fe4da..ef58702 100644 --- a/src/crypto/aescrypt.c +++ b/src/crypto/aescrypt.c @@ -1,34 +1,22 @@ -/* - --------------------------------------------------------------------------- - Copyright (c) 2003, Dr Brian Gladman, Worcester, UK. All rights reserved. - - LICENSE TERMS - - The free distribution and use of this software in both source and binary - form is allowed (with or without changes) provided that: - - 1. distributions of this source code include the above copyright - notice, this list of conditions and the following disclaimer; - - 2. distributions in binary form include the above copyright - notice, this list of conditions and the following disclaimer - in the documentation and/or other associated materials; - - 3. the copyright holder's name is not used to endorse products - built using this software without specific written permission. - - ALTERNATIVELY, provided that this notice is retained in full, this product - may be distributed under the terms of the GNU General Public License (GPL), - in which case the provisions of the GPL apply INSTEAD OF those given above. - - DISCLAIMER - - This software is provided 'as is' with no explicit or implied warranties - in respect of its properties, including, but not limited to, correctness - and/or fitness for purpose. - --------------------------------------------------------------------------- - Issue 31/01/2006 -*/ + /************************************************************************** + * * + * Copyright (C) 2007 by Tarek Saidi * + * Copyright (c) 2003 Dr Brian Gladman, Worcester, UK * + * * + * 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; version 2 of the License. * + * * + * 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., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ #include "aesopt.h" #include "aestab.h" diff --git a/src/crypto/aeskey.c b/src/crypto/aeskey.c index 8fdeece..2effb68 100644 --- a/src/crypto/aeskey.c +++ b/src/crypto/aeskey.c @@ -1,34 +1,22 @@ -/* - --------------------------------------------------------------------------- - Copyright (c) 2003, Dr Brian Gladman, Worcester, UK. All rights reserved. - - LICENSE TERMS - - The free distribution and use of this software in both source and binary - form is allowed (with or without changes) provided that: - - 1. distributions of this source code include the above copyright - notice, this list of conditions and the following disclaimer; - - 2. distributions in binary form include the above copyright - notice, this list of conditions and the following disclaimer - in the documentation and/or other associated materials; - - 3. the copyright holder's name is not used to endorse products - built using this software without specific written permission. - - ALTERNATIVELY, provided that this notice is retained in full, this product - may be distributed under the terms of the GNU General Public License (GPL), - in which case the provisions of the GPL apply INSTEAD OF those given above. - - DISCLAIMER - - This software is provided 'as is' with no explicit or implied warranties - in respect of its properties, including, but not limited to, correctness - and/or fitness for purpose. - --------------------------------------------------------------------------- - Issue 31/01/2006 -*/ + /************************************************************************** + * * + * Copyright (C) 2007 by Tarek Saidi * + * Copyright (c) 2003 Dr Brian Gladman, Worcester, UK * + * * + * 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; version 2 of the License. * + * * + * 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., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ #include "aesopt.h" #include "aestab.h" diff --git a/src/crypto/aesopt.h b/src/crypto/aesopt.h index fd7c674..11880f2 100644 --- a/src/crypto/aesopt.h +++ b/src/crypto/aesopt.h @@ -1,34 +1,24 @@ + /************************************************************************** + * * + * Copyright (C) 2007 by Tarek Saidi * + * Copyright (c) 2003 Dr Brian Gladman, Worcester, UK * + * * + * 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; version 2 of the License. * + * * + * 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., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + /* - --------------------------------------------------------------------------- - Copyright (c) 2003, Dr Brian Gladman, Worcester, UK. All rights reserved. - - LICENSE TERMS - - The free distribution and use of this software in both source and binary - form is allowed (with or without changes) provided that: - - 1. distributions of this source code include the above copyright - notice, this list of conditions and the following disclaimer; - - 2. distributions in binary form include the above copyright - notice, this list of conditions and the following disclaimer - in the documentation and/or other associated materials; - - 3. the copyright holder's name is not used to endorse products - built using this software without specific written permission. - - ALTERNATIVELY, provided that this notice is retained in full, this product - may be distributed under the terms of the GNU General Public License (GPL), - in which case the provisions of the GPL apply INSTEAD OF those given above. - - DISCLAIMER - - This software is provided 'as is' with no explicit or implied warranties - in respect of its properties, including, but not limited to, correctness - and/or fitness for purpose. - --------------------------------------------------------------------------- - Issue 31/01/2006 - This file contains the compilation options for AES (Rijndael) and code that is common across encryption, key scheduling and table generation. diff --git a/src/crypto/aestab.c b/src/crypto/aestab.c index 14c7fb2..aa7a6c1 100644 --- a/src/crypto/aestab.c +++ b/src/crypto/aestab.c @@ -1,34 +1,22 @@ -/* - --------------------------------------------------------------------------- - Copyright (c) 2003, Dr Brian Gladman, Worcester, UK. All rights reserved. - - LICENSE TERMS - - The free distribution and use of this software in both source and binary - form is allowed (with or without changes) provided that: - - 1. distributions of this source code include the above copyright - notice, this list of conditions and the following disclaimer; - - 2. distributions in binary form include the above copyright - notice, this list of conditions and the following disclaimer - in the documentation and/or other associated materials; - - 3. the copyright holder's name is not used to endorse products - built using this software without specific written permission. - - ALTERNATIVELY, provided that this notice is retained in full, this product - may be distributed under the terms of the GNU General Public License (GPL), - in which case the provisions of the GPL apply INSTEAD OF those given above. - - DISCLAIMER - - This software is provided 'as is' with no explicit or implied warranties - in respect of its properties, including, but not limited to, correctness - and/or fitness for purpose. - --------------------------------------------------------------------------- - Issue 31/01/2006 -*/ + /************************************************************************** + * * + * Copyright (C) 2007 by Tarek Saidi * + * Copyright (c) 2003 Dr Brian Gladman, Worcester, UK * + * * + * 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; version 2 of the License. * + * * + * 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., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ #define DO_TABLES diff --git a/src/crypto/aestab.h b/src/crypto/aestab.h index 7cf8100..9c454f1 100644 --- a/src/crypto/aestab.h +++ b/src/crypto/aestab.h @@ -1,33 +1,24 @@ -/* - --------------------------------------------------------------------------- - Copyright (c) 2003, Dr Brian Gladman, Worcester, UK. All rights reserved. - - LICENSE TERMS - - The free distribution and use of this software in both source and binary - form is allowed (with or without changes) provided that: - - 1. distributions of this source code include the above copyright - notice, this list of conditions and the following disclaimer; - - 2. distributions in binary form include the above copyright - notice, this list of conditions and the following disclaimer - in the documentation and/or other associated materials; - - 3. the copyright holder's name is not used to endorse products - built using this software without specific written permission. - - ALTERNATIVELY, provided that this notice is retained in full, this product - may be distributed under the terms of the GNU General Public License (GPL), - in which case the provisions of the GPL apply INSTEAD OF those given above. - - DISCLAIMER - - This software is provided 'as is' with no explicit or implied warranties - in respect of its properties, including, but not limited to, correctness - and/or fitness for purpose. - --------------------------------------------------------------------------- - Issue 31/01/2006 + /************************************************************************** + * * + * Copyright (C) 2007 by Tarek Saidi * + * Copyright (c) 2003 Dr Brian Gladman, Worcester, UK * + * * + * 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; version 2 of the License. * + * * + * 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., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + + /* This file contains the code for declaring the tables needed to implement AES. The file aesopt.h is assumed to be included before this header file. diff --git a/src/crypto/arcfour.cpp b/src/crypto/arcfour.cpp index cc47d39..3d0c923 100644 --- a/src/crypto/arcfour.cpp +++ b/src/crypto/arcfour.cpp @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/crypto/arcfour.h b/src/crypto/arcfour.h index a1b2147..84a3efe 100644 --- a/src/crypto/arcfour.h +++ b/src/crypto/arcfour.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -42,4 +42,4 @@ private: }; -#endif \ No newline at end of file +#endif diff --git a/src/crypto/blowfish.cpp b/src/crypto/blowfish.cpp index 2495ee3..8050dd5 100644 --- a/src/crypto/blowfish.cpp +++ b/src/crypto/blowfish.cpp @@ -1,28 +1,25 @@ -/* 2003.05.02: Derived from libgcrypt-1.1.12 by Michael Buesch */ - -/* blowfish.c - Blowfish encryption - * Copyright (C) 1998, 2001, 2002 Free Software Foundation, Inc. - * - * This file is part of Libgcrypt. - * - * Libgcrypt 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. - * - * Libgcrypt 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 program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - * - * For a description of the algorithm, see: - * Bruce Schneier: Applied Cryptography. John Wiley & Sons, 1996. - * ISBN 0-471-11709-9. Pages 336 ff. - */ + /************************************************************************** + * Implementation of the Blowfish chiper * + * Derived from Libgcrypt * + * * + * Copyright (C) 1998, 2001, 2002 Free Software Foundation, Inc. * + * Copyright (C) 2003 by Michael Buesch * + * Copyright (C) 2007 by Tarek Saidi * + * * + * 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; version 2 of the License. * + * * + * 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., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ /* Test values: * key "abcdefghijklmnopqrstuvwxyz"; diff --git a/src/crypto/blowfish.h b/src/crypto/blowfish.h index e384992..06bce4b 100644 --- a/src/crypto/blowfish.h +++ b/src/crypto/blowfish.h @@ -1,15 +1,24 @@ -/*************************************************************************** + /************************************************************************** + * Implementation of the Blowfish chiper * + * Derived from Libgcrypt * * * - * copyright (C) 2003, 2004 by Michael Buesch * - * email: mbuesch@freenet.de * - * * - * blowfish.c - Blowfish encryption * - * Copyright (C) 1998, 2001, 2002 Free Software Foundation, Inc. * + * Copyright (C) 1998, 2001, 2002 Free Software Foundation, Inc. * + * Copyright (C) 2003, 2004 by Michael Buesch * + * Copyright (C) 2007 by Tarek Saidi * * * * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2 * - * as published by the Free Software Foundation. * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; version 2 of the License. * + * * + * 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., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ #ifndef BLOWFISH_H diff --git a/src/crypto/sha1.cpp b/src/crypto/sha1.cpp index f3a4450..24255ab 100644 --- a/src/crypto/sha1.cpp +++ b/src/crypto/sha1.cpp @@ -1,24 +1,25 @@ -/* - 100% free public domain implementation of the SHA-1 algorithm - by Dominik Reichl - - Version 1.5 - 2005-01-01 - - 64-bit compiler compatibility added - - Made variable wiping optional (define SHA1_WIPE_VARIABLES) - - Removed unnecessary variable initializations - - ROL32 improvement for the Microsoft compiler (using _rotl) - - ======== Test Vectors (from FIPS PUB 180-1) ======== - - SHA1("abc") = - A9993E36 4706816A BA3E2571 7850C26C 9CD0D89D - - SHA1("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq") = - 84983E44 1C3BD26E BAAE4AA1 F95129E5 E54670F1 - - SHA1(A million repetitions of "a") = - 34AA973C D4C4DAA4 F61EEB2B DBAD2731 6534016F -*/ +/*************************************************************************** + * Implementation of the SHA-1 algorithm * + * by Dominik Reichl (public domain) * + * * + * Copyright (C) 2007 by Tarek Saidi * + * tarek.saidi@arcor.de * + * * + * 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; version 2 of the License. * + * * + * 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., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + #include "global.h" #include "sha1.h" diff --git a/src/crypto/sha1.h b/src/crypto/sha1.h index 4fbbad6..455d059 100644 --- a/src/crypto/sha1.h +++ b/src/crypto/sha1.h @@ -1,7 +1,27 @@ -/* - 100% free public domain implementation of the SHA-1 algorithm - by Dominik Reichl +/*************************************************************************** + * Implementation of the SHA-1 algorithm * + * by Dominik Reichl (no copyright) * + * * + * Copyright (C) 2007 by Tarek Saidi * + * tarek.saidi@arcor.de * + * * + * 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; version 2 of the License. * + * * + * 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., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +/* Version 1.5 - 2005-01-01 - 64-bit compiler compatibility added - Made variable wiping optional (define SHA1_WIPE_VARIABLES) diff --git a/src/crypto/sha256.cpp b/src/crypto/sha256.cpp index 85f008b..b171bff 100644 --- a/src/crypto/sha256.cpp +++ b/src/crypto/sha256.cpp @@ -5,8 +5,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -265,4 +265,4 @@ void sha256_finish( sha256_context *ctx, quint8 digest[32] ) PUT_qquint32( ctx->state[5], digest, 20 ); PUT_qquint32( ctx->state[6], digest, 24 ); PUT_qquint32( ctx->state[7], digest, 28 ); -} \ No newline at end of file +} diff --git a/src/crypto/sha256.h b/src/crypto/sha256.h index 583f96a..e3b852a 100755 --- a/src/crypto/sha256.h +++ b/src/crypto/sha256.h @@ -5,8 +5,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/crypto/twoclass.cpp b/src/crypto/twoclass.cpp index 94c3fa4..471f710 100755 --- a/src/crypto/twoclass.cpp +++ b/src/crypto/twoclass.cpp @@ -1,31 +1,22 @@ -/* - Copyright (c) 2003/2004, Dominik Reichl - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - - Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - Neither the name of ReichlSoft nor the names of its contributors may be - used to endorse or promote products derived from this software without - specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ +/*************************************************************************** + * Copyright (C) 2005-2007 Tarek Saidi * + * Copyright (c) 2003,2004 Dominik Reichl * + * * + * 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; version 2 of the License. * + * * + * 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., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + #include #include "twoclass.h" diff --git a/src/crypto/twoclass.h b/src/crypto/twoclass.h index c96b3c9..10a728c 100755 --- a/src/crypto/twoclass.h +++ b/src/crypto/twoclass.h @@ -1,31 +1,22 @@ -/* - Copyright (c) 2003/2004, Dominik Reichl - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - - Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - Neither the name of ReichlSoft nor the names of its contributors may be - used to endorse or promote products derived from this software without - specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ +/*************************************************************************** + * Copyright (C) 2005-2007 Tarek Saidi * + * Copyright (c) 2003,2004 Dominik Reichl * + * * + * 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; version 2 of the License. * + * * + * 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., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + #ifndef ___TWOFISH_CLASS_H___ #define ___TWOFISH_CLASS_H___ diff --git a/src/crypto/yarrow.cpp b/src/crypto/yarrow.cpp index 4d68fbd..ed13e60 100644 --- a/src/crypto/yarrow.cpp +++ b/src/crypto/yarrow.cpp @@ -1,27 +1,24 @@ -/* yarrow256.c - * - * The yarrow pseudo-randomness generator. - */ - -/* nettle, low-level cryptographics library - * - * Copyright (C) 2001 Niels M�ler - * - * The nettle 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. - * - * The nettle 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 the nettle library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA 02111-1307, USA. - */ +/*************************************************************************** + * The yarrow pseudo-randomness genrator * + * extracted from nettle, the low-level cryptographics library * + * * + * Copyright (C) 2007 Tarek Saidi * + * Copyright (C) 2001 Niels Müler * + * * + * 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; version 2 of the License. * + * * + * 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., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ #if HAVE_CONFIG_H # include "config.h" diff --git a/src/crypto/yarrow.h b/src/crypto/yarrow.h index 4c2c290..99a4c87 100644 --- a/src/crypto/yarrow.h +++ b/src/crypto/yarrow.h @@ -1,27 +1,25 @@ -/* yarrow.h - * - * The yarrow pseudo-randomness generator. - */ - -/* nettle, low-level cryptographics library - * - * Copyright (C) 2001 Niels M�ler - * - * The nettle 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. - * - * The nettle 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 the nettle library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA 02111-1307, USA. - */ +/*************************************************************************** + * The yarrow pseudo-randomness genrator * + * extracted from nettle, the low-level cryptographics library * + * * + * Copyright (C) 2007 Tarek Saidi * + * Copyright (C) 2001 Niels Müler * + * * + * 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; version 2 of the License. * + * * + * 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., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + #ifndef NETTLE_YARROW_COMPAT_H_INCLUDED #define NETTLE_YARROW_COMPAT_H_INCLUDED diff --git a/src/dialogs/AboutDlg.cpp b/src/dialogs/AboutDlg.cpp index 3cb824a..cd182ae 100755 --- a/src/dialogs/AboutDlg.cpp +++ b/src/dialogs/AboutDlg.cpp @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/dialogs/AboutDlg.h b/src/dialogs/AboutDlg.h index a0af8a4..bd96c1e 100755 --- a/src/dialogs/AboutDlg.h +++ b/src/dialogs/AboutDlg.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/dialogs/CalendarDlg.cpp b/src/dialogs/CalendarDlg.cpp index dc33629..d6c3f18 100644 --- a/src/dialogs/CalendarDlg.cpp +++ b/src/dialogs/CalendarDlg.cpp @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/dialogs/CalendarDlg.h b/src/dialogs/CalendarDlg.h index 2c46021..825a177 100644 --- a/src/dialogs/CalendarDlg.h +++ b/src/dialogs/CalendarDlg.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/dialogs/CollectEntropyDlg.cpp b/src/dialogs/CollectEntropyDlg.cpp index 91a32e7..f64aa3e 100644 --- a/src/dialogs/CollectEntropyDlg.cpp +++ b/src/dialogs/CollectEntropyDlg.cpp @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/dialogs/CollectEntropyDlg.h b/src/dialogs/CollectEntropyDlg.h index 3973d0b..c68b9cb 100644 --- a/src/dialogs/CollectEntropyDlg.h +++ b/src/dialogs/CollectEntropyDlg.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -51,4 +51,4 @@ class CollectEntropyDlg: public QDialog, public Ui_CollectEntropyDlg{ -#endif \ No newline at end of file +#endif diff --git a/src/dialogs/CustomizeDetailViewDlg.cpp b/src/dialogs/CustomizeDetailViewDlg.cpp index 419eaf1..4f5a641 100644 --- a/src/dialogs/CustomizeDetailViewDlg.cpp +++ b/src/dialogs/CustomizeDetailViewDlg.cpp @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -214,4 +214,4 @@ void CustomizeDetailViewDialog::OnRestoreDefault(){ loadDefaultDetailViewTemplate(); HtmlEdit->setPlainText(DetailViewTemplate); RichEdit->setHtml(DetailViewTemplate); -} \ No newline at end of file +} diff --git a/src/dialogs/CustomizeDetailViewDlg.h b/src/dialogs/CustomizeDetailViewDlg.h index 83cf4dc..17ad844 100644 --- a/src/dialogs/CustomizeDetailViewDlg.h +++ b/src/dialogs/CustomizeDetailViewDlg.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -52,4 +52,4 @@ class CustomizeDetailViewDialog : public QDialog, public Ui_CustomizeDetailViewD }; -#endif \ No newline at end of file +#endif diff --git a/src/dialogs/DatabaseSettingsDlg.cpp b/src/dialogs/DatabaseSettingsDlg.cpp index ac9faf9..eba87df 100755 --- a/src/dialogs/DatabaseSettingsDlg.cpp +++ b/src/dialogs/DatabaseSettingsDlg.cpp @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/dialogs/DatabaseSettingsDlg.h b/src/dialogs/DatabaseSettingsDlg.h index 2a8abe5..867c335 100755 --- a/src/dialogs/DatabaseSettingsDlg.h +++ b/src/dialogs/DatabaseSettingsDlg.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/dialogs/EditEntryDlg.cpp b/src/dialogs/EditEntryDlg.cpp index c719e09..06448c8 100755 --- a/src/dialogs/EditEntryDlg.cpp +++ b/src/dialogs/EditEntryDlg.cpp @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/dialogs/EditEntryDlg.h b/src/dialogs/EditEntryDlg.h index 753b070..72c7bbb 100755 --- a/src/dialogs/EditEntryDlg.h +++ b/src/dialogs/EditEntryDlg.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/dialogs/EditGroupDlg.cpp b/src/dialogs/EditGroupDlg.cpp index 403bb76..fe3d34d 100755 --- a/src/dialogs/EditGroupDlg.cpp +++ b/src/dialogs/EditGroupDlg.cpp @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/dialogs/EditGroupDlg.h b/src/dialogs/EditGroupDlg.h index 37810d8..02e28bb 100755 --- a/src/dialogs/EditGroupDlg.h +++ b/src/dialogs/EditGroupDlg.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/dialogs/ExpiredEntriesDlg.cpp b/src/dialogs/ExpiredEntriesDlg.cpp index 4b05469..f2ceb3e 100644 --- a/src/dialogs/ExpiredEntriesDlg.cpp +++ b/src/dialogs/ExpiredEntriesDlg.cpp @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/dialogs/ExpiredEntriesDlg.h b/src/dialogs/ExpiredEntriesDlg.h index b60c90b..c916e2d 100644 --- a/src/dialogs/ExpiredEntriesDlg.h +++ b/src/dialogs/ExpiredEntriesDlg.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/dialogs/PasswordDlg.cpp b/src/dialogs/PasswordDlg.cpp index 31f9fdf..ee9d0e2 100755 --- a/src/dialogs/PasswordDlg.cpp +++ b/src/dialogs/PasswordDlg.cpp @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/dialogs/PasswordDlg.h b/src/dialogs/PasswordDlg.h index a3f9d47..fef9f8f 100755 --- a/src/dialogs/PasswordDlg.h +++ b/src/dialogs/PasswordDlg.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/dialogs/PasswordGenDlg.cpp b/src/dialogs/PasswordGenDlg.cpp index 6c40e3c..719e872 100755 --- a/src/dialogs/PasswordGenDlg.cpp +++ b/src/dialogs/PasswordGenDlg.cpp @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/dialogs/PasswordGenDlg.h b/src/dialogs/PasswordGenDlg.h index d502349..ef8c464 100755 --- a/src/dialogs/PasswordGenDlg.h +++ b/src/dialogs/PasswordGenDlg.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/dialogs/SearchDlg.cpp b/src/dialogs/SearchDlg.cpp index a75c36b..79ef148 100755 --- a/src/dialogs/SearchDlg.cpp +++ b/src/dialogs/SearchDlg.cpp @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/dialogs/SearchDlg.h b/src/dialogs/SearchDlg.h index 58c099e..26c2ca2 100755 --- a/src/dialogs/SearchDlg.h +++ b/src/dialogs/SearchDlg.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/dialogs/SelectIconDlg.cpp b/src/dialogs/SelectIconDlg.cpp index 8338168..fef205f 100644 --- a/src/dialogs/SelectIconDlg.cpp +++ b/src/dialogs/SelectIconDlg.cpp @@ -4,8 +4,7 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -124,4 +123,4 @@ void CSelectIconDlg::showEvent(QShowEvent *event){ updateView(); List->setCurrentItem(List->item(Id)); } -} \ No newline at end of file +} diff --git a/src/dialogs/SelectIconDlg.h b/src/dialogs/SelectIconDlg.h index 2a9e6b4..2ef9b1f 100644 --- a/src/dialogs/SelectIconDlg.h +++ b/src/dialogs/SelectIconDlg.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/dialogs/SettingsDlg.cpp b/src/dialogs/SettingsDlg.cpp index f6f437f..fe30da4 100755 --- a/src/dialogs/SettingsDlg.cpp +++ b/src/dialogs/SettingsDlg.cpp @@ -1,11 +1,10 @@ /*************************************************************************** * Copyright (C) 2005 by Tarek Saidi * - * tarek@linux * + * tarek.saidi@arcor.de * * * * 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. * + * the Free Software Foundation; version 2 of the License. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/dialogs/SettingsDlg.h b/src/dialogs/SettingsDlg.h index dce674b..bc8ed9e 100755 --- a/src/dialogs/SettingsDlg.h +++ b/src/dialogs/SettingsDlg.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/dialogs/SimplePasswordDlg.cpp b/src/dialogs/SimplePasswordDlg.cpp index b35135e..5985b5d 100755 --- a/src/dialogs/SimplePasswordDlg.cpp +++ b/src/dialogs/SimplePasswordDlg.cpp @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -28,11 +28,11 @@ SimplePasswordDialog::SimplePasswordDialog(QWidget* parent, bool modal, Qt::WFl : QDialog(parent,fl) { setupUi(this); - if(!config->showPasswords())Button_HidePassword->toggle(); connect(buttonBox->button(QDialogButtonBox::Ok),SIGNAL(clicked()),this,SLOT(OnOK())); connect(buttonBox->button(QDialogButtonBox::Cancel),SIGNAL(clicked()),this,SLOT(OnCancel())); connect(Button_HidePassword,SIGNAL(toggled(bool)),this,SLOT(OnHidePasswordToggled(bool))); connect(EditPassword,SIGNAL(textChanged(const QString&)),this,SLOT(OnTextChanged(const QString&))); + if(!config->showPasswordsPasswordDlg())Button_HidePassword->toggle(); buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); } @@ -62,6 +62,12 @@ void SimplePasswordDialog::OnOK() void SimplePasswordDialog::OnHidePasswordToggled(bool state) { - if(state)EditPassword->setEchoMode(QLineEdit::Password); - else EditPassword->setEchoMode(QLineEdit::Normal); + if(state){ + EditPassword->setEchoMode(QLineEdit::Password); + Button_HidePassword->setIcon(getIcon("pwd_hide")); + } + else { + EditPassword->setEchoMode(QLineEdit::Normal); + Button_HidePassword->setIcon(getIcon("pwd_show")); + } } diff --git a/src/dialogs/SimplePasswordDlg.h b/src/dialogs/SimplePasswordDlg.h index 7a2fa1e..4fcf77e 100755 --- a/src/dialogs/SimplePasswordDlg.h +++ b/src/dialogs/SimplePasswordDlg.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/dialogs/TrashCanDlg.cpp b/src/dialogs/TrashCanDlg.cpp index 4c1f5db..774ced4 100644 --- a/src/dialogs/TrashCanDlg.cpp +++ b/src/dialogs/TrashCanDlg.cpp @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/dialogs/TrashCanDlg.h b/src/dialogs/TrashCanDlg.h index 8fbb70c..f9613b0 100644 --- a/src/dialogs/TrashCanDlg.h +++ b/src/dialogs/TrashCanDlg.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/export/Export.cpp b/src/export/Export.cpp index e44fe8e..02cdfa1 100644 --- a/src/export/Export.cpp +++ b/src/export/Export.cpp @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/export/Export.h b/src/export/Export.h index b5096ac..8c2ae6b 100644 --- a/src/export/Export.h +++ b/src/export/Export.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -41,4 +41,4 @@ class ExporterBase:public QObject{ -#endif \ No newline at end of file +#endif diff --git a/src/export/Export_KeePassX_Xml.cpp b/src/export/Export_KeePassX_Xml.cpp index 7be0a2c..9e86e04 100644 --- a/src/export/Export_KeePassX_Xml.cpp +++ b/src/export/Export_KeePassX_Xml.cpp @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -113,4 +113,4 @@ void Export_KeePassX_Xml::addEntry(IEntryHandle* entry,QDomElement& parent,QDomD GroupElement.appendChild(LastAccess); GroupElement.appendChild(LastMod); GroupElement.appendChild(Expire); -} \ No newline at end of file +} diff --git a/src/export/Export_KeePassX_Xml.h b/src/export/Export_KeePassX_Xml.h index fe28e1d..9e6b0cc 100644 --- a/src/export/Export_KeePassX_Xml.h +++ b/src/export/Export_KeePassX_Xml.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/export/Export_Txt.cpp b/src/export/Export_Txt.cpp index cb126fd..10f1129 100644 --- a/src/export/Export_Txt.cpp +++ b/src/export/Export_Txt.cpp @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -58,4 +58,4 @@ bool Export_Txt::exportDatabase(QWidget* GuiParent, IDatabase* db){ } delete file; return true; -} \ No newline at end of file +} diff --git a/src/export/Export_Txt.h b/src/export/Export_Txt.h index bb3f1c2..d598a4a 100644 --- a/src/export/Export_Txt.h +++ b/src/export/Export_Txt.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/forms/SimplePasswordDlg.ui b/src/forms/SimplePasswordDlg.ui index 5a52a6d..be7cb76 100644 --- a/src/forms/SimplePasswordDlg.ui +++ b/src/forms/SimplePasswordDlg.ui @@ -10,9 +10,7 @@ - - 0 - 5 + 0 0 @@ -33,26 +31,42 @@ Enter your Password - - 9 - 6 + + 9 + + + 9 + + + 9 + + + 9 + - - 0 - 6 + + 0 + + + 0 + + + 0 + + + 0 + - - 4 - 5 + 0 0 @@ -68,27 +82,25 @@ - - 5 - 0 + 0 0 - 28 - 0 + 23 + 23 - 28 - 16777215 + 23 + 23 - ... + diff --git a/src/import/Import.cpp b/src/import/Import.cpp index dc7e1b9..7a12ca0 100644 --- a/src/import/Import.cpp +++ b/src/import/Import.cpp @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -40,4 +40,4 @@ QString ImporterBase::getPassword(QWidget* parent){ SimplePasswordDialog dlg(parent); dlg.exec(); return dlg.password; -} \ No newline at end of file +} diff --git a/src/import/Import.h b/src/import/Import.h index 8c0e440..94eb847 100644 --- a/src/import/Import.h +++ b/src/import/Import.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/import/Import_KWalletXml.cpp b/src/import/Import_KWalletXml.cpp index aeef653..0d9e1fb 100755 --- a/src/import/Import_KWalletXml.cpp +++ b/src/import/Import_KWalletXml.cpp @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -67,4 +67,4 @@ bool Import_KWalletXml::importDatabase(QWidget* GuiParent, IDatabase* db){ } } return true; -} \ No newline at end of file +} diff --git a/src/import/Import_KWalletXml.h b/src/import/Import_KWalletXml.h index ab66172..dc1c4a6 100755 --- a/src/import/Import_KWalletXml.h +++ b/src/import/Import_KWalletXml.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/import/Import_KeePassX_Xml.cpp b/src/import/Import_KeePassX_Xml.cpp index 6a77ef0..64679b8 100644 --- a/src/import/Import_KeePassX_Xml.cpp +++ b/src/import/Import_KeePassX_Xml.cpp @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/import/Import_KeePassX_Xml.h b/src/import/Import_KeePassX_Xml.h index 0231a01..da2ac66 100644 --- a/src/import/Import_KeePassX_Xml.h +++ b/src/import/Import_KeePassX_Xml.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -38,4 +38,4 @@ class Import_KeePassX_Xml:public IImport, public ImporterBase{ }; -#endif \ No newline at end of file +#endif diff --git a/src/import/Import_PwManager.cpp b/src/import/Import_PwManager.cpp index 80973f7..0dacb2b 100755 --- a/src/import/Import_PwManager.cpp +++ b/src/import/Import_PwManager.cpp @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -166,4 +166,4 @@ bool Import_PwManager::xml_parseEntryAttributes(QDomElement* EntryElement,IGroup e->setComment(comment); e->setUrl(EntryElement->elementsByTagName("u").item(0).toElement().text()); return true; -} \ No newline at end of file +} diff --git a/src/import/Import_PwManager.h b/src/import/Import_PwManager.h index ab3becf..d47f8db 100755 --- a/src/import/Import_PwManager.h +++ b/src/import/Import_PwManager.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/lib/AutoType.h b/src/lib/AutoType.h index 80460b7..5eefe51 100644 --- a/src/lib/AutoType.h +++ b/src/lib/AutoType.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/lib/AutoType_Win.cpp b/src/lib/AutoType_Win.cpp index b22bc1c..d634cee 100755 --- a/src/lib/AutoType_Win.cpp +++ b/src/lib/AutoType_Win.cpp @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/lib/AutoType_X11.cpp b/src/lib/AutoType_X11.cpp index 19182b9..bcc3539 100644 --- a/src/lib/AutoType_X11.cpp +++ b/src/lib/AutoType_X11.cpp @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/lib/EntryView.cpp b/src/lib/EntryView.cpp index 20839c0..2e6daf2 100644 --- a/src/lib/EntryView.cpp +++ b/src/lib/EntryView.cpp @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/lib/EntryView.h b/src/lib/EntryView.h index 73f6774..78c3f23 100644 --- a/src/lib/EntryView.h +++ b/src/lib/EntryView.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/lib/FileDialogs.cpp b/src/lib/FileDialogs.cpp index fc78f86..158d1b0 100644 --- a/src/lib/FileDialogs.cpp +++ b/src/lib/FileDialogs.cpp @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -104,7 +104,29 @@ QString QtStandardFileDialogs::saveFileDialog(QWidget* parent,QString title,QStr FileDlg.setConfirmOverwrite(ShowOverwriteWarning); if(!FileDlg.exec())return QString(); LastFilter=FileDlg.filters().indexOf(FileDlg.selectedFilter()); - return FileDlg.selectedFiles().first(); + + //Check whether the file has an extension which fits to the selected filter + QString filepath=FileDlg.selectedFiles()[0]; + QString filename=filepath.right(filepath.length()-filepath.lastIndexOf("/")-1); + int a=Filters[LastFilter].indexOf('('); + int b=Filters[LastFilter].indexOf(')'); + QStringList Extensions=Filters[LastFilter].mid(a+1,b-a-1).split(" "); + if(Extensions.contains("*")) + return filepath; + + for(int i=0;i(); config->clearFileDlgHistory(); -} \ No newline at end of file +} diff --git a/src/lib/FileDialogs.h b/src/lib/FileDialogs.h index e68afb6..d5bd7fb 100644 --- a/src/lib/FileDialogs.h +++ b/src/lib/FileDialogs.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/lib/GroupView.cpp b/src/lib/GroupView.cpp index b15604b..ff8cf5c 100644 --- a/src/lib/GroupView.cpp +++ b/src/lib/GroupView.cpp @@ -4,8 +4,7 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/lib/GroupView.h b/src/lib/GroupView.h index a950b95..710779d 100644 --- a/src/lib/GroupView.h +++ b/src/lib/GroupView.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/lib/KpFileIconProvider.cpp b/src/lib/KpFileIconProvider.cpp index 1572fd9..a68802c 100644 --- a/src/lib/KpFileIconProvider.cpp +++ b/src/lib/KpFileIconProvider.cpp @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/lib/KpFileIconProvider.h b/src/lib/KpFileIconProvider.h index f0625aa..7449407 100644 --- a/src/lib/KpFileIconProvider.h +++ b/src/lib/KpFileIconProvider.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -25,4 +25,4 @@ class KpFileIconProvider : public QFileIconProvider{ public: virtual QIcon icon(IconType type) const; virtual QIcon icon(const QFileInfo& info) const; -}; \ No newline at end of file +}; diff --git a/src/lib/SecString.cpp b/src/lib/SecString.cpp index 18d4e16..b74ad63 100755 --- a/src/lib/SecString.cpp +++ b/src/lib/SecString.cpp @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -105,4 +105,4 @@ unsigned char* sessionkey=new unsigned char[32]; randomize(sessionkey,32); RC4.setKey(sessionkey,32); delete [] sessionkey; -} \ No newline at end of file +} diff --git a/src/lib/SecString.h b/src/lib/SecString.h index c154a23..dd49baa 100755 --- a/src/lib/SecString.h +++ b/src/lib/SecString.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/lib/UrlLabel.cpp b/src/lib/UrlLabel.cpp index 0d981ea..8ff720c 100755 --- a/src/lib/UrlLabel.cpp +++ b/src/lib/UrlLabel.cpp @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/lib/UrlLabel.h b/src/lib/UrlLabel.h index de3da2d..850a8a1 100755 --- a/src/lib/UrlLabel.h +++ b/src/lib/UrlLabel.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -45,4 +45,4 @@ QString URL; }; -#endif \ No newline at end of file +#endif diff --git a/src/lib/WaitAnimationWidget.cpp b/src/lib/WaitAnimationWidget.cpp index 15d8503..73681a3 100644 --- a/src/lib/WaitAnimationWidget.cpp +++ b/src/lib/WaitAnimationWidget.cpp @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/lib/WaitAnimationWidget.h b/src/lib/WaitAnimationWidget.h index b09ccbe..33a0feb 100644 --- a/src/lib/WaitAnimationWidget.h +++ b/src/lib/WaitAnimationWidget.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/lib/random.cpp b/src/lib/random.cpp index 541e59f..52f5b36 100755 --- a/src/lib/random.cpp +++ b/src/lib/random.cpp @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/lib/random.h b/src/lib/random.h index 407d961..e042438 100755 --- a/src/lib/random.h +++ b/src/lib/random.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -17,4 +17,4 @@ * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -extern void getRandomBytes(void* buffer,int NumBlocks,int BlockSize=1,bool Strong=false); \ No newline at end of file +extern void getRandomBytes(void* buffer,int NumBlocks,int BlockSize=1,bool Strong=false); diff --git a/src/main.h b/src/main.h index b30de4c..b66d943 100644 --- a/src/main.h +++ b/src/main.h @@ -4,8 +4,7 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -17,6 +16,7 @@ * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ + #ifndef _MAIN_H_ #define _MAIN_H_ @@ -30,7 +30,7 @@ #define APP_NAME "KeePassX" #define APP_FUNC "Password Manager" #define KEEPASS_VERSION "0.2.3" -#define BUILTIN_ICONS 62 +#define BUILTIN_ICONS 65 typedef enum tKeyType {PASSWORD=0,KEYFILE=1,BOTH=2}; class KpxConfig; diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index b9006b4..9e6f303 100755 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -4,8 +4,7 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -1029,4 +1028,4 @@ void KeepassMainWindow::OnUnLockWorkspace(){ FileUnLockWorkspaceAction->setText(tr("Un&lock Workspace")); IsLocked=true; } -} \ No newline at end of file +} diff --git a/src/mainwindow.h b/src/mainwindow.h index c4a3cd8..8666ffb 100755 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -4,8 +4,7 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/plugins/gnome/keepassx-gnome.cpp b/src/plugins/gnome/keepassx-gnome.cpp index 2756e14..7d50a68 100644 --- a/src/plugins/gnome/keepassx-gnome.cpp +++ b/src/plugins/gnome/keepassx-gnome.cpp @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -136,4 +136,4 @@ QString GnomePlugin::saveFileDialog(QWidget* parent,QString title,QString dir,QS g_free(filename_cstring); } gtk_widget_destroy(FileDlg); - return filename;} \ No newline at end of file + return filename;} diff --git a/src/plugins/gnome/keepassx-gnome.h b/src/plugins/gnome/keepassx-gnome.h index b8dfdba..98aa78f 100644 --- a/src/plugins/gnome/keepassx-gnome.h +++ b/src/plugins/gnome/keepassx-gnome.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -39,4 +39,4 @@ class GnomePlugin:public QObject,public IFileDialog,public IGnomeInit{ virtual bool init(int argc, char** argv); private: GtkFileFilter** parseFilterStrings(const QStringList &Filters); -}; \ No newline at end of file +}; diff --git a/src/plugins/interfaces/IFileDialog.h b/src/plugins/interfaces/IFileDialog.h index bc0fbb2..01d1c85 100644 --- a/src/plugins/interfaces/IFileDialog.h +++ b/src/plugins/interfaces/IFileDialog.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -38,4 +38,4 @@ class IFileDialog{ }; Q_DECLARE_INTERFACE(IFileDialog,"org.KeePassX.FileDialogInterface/1.0") -#endif \ No newline at end of file +#endif diff --git a/src/plugins/interfaces/IGnomeInit.h b/src/plugins/interfaces/IGnomeInit.h index a16ea1a..5c8372d 100644 --- a/src/plugins/interfaces/IGnomeInit.h +++ b/src/plugins/interfaces/IGnomeInit.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/plugins/interfaces/IKdeInit.h b/src/plugins/interfaces/IKdeInit.h index b829f7a..7e47d5b 100644 --- a/src/plugins/interfaces/IKdeInit.h +++ b/src/plugins/interfaces/IKdeInit.h @@ -4,8 +4,8 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * diff --git a/src/plugins/kde/keepassx-kde.cpp b/src/plugins/kde/keepassx-kde.cpp index 773429d..b7dc010 100644 --- a/src/plugins/kde/keepassx-kde.cpp +++ b/src/plugins/kde/keepassx-kde.cpp @@ -4,8 +4,7 @@ * * * 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. * + * the Free Software Foundation; version 2 of the License. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -22,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -29,12 +29,13 @@ #include #include "keepassx-kde.h" +#define CSTR(x)(x.toUtf8().data()) + QHashIconMap; int LastFilter; Q_EXPORT_PLUGIN2(keepassx_kde, KdePlugin) - void createIconMap(){ IconMap["alarmclock"]="alarmclock"; IconMap["appsettings"]="configure"; @@ -72,6 +73,15 @@ void createIconMap(){ } QString convertFilters(const QStringList& qtfilters){ + /* + Qt Filter Syntax: + StringList: "DescrA (*.ext1 *.ext2 *.ext3)", + "DescrB (*.ext4)" + + KDE Filter Syntax: + Single String: "*.ext1 *.ext2 *.ext3|DescrA\n*ext4|DescrB" + */ + QString kdefilters; for(int i=0;isetCurrentFilter(convertFilters(QStringList()<setCurrentFilter(convertFilters(QStringList()<setCurrentFilter(convertFilters(QStringList()<