Giter VIP home page Giter VIP logo

pwsafe / pwsafe Goto Github PK

View Code? Open in Web Editor NEW
700.0 37.0 146.0 126.92 MB

Password Safe - popular secure and convenient password manager

Home Page: https://pwsafe.org

License: Other

Shell 0.32% Makefile 0.42% Python 0.35% Perl 0.29% Batchfile 0.26% HTML 16.01% JavaScript 0.07% CSS 0.06% AppleScript 0.02% Inno Setup 0.04% NSIS 0.41% C++ 74.11% C 4.22% C# 0.82% XSLT 0.78% CMake 0.95% Pawn 0.08% Objective-C++ 0.03% Dockerfile 0.06% VBScript 0.70%
windows linux-app

pwsafe's Introduction

Gitpod Ready-to-Code mac-pwsafe

Introduction

Password Safe is a password database utility. Like many other such products, commercial and otherwise, it stores your passwords in an encrypted file, allowing you to remember only one password (the "master password"), instead of all the username/password combinations that you use.

What makes Password Safe different? Three things:

  1. Simplicity: Password Safe is designed to do one thing, and to do it well. Start the application, enter your "master password", double-click on the entry and the password is now on your clipboard, ready for pasting.
  2. Security: The original version was designed by Bruce Schneier.
  3. Open Source: The source code for the project is available for inspection. For more information, see https://pwsafe.org.

The current version of Password Safe currently runs on Windows 7 and later. Older versions are still available supporting Windows 95, 98, ME, NT, 2000, XP, Vista as well as PocketPC.

The Mac version of Password Safe runs on macOS version 10.14 Mojave and later, and runs native on Intel and Apple Silicon. (Universal binary.)

Linux packages are available for popular distributions. See README.LINUX.md for more details.

FreeBSD is also supported. See README.FREEBSD.

Downloading

The latest & greatest version of Password Safe may be downloaded from SourceForge or GitHub.

Internationalization (Non-English Support)

Thanks to the help of volunteers from all over the world, Password Safe has built-in support for the following languages:

  • Arabic
  • Czech
  • Chinese
  • Danish
  • Dutch
  • French
  • German
  • Hungarian
  • Italian
  • Korean
  • Polish
  • Portuguese (Brazilian)
  • Russian
  • Slovenian
  • Spanish
  • Swedish
  • Turkish

You can update the translations or add another language via transifex, or by dropping me a note.

Installation

For convenience, Password Safe is packaged into an executable installer program. This installs the program, sets up shortcuts and allows you to uninstall the program from the Windows Control Panel. However, if you prefer, the -bin.zip file contains all the files you need. Just extract the files (using WinZip, for example) to any directory, double-click on the Pwsafe.exe icon,and that's it. You may want to create a shortcut to your desktop and/or Start menu. Finally, a Microsoft installer (.msi) package is also available.

License

Password Safe is available under the restrictions set forth in the standard Artistic License 2.0". For more details, see the LICENSE file that comes with the package.

Password Safe 3.29 and later makes use of the pugixml project, which is available under the MIT license.

Non-Windows versions of Password Safe make use of wxWidgets, under the license terms defined in https://wxwidgets.org/about/licence, which is basically LGPL, with an exception stating that derived works in binary form may be distributed on the user’s own terms.

Helping Out

Please report bugs via the project's bug tracking form, on SourceForge at https://sourceforge.net/p/passwordsafe/bugs/ or on Github at https://github.com/pwsafe/pwsafe/issues. It's worth first the bug list, to see if the issue hasn't already been reported.

Requests for features and enhancements should be submitted to the Feature Requests page, at https://sourceforge.net/p/passwordsafe/feature-requests/

You can also post questions, suggestions, rants, raves, etc. to the Help or Open Discussion forums, at https://sourceforge.net/p/passwordsafe/discussion/

If you wish to contribute to the project by writing code and/or documentation, please drop a note to the developer's mailing list: http://lists.sourceforge.net/lists/listinfo/passwordsafe-devel or via the web form at https://pwsafe.org/contact.php

New releases are announced on the passwordsafe-announce mailing list: http://lists.sourceforge.net/lists/listinfo/passwordsafe-announce

Last but not least: Password Safe is and will always remain an open source project, free for use and redistribution. However, donations to the project will help me justify the time and effort I spend in maintaining and improving this utility. In addition, donations to the project help maintain SourceForge, the hosting site. If you wish to donate, please click on the Donate button at the top of https://pwsafe.org

Release Notes

For information on the latest features, bugfixes and known problems, see ReleaseNotes.md for the Windows version and ReleaseNotesWX.md for the Linux and Mac versions.

Credits

  • The original version of Password Safe was designed by Bruce Schneier, written by Mark Rosen, and was freely downloadable from Conterpane Lab's website. Thanks to Mark for writing a great little application! Following Mark, it was maintained by "AYB", at Counterpane. Thanks to Counterpane for deciding to open source the project.
  • Jim Russell first brought the code to SourceForge, did some major cleaning up of the code, set up a nice project and added some minor features in release 1.9.0
  • Releases 2.x have been brought to you by: Andrew Mullican, Edward Quackenbush, Gregg Conklin, Graham Ullrich, and Rony Shapiro. Karel (Karlo) Van der Gucht also contributed some of the password policy code and some GUI improvements for 1.92.
  • Emilijan Mirceski did the new graphics for 2.0.
  • Maxim Tikhonov translated the first online help to Russian.
  • Thanks to the Password Safe developer's mailing list for help in nailing down the 3.x file format.
  • Many, many new features in 3.x have been implemented by DK.
  • Finally, thanks to the folks at SourceForge and GitHub for hosting this project.

pwsafe's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pwsafe's Issues

Unsaved Changes have been made to database on logoff

Good day.

PasswordSafe v3.40 (g76fea06) on Windows 7. Incorrectly signals to Windows that the database has not been saved, preventing logoff/reboot, even tho it HAS been saved. Steps to reproduce:

1- Open database.
2- The "Save DB immediately" option is turned OFF.
3- Make some change.
4- SAVE database, notice Save Icon in toolbar goes Grey.
5- Attempt to logoff or reboot -> Blocked: Unsaved Changes have been made to database,

Thank you.

Please add signatures for Linux releases on Github

On the old sourceforge site, PGP signatures were included for all releases, including Linux source tarballs. While the releases have made it over to Github (thanks!) the signatures have not, which can break automated verification of the source downloads.

OSX 10.11 + wxWidgets 3.0.2 build does not work

Hi,

I can't build pwsafe on top of OSX 10.11 with wxWidgets 3.0.2.

First I had to patch the wxWidgets source with the changes in http://trac.wxwidgets.org/changeset/2a13ad64d85213846147c31f095e7b419487f677/git-wxWidgets to get it to build.

Trying to build pwsafe afterwards resulted in these errors in file.cpp:

/Users/neuralshock/Repos/pwsafe/src/os/mac/file.cpp:374:7: error: redefinition of 'status'
  int status = ::stat(fn, &statbuf);
      ^
/Users/neuralshock/Repos/pwsafe/src/os/mac/file.cpp:370:7: note: previous definition is here
  int status;
      ^
/Users/neuralshock/Repos/pwsafe/src/os/mac/file.cpp:374:28: error: use of undeclared identifier 'statbuf'
  int status = ::stat(fn, &statbuf);
                           ^
2 errors generated.

I hacked file.cpp, based on other code in the file.

bool pws_os::GetFileTimes(const stringT &filename,
            time_t &ctime, time_t &mtime, time_t &atime)
{
  struct stat info;
  struct stat statbuf;
  int status;
  size_t N = wcstombs(NULL, filename.c_str(), 0) + 1;
  char *fn = new char[N];
  wcstombs(fn, filename.c_str(), N);
  status = ::stat(fn, &statbuf);

The build progressed further, but failed again in about.cpp.

/Users/neuralshock/Repos/pwsafe/src/ui/wxWidgets/about.cpp:195:28: error: use of undeclared identifier 'pwsafeAppName'
  const wxString vstring = pwsafeAppName + L" " + pwsafeVersionString;
                           ^
/Users/neuralshock/Repos/pwsafe/src/ui/wxWidgets/about.cpp:195:51: error: use of undeclared identifier 'pwsafeVersionString'
  const wxString vstring = pwsafeAppName + L" " + pwsafeVersionString;
                                                  ^
/Users/neuralshock/Repos/pwsafe/src/ui/wxWidgets/about.cpp:331:21: error: use of undeclared identifier 'MAJORVERSION'
    CheckVersion cv(MAJORVERSION, MINORVERSION, 0);
                    ^
/Users/neuralshock/Repos/pwsafe/src/ui/wxWidgets/about.cpp:331:35: error: use of undeclared identifier 'MINORVERSION'
    CheckVersion cv(MAJORVERSION, MINORVERSION, 0);
                                  ^
/Users/neuralshock/Repos/pwsafe/src/ui/wxWidgets/about.cpp:345:16: error: use of undeclared identifier 'pwsafeVersionString'
      newer += pwsafeVersionString + L"\n";

Update 12.01.2016:

Looks like the version.h file was empty (is this built somewhere?) so I copied the version.in file to version.h. Could something be wrong with the way I've tried to build it?

Package name changed

passwordsafe-ubuntu-0.98.1BETA.amd64.deb now provides package "pwsafe" whereas previous releases provided "passwordsafe". The Ubuntu package control file with 0.97 included Conflicts: pwsafe this is not a direct upgrade. Also, the package name in [(https://github.com/pwsafe/pwsafe/blob/master/install/deb/control-ubuntu.amd64)] does not match that in the deb in releases.

Linux: passing LDFLAGS to make causes build to fail

I am trying to package passwordsafe and I am passing some additional LDFLAGS to make (hardening, etc) but it seems overriding LDFLAGS on the command line causes all other internal LDFLAGS to be discarded.

For example a simple make release LDFLAGS= will fail because the LDFLAGS will be empty and the binary will not be linked against any library, causing the following error

g++ -o GCCUnicodeDebug/pwsafe GCCUnicodeDebug/passwordsafeframe.o GCCUnicodeDebug/pwsafeapp.o GCCUnicodeDebug/safecombinationentry.o GCCUnicodeDebug/safecombinationsetup.o GCCUnicodeDebug/safecombinationprompt.o 
GCCUnicodeDebug/safecombinationchange.o GCCUnicodeDebug/about.o GCCUnicodeDebug/properties.o GCCUnicodeDebug/PWSgrid.o GCCUnicodeDebug/PWStree.o GCCUnicodeDebug/version.o GCCUnicodeDebug/pwsclip.o GCCUnicodeDebug/mainEdit.o 
GCCUnicodeDebug/mainManage.o GCCUnicodeDebug/addeditpropsheet.o GCCUnicodeDebug/PWSgridtable.o GCCUnicodeDebug/optionspropsheet.o GCCUnicodeDebug/PasswordSafeSearch.o GCCUnicodeDebug/deleteconfirmation.o 
GCCUnicodeDebug/editshortcut.o GCCUnicodeDebug/createshortcutdlg.o GCCUnicodeDebug/SystemTray.o GCCUnicodeDebug/RUEList.o GCCUnicodeDebug/guiinfo.o GCCUnicodeDebug/ImportTextDlg.o GCCUnicodeDebug/ImportXmlDlg.o 
GCCUnicodeDebug/OpenFilePickerValidator.o GCCUnicodeDebug/SafeCombinationCtrl.o GCCUnicodeDebug/ExportTextWarningDlg.o GCCUnicodeDebug/AdvancedSelectionDlg.o GCCUnicodeDebug/ViewReport.o GCCUnicodeDebug/dragbar.o GCCUnicodeDebug/PWSDragBar.o 
GCCUnicodeDebug/MergeDlg.o GCCUnicodeDebug/ExternalKeyboardButton.o GCCUnicodeDebug/PwsSync.o GCCUnicodeDebug/DbSelectionPanel.o GCCUnicodeDebug/CompareDlg.o GCCUnicodeDebug/wxutils.o 
GCCUnicodeDebug/ComparisonGridTable.o GCCUnicodeDebug/SizeRestrictedPanel.o GCCUnicodeDebug/fieldselectionpanel.o GCCUnicodeDebug/fieldselectiondlg.o GCCUnicodeDebug/pwsmenushortcuts.o GCCUnicodeDebug/ManagePwdPolicies.o 
GCCUnicodeDebug/PasswordPolicy.o GCCUnicodeDebug/SelectionCriteria.o 
GCCUnicodeDebug/TimedTaskChain.o 

GCCUnicodeDebug/passwordsafeframe.o: In function `PasswordSafeFrame::PasswordSafeFrame(PWScore&)':
/home/raf/pwsafe/src/ui/wxWidgets/passwordsafeframe.cpp:257: undefined reference to `wxEmptyString'
/home/raf/pwsafe/src/ui/wxWidgets/passwordsafeframe.cpp:257: undefined reference to `wxMutex::wxMutex(wxMutexType)'
(...)

I'm not sure if this behaviour is intentional or not. The following patch fixes it for me i.e. command line LDFLAGS are appended to the internal LDFLAGS

diff -ru pwsafe-0.97BETA/src/ui/wxWidgets/Makefile pwsafe-n/src/ui/wxWidgets/Makefile
--- src/ui/wxWidgets/Makefile   2015-10-09 09:35:00.000000000 +0100
+++ src/ui/wxWidgets/Makefile   2015-11-23 11:10:08.509509481 +0000
@@ -139,7 +139,7 @@
 XERCESCPPFLAGS=-DUSE_XML_LIBRARY=XERCES -DWCHAR_INCOMPATIBLE_XMLCH
 XERCESLIBFLAGS=-lxerces-c
 GCCFLAGS=-fPIC
-LDFLAGS:=$(LIBS) -L$(LIBPATH) $(LINKERFLAGS) $(LDFLAGS)
+override LDFLAGS:=$(LIBS) -L$(LIBPATH) $(LINKERFLAGS) $(LDFLAGS)
 RESPATH=--include-dir "$(WXWIN)/include" --include-dir "$(WXWIN)/contrib/include" --include-dir "$(WXWIN)/GCCBuildReleaseGTK2Unicode/lib/wx/include/gtk2-unicode-release-static-2.6"
 MACPACKAGEINFO=
 endif
@@ -155,7 +155,7 @@
 YBPERS_LIBPATH_FLAGS=-L$(YBPERS_LIBPATH)
 endif

-LDFLAGS:=$(LIBS) -L$(LIBPATH) $(LINKERFLAGS) $(XERCESLIBFLAGS) $(YBPERS_LIBPATH_FLAGS) $(LDFLAGS)
+override LDFLAGS:=$(LIBS) -L$(LIBPATH) $(LINKERFLAGS) $(XERCESLIBFLAGS) $(YBPERS_LIBPATH_FLAGS) $(LDFLAGS)
 CPPFLAGS:=$(CXXFLAGS) $(CPPINC) $(GCCFLAGS) $(DEBUGFLAGS) $(OPTFLAGS) $(WARNINGFLAGS) $(XERCESCPPFLAGS) $(YUBIFLAGS) $(CPPFLAGS)

 SOURCES= passwordsafeframe.cpp \

Related: http://sourceforge.net/p/passwordsafe/bugs/1162/

Upcoming v4 format

As noted in this paper, not having to reencrypt the full database on change of the master password (i.e. letting K, L remain unchanged) poses a potential security problem which cannot be easily dealt with by the user.

v3 of the database works around this problem by choosing different K, L on any save after a modification, including change of the master password. But v4 proposes a way for multiple, independent master passwords. In this format, one would be unable to ever change K, L without knowledge of all MPs, since one can only calculate KeyBlocks for known passwords.

Thus, the security of the database will differ substantially when adding/removing entries in multi password mode without asking all passwords at all times. What are your plans in order to deal with this perceived issue?

Building issues on Gentoo Linux

Trying to build pwsafe 0.98.1 on Gentoo Linux but having some problems. The last working version I have is 0.95.1. I have not tried to build the intermediate versions.

uname -a: Linux kiwis 4.1.15-gentoo-r1 #1 SMP Sun Jan 24 12:16:32 PST 2016 x86_64 AMD Phenom(tm) II X2 555 Processor AuthenticAMD GNU/Linux
gcc --version: gcc (Gentoo 4.9.3 p1.2, pie-0.6.3) 4.9.3

With MINORVERSION now being defined to 98.1 i.e a floating point number, I get the following error:

g++ -c -o GCCUnicodeRelease/pwsafeapp.o  `/usr/bin/wx-config-3.0 --debug=no --unicode=yes --inplace --cxxflags` -DUNICODE -DNDEBUG -I../.. -fPIC  -O -Wall -DUSE_XML_LIBRARY=XERCES -DWCHAR_INCOMPATIBLE_XMLCH -DNO_YUBI -std=c++11 -std=c++11 pwsafeapp.cpp
pwsafeapp.cpp: In member function ‘virtual bool PwsafeApp::OnInit()’:
pwsafeapp.cpp:278:62: error: invalid operands of types ‘double’ and ‘int’ to binary ‘operator<<’
                                       DWORD((MINORVERSION << 16) | MAJORVERSION));
                                                              ^

I changed the line to DWORD((DWORD(MINORVERSION) << 16) | MAJORVERSION)); and the compilation went through with minor warnings about some unused variables and unused results. Thought I was home free at this point. But running the executable I get a segmentation fault.

~/Build/pwsafe-0.98.1BETA $ src/ui/wxWidgets/GCCUnicodeRelease/pwsafe
/usr/include/wx-3.0/wx/strvararg.h(456): assert "(argtype & (wxFormatStringSpecifier<T>::value)) == argtype" failed in wxArgNormalizer(): format specifier doesn't match argument type
Segmentation fault

-Thomas

Linux: Segmentation fault when checking for the latest version

How to reproduce:

  1. start pwsafe from a terminal (to see the Segmentation fault message)
  2. go to Help->About
  3. click on "Here" to check for the latest version
  4. click "Ok" to confirm the database close
  5. Result: the windows close and in the terminal appears "Segmentation fault"

Using: passwordsafe 0.97BETA downloaded from Github on Linux Mint Rosa 17.3 (based on Ubuntu 14.04 LTS).

$ aptitude show passwordsafe
Package: passwordsafe                    
State: installed
Automatically installed: no
Version: 0.97BETA
Priority: optional
Section: utils
Maintainer: Rony Shapiro <[email protected]>
Architecture: amd64
Uncompressed Size: 5,120 k
Depends: libc6 (>= 2.11.1-0ubuntu7.2), libuuid1 (>= 2.17.2-0ubuntu1), libwxgtk3.0-0 (>= 3.0.0-2), libxtst6 (>= 2:1.1.0-2), libxerces-c3.1 (>= 3.1.0-1), libykpers-1-1
         (>= 1.7.0-1)
Conflicts: pwsafe, pwsafe
Description: Portable version of popular password manager program
[...]

Features of upcoming release

Is there a list of new features that will be available in the upcoming release? Or possibly a release schedule?

Thanks,

CMakeLists.txt: mixes Windows and Unix stuff ? adding more info

Hello, quoting CMakeLists.txt:

 26 if (NOT WIN32)
 27   # TODO - add support for wx build under Windows
 28   set(wxWidgets_CONFIGURATION mswu)

wxWidgets_CONFIGURATION (and mswu) is related to Windows, not Unix/Linux ?

Suggested patch:

@@ -25,7 +25,14 @@

 if (NOT WIN32)
   # TODO - add support for wx build under Windows
-  set(wxWidgets_CONFIGURATION mswu)
+  # help people about wx-config
+  find_program(MYHINT_wxconfig wx-config)
+  if(NOT(MYHINT_wxconfig))
+    message(STATUS
+      "Failed to find 'wx-config' executable:\n"
+      "   Hint: add this on command-line: -D wxWidgets_CONFIG_EXECUTABLE=/path/to/wx-config"
+    )
+  endif()
   find_package(wxWidgets COMPONENTS adv base core html net REQUIRED)
   include(${wxWidgets_USE_FILE})

Checking wxWidgets_CONFIG_EXECUTABLE (via another macro name) will make life easier for unusual platforms (like MacOS X, see #55 )

CMake build fails when doing an in-tree build

PROJECT_SOURCE_DIR equals CMAKE_CURRENT_BINARY_DIR for in-tree builds. This means the mv at src/core/CMakeLists.txt:91-92 fails because it is attempting to move the file over itself.

pwsafe $ cmake -DNO_YUBI=ON .
-- The CXX compiler identification is GNU 6.3.0
-- The C compiler identification is GNU 6.3.0
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Found GTest: /usr/lib64/libgtest.so  
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Found wxWidgets: -L/usr/lib64;-pthread;;;-lwx_gtk2u_adv-3.0;-lwx_baseu-3.0;-lwx_gtk2u_core-3.0;-lwx_gtk2u_html-3.0;-lwx_baseu_net-3.0 (found version "3.0.2") 
-- Looking for uuid/uuid.h
-- Looking for uuid/uuid.h - found
-- Yubikey support disabled
-- Configuring done
-- Generating done
-- Build files have been written to: /home/saintdev/Projects/pwsafe
pwsafe $ make
[  0%] Generating core_st.cpp, core_st.h
mv: ‘/home/saintdev/Projects/pwsafe/src/core/core_st.cpp’ and ‘/home/saintdev/Projects/pwsafe/src/core/core_st.cpp’ are the same file
make[2]: *** [src/core/CMakeFiles/core.dir/build.make:63: src/core/core_st.cpp] Error 1
make[2]: *** Deleting file 'src/core/core_st.cpp'
make[1]: *** [CMakeFiles/Makefile2:178: src/core/CMakeFiles/core.dir/all] Error 2
make: *** [Makefile:161: all] Error 2

Linux system tray and -m / -s switch behavior

On Linux the -m switch with the system tray icon turned on causes the main window to minimize like a normal program and not show the system tray icon until it's unminimized and closed. The -s switch with a database named always causes the system tray icon to appear, but as often as not the main window remains visible with no database in it.

I'm going to take on tracking this oddness down. I've got a couple of ideas but need to confirm what happens at run-time.

Ubuntu debs for 0.98.1BETA are uninstallable on 15.10

Per the recent conversation on the passwordsafe-linux mailing list, the released debs are uninstallable on ubuntu 15.10.

Investigation shows that while the current control files in install/deb are correct, it appears that the debs recently built for ubuntu were built with an older or incorrect(Debian?) version of the control file.

The control file used specifies a dependency on libwxgtk3.0-0, which is not installable in 15.10. The most recent version of the control files allow for either libwxgtk3.0-0 or libwxgtk3.0-0v5 to satisfy the dependency.

A rebuild/rerelease of the ubuntu debs with the correct control file should fix the issue.

Cannot open pwsafe-14.sln or pwsafe_wx-14.sln on VS2015

The solution loads but there are two error messages about missing files:

  • pwsafe\src\os\windows\yubi\YkLib22-14.vcxproj : error : Unable to read the project file "YkLib22-14.vcxproj".
  • pwsafe\src\os\windows\yubi\YkLib22-14.vcxproj(68,5): The imported project "pwsafe\src\ui\Windows\UserVariables-14.props" was not found. Confirm that the path in the declaration is correct, and that the file exists on disk.

and also:

  • pwsafe\src\test\coretest-14.vcxproj : error : Unable to read the project file "coretest-14.vcxproj".
  • pwsafe\src\test\coretest-14.vcxproj(43,5): The imported project "pwsafe\src\ui\Windows\UserVariables-14.props" was not found. Confirm that the path in the declaration is correct, and that the file exists on disk.

I searched for the missing file ("UserVariables-14.props") but it does not exist in the archive. I searched for "UserVariables*" also, but that does not exist either.

[linux] Version 0.98.1BETA fails to compile: 'double' operand to binary 'operator <<'

Hi,

On Fedora 23 x86_64 (gcc 5.3.1 20151207 (Red Hat 5.3.1-2)), I've got this error:

pwsafeapp.cpp:278:62: error: invalid operands of types 'double' and 'int' to binary 'operator<<'  
                                      DWORD((MINORVERSION << 16) | MAJORVERSION));

I've fixed it by adding a cast to int in front of MINORVERSION:

  m_core.SetApplicationNameAndVersion(tostdstring(pwsafeAppName),
                                      DWORD(((int) MINORVERSION << 16) | MAJORVERSION));

Best,

Marco

Build failure on i386 FreeBSD

I followed the instructions in the FreeBSD readme and am getting a compile error:

$ gmake-lite
[  0%] Building CXX object src/core/CMakeFiles/core.dir/Command.cpp.o
In file included from /usr/home/smeredith/pwsafe/src/core/Command.cpp:11:
In file included from /usr/home/smeredith/pwsafe/src/core/CommandInterface.h:10:
In file included from /usr/home/smeredith/pwsafe/src/core/coredefs.h:18:
/usr/home/smeredith/pwsafe/src/core/ItemData.h:230:8: error: class member cannot be redeclared
  bool Matches(time_t time1, time_t time2, int iObject,
       ^
/usr/home/smeredith/pwsafe/src/core/ItemData.h:228:8: note: previous declaration is here
  bool Matches(int num1, int num2, int iObject,
       ^
1 error generated.
gmake-lite[2]: *** [src/core/CMakeFiles/core.dir/build.make:144: src/core/CMakeFiles/core.dir/Command.cpp.o] Error 1
gmake-lite[1]: *** [CMakeFiles/Makefile2:179: src/core/CMakeFiles/core.dir/all] Error 2
gmake-lite: *** [Makefile:161: all] Error 2

Customize Main Toolbar adds wrong buttons

Version: 3.41
OS: Windows 7
Installed in portable mode

When I go to Manage > Customize Main Toolbar and add new button to the toolbar sometimes wrong button gets added.

For example, when I add button "Add group" all looks fine in the selection tool. But the button that gets actually added to the toolbar is "Manage Filters". Similarly adding button "Password Policies" actually adds button "Add Group."

Many other buttons, such as "Run command" get added correctly.

-h/-u command line arguments ignored v3.40+

Good day.

I use the following command to run PasswordSafe from a USB stick:
pwsafe.exe -r MySafe.psafe3 -h Public -u Anonymous -g pwsafe_portable.cfg

Since v3.40, PasswordSafe is not using the Pwsafe_Settings/Public/Anonymous section of the settings file; it is creating new sections for each computer/user combination that I run PasswordSafe on. This is somewhat annoying; without the ability to use a single settings section, I have to redo my settings everywhere I go. Tested working fine with v3.39.

Thank you.
Best Regards,

layout problem when username is displayed in tree view

Hi I hope this is the right place to report issues! Also thanks so much for the Linux version, it is working great. Using is v1.0.1Beta (Dec22) on Ubuntu 16.04 LTS. By going to Manage | Preferences | Display | 'show username in tree view' then the layout increases to a huge amount of vertical space between items. Everything still works fine, it just is visually a bit off.

screenshot from 2016-12-31 11-33-55

Build failure on Mac OS X 10.11.6 with Xcode 8.0

There are 2 problems to build on Mac OS X 10.11.6 with Xcode 8.0 and wxWindows 3.0.2 (also 3.1.0).

1. Linking error with libpng

Apple Mach-O Linker (ld) Error Group
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ld: library not found for -lpng

This can be fixed by adding -L/usr/local/lib to "pwsafe - Build Settings - Linking - Other Linker Flags" to use brewed libpng, because Mac OS X 10.11 may not bundle libpng itsself.

2. Another linking error

Apple Mach-O Linker (ld) Error Group
Undefined symbols for architecture x86_64:
  "CPasswordSubset::CPasswordSubset(wxWindow*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, S_Alloc::SecureAlloc<wchar_t> > const&, int, wxString const&, wxPoint const&, wxSize const&, long)", referenced from:
      PasswordSafeFrame::DoPasswordSubset(CItemData&) in mainEdit.o
  "CPasswordSubset::~CPasswordSubset()", referenced from:
      PasswordSafeFrame::DoPasswordSubset(CItemData&) in mainEdit.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

I don't know how to resolve this problem.

Uncommitted new entries can be lost after database auto-lock when auto-read-only is enabled

How to reproduce

  1. Enable the “Open database read-only by default” option (“System” tab);
  2. Enable the “Lock password database after” option (“Security” tab);
  3. Open a database in read-write;
  4. Open the “Add entry” dialog and fill it without committing (do not click “OK”);
  5. Wait for the auto-lock timeout to expire and PasswordSafe to minimize;
  6. Reopen PasswordSafe and unlock it — don't touch the “Open as read-only” checkbox;
  7. Click the “OK” button to save the entry you were adding;
  8. Notice that the entry has not been added to the database;
  9. Weep.

The problem lies in steps 6 and 7: if you don't notice — or remember to unckeck — the “Open as read-only” checkbox, when you unlock the database you're shown the entry you were adding before the database auto-locked and you're allowed to “save” the entry by clicking the “OK” button, however since the database is now read-only the saving of the entry fails silently and its information is lost.

This probably applies to entries editing too (or any other kind of change which can be in an “uncommited” state).

I think this problem could be prevented in two different ways (I don't know if either is feasible though):

  • don't allow the database to be unlocked as read-only if there are changes pending changes;
  • don't allow the user to “OK” the “Add entry” dialog if the database has been unlocked in read-only ode;
  • ask the user to switch the database in read-write when he tries to “OK” the “Add entry” dialog;

I think the third solution would be the better from a UX point and — possibly — the easiest one code-wise.

Segfault in Fedora 25

Starting Application does work.
Segfault appears anytime you open a safe file.
Tried RPM and building from source.

Status of OS X port?

What is the status of the OS X port with wxWidgets? Is this going to become an official build? I haven't tested the Linux or Windows build yet, so I'm not sure of what functionality is actually missing from wxWidgets, but there definitely are several issues I've seen with the UI. For example:

  • On-screen keyboard buttons do nothing
  • Some help pages, for example Edit Menu, throw up an error "iCCP: known incorrect sRGB profile" when displayed. I imagine a re-save on the PNGs should fix that.
  • Help > Visit Password Safe website does nothing (seems duplicate functionality with the About box)
  • English is the only language that can be chosen
  • Delete Group contextual menu is disabled
  • Customize Main Toolbar menu does nothing

I wouldn't mind contributing improvements for the Mac version. I started working on my own password manager but really would prefer working on an existing open source project instead of duplicating efforts.

Lastly, I think moving to CMake would greatly simplify the project files. It could replace all the project files for Visual Studio, Xcode, CodeLite and CodeBlocks. I could contribute the initial version to replace the Xcode project.

Linux: "Recent Databases on File Menu" option doesn't work

Toggling the option "Recent Databases on File Menu rather than as a
sub-menu" from Manage->Options->System doesn't do anything in
the Linux version. On Windows, when I toggle this option and restart the
process, the Recent Databases list changes between being displayed in a
sub-menu and directly in the File menu.

I'm using Passwordsafe for Linux version 0.97BETA.

Confirmed by another person on the forum: https://sourceforge.net/p/passwordsafe/discussion/134801/thread/423341de/.

pwsafe fails to build on 10.3-RELEASE-p5

With x11-toolkits/wxgtk30 and devel/gmake installed building pwsafe with the instructions from README.FREEBSD the build fails with the following error[s]:

$ NO_YUBI=1 gmake release
gmake unicoderelease
gmake[1]: Entering directory '/usr/home/dereks/repos/pwsafe'
gmake -C src/os/unix unicoderelease
gmake[2]: Entering directory '/usr/home/dereks/repos/pwsafe/src/os/unix'
In file included from UUID.cpp:16:
./../UUID.h:22:10: fatal error: 'uuid/uuid.h' file not found

include <uuid/uuid.h> // aptitude install uuid-dev

     ^

1 error generated.
In file included from UUID.cpp:16:
./../UUID.h:22:10: fatal error: 'uuid/uuid.h' file not found

include <uuid/uuid.h> // aptitude install uuid-dev

     ^

1 error generated.
gmake all CONFIG=unicoderelease
gmake[3]: Entering directory '/usr/home/dereks/repos/pwsafe/src/os/unix'
In file included from UUID.cpp:16:
./../UUID.h:22:10: fatal error: 'uuid/uuid.h' file not found

include <uuid/uuid.h> // aptitude install uuid-dev

     ^

1 error generated.
clang++ --stdlib=libc++ -I/usr/local/include --stdlib=libc++ -I/usr/local/include -fPIC -Wall -I../../core -I../.. /usr/local/bin/wxgtk2u-3.0-config --debug=no --unicode=yes --inplace --cxxflags --stdlib=libc++ -I/usr/local/include --stdlib=libc++ -I/usr/local/include -fPIC -Wall -I../../core -I../.. /usr/local/bin/wxgtk2u-3.0-config --debug=no --unicode=yes --inplace --cxxflags -std=c++11 -std=c++11 -O0 -g -ggdb -DUNICODE -DDEBUG -O -DUNICODE -DNDEBUG -c debug.cpp -o ../../../obj/unicoderelease/os/debug.o
clang++ --stdlib=libc++ -I/usr/local/include --stdlib=libc++ -I/usr/local/include -fPIC -Wall -I../../core -I../.. /usr/local/bin/wxgtk2u-3.0-config --debug=no --unicode=yes --inplace --cxxflags --stdlib=libc++ -I/usr/local/include --stdlib=libc++ -I/usr/local/include -fPIC -Wall -I../../core -I../.. /usr/local/bin/wxgtk2u-3.0-config --debug=no --unicode=yes --inplace --cxxflags -std=c++11 -std=c++11 -O0 -g -ggdb -DUNICODE -DDEBUG -O -DUNICODE -DNDEBUG -c dir.cpp -o ../../../obj/unicoderelease/os/dir.o
clang++ --stdlib=libc++ -I/usr/local/include --stdlib=libc++ -I/usr/local/include -fPIC -Wall -I../../core -I../.. /usr/local/bin/wxgtk2u-3.0-config --debug=no --unicode=yes --inplace --cxxflags --stdlib=libc++ -I/usr/local/include --stdlib=libc++ -I/usr/local/include -fPIC -Wall -I../../core -I../.. /usr/local/bin/wxgtk2u-3.0-config --debug=no --unicode=yes --inplace --cxxflags -std=c++11 -std=c++11 -O0 -g -ggdb -DUNICODE -DDEBUG -O -DUNICODE -DNDEBUG -c env.cpp -o ../../../obj/unicoderelease/os/env.o
clang++ --stdlib=libc++ -I/usr/local/include --stdlib=libc++ -I/usr/local/include -fPIC -Wall -I../../core -I../.. /usr/local/bin/wxgtk2u-3.0-config --debug=no --unicode=yes --inplace --cxxflags --stdlib=libc++ -I/usr/local/include --stdlib=libc++ -I/usr/local/include -fPIC -Wall -I../../core -I../.. /usr/local/bin/wxgtk2u-3.0-config --debug=no --unicode=yes --inplace --cxxflags -std=c++11 -std=c++11 -O0 -g -ggdb -DUNICODE -DDEBUG -O -DUNICODE -DNDEBUG -c file.cpp -o ../../../obj/unicoderelease/os/file.o
clang++ --stdlib=libc++ -I/usr/local/include --stdlib=libc++ -I/usr/local/include -fPIC -Wall -I../../core -I../.. /usr/local/bin/wxgtk2u-3.0-config --debug=no --unicode=yes --inplace --cxxflags --stdlib=libc++ -I/usr/local/include --stdlib=libc++ -I/usr/local/include -fPIC -Wall -I../../core -I../.. /usr/local/bin/wxgtk2u-3.0-config --debug=no --unicode=yes --inplace --cxxflags -std=c++11 -std=c++11 -O0 -g -ggdb -DUNICODE -DDEBUG -O -DUNICODE -DNDEBUG -c logit.cpp -o ../../../obj/unicoderelease/os/logit.o
clang++ --stdlib=libc++ -I/usr/local/include --stdlib=libc++ -I/usr/local/include -fPIC -Wall -I../../core -I../.. /usr/local/bin/wxgtk2u-3.0-config --debug=no --unicode=yes --inplace --cxxflags --stdlib=libc++ -I/usr/local/include --stdlib=libc++ -I/usr/local/include -fPIC -Wall -I../../core -I../.. /usr/local/bin/wxgtk2u-3.0-config --debug=no --unicode=yes --inplace --cxxflags -std=c++11 -std=c++11 -O0 -g -ggdb -DUNICODE -DDEBUG -O -DUNICODE -DNDEBUG -c media.cpp -o ../../../obj/unicoderelease/os/media.o
clang++ --stdlib=libc++ -I/usr/local/include --stdlib=libc++ -I/usr/local/include -fPIC -Wall -I../../core -I../.. /usr/local/bin/wxgtk2u-3.0-config --debug=no --unicode=yes --inplace --cxxflags --stdlib=libc++ -I/usr/local/include --stdlib=libc++ -I/usr/local/include -fPIC -Wall -I../../core -I../.. /usr/local/bin/wxgtk2u-3.0-config --debug=no --unicode=yes --inplace --cxxflags -std=c++11 -std=c++11 -O0 -g -ggdb -DUNICODE -DDEBUG -O -DUNICODE -DNDEBUG -c mem.cpp -o ../../../obj/unicoderelease/os/mem.o
clang++ --stdlib=libc++ -I/usr/local/include --stdlib=libc++ -I/usr/local/include -fPIC -Wall -I../../core -I../.. /usr/local/bin/wxgtk2u-3.0-config --debug=no --unicode=yes --inplace --cxxflags --stdlib=libc++ -I/usr/local/include --stdlib=libc++ -I/usr/local/include -fPIC -Wall -I../../core -I../.. /usr/local/bin/wxgtk2u-3.0-config --debug=no --unicode=yes --inplace --cxxflags -std=c++11 -std=c++11 -O0 -g -ggdb -DUNICODE -DDEBUG -O -DUNICODE -DNDEBUG -c pws_str.cpp -o ../../../obj/unicoderelease/os/pws_str.o
clang++ --stdlib=libc++ -I/usr/local/include --stdlib=libc++ -I/usr/local/include -fPIC -Wall -I../../core -I../.. /usr/local/bin/wxgtk2u-3.0-config --debug=no --unicode=yes --inplace --cxxflags --stdlib=libc++ -I/usr/local/include --stdlib=libc++ -I/usr/local/include -fPIC -Wall -I../../core -I../.. /usr/local/bin/wxgtk2u-3.0-config --debug=no --unicode=yes --inplace --cxxflags -std=c++11 -std=c++11 -O0 -g -ggdb -DUNICODE -DDEBUG -O -DUNICODE -DNDEBUG -c pws_time.cpp -o ../../../obj/unicoderelease/os/pws_time.o
clang++ --stdlib=libc++ -I/usr/local/include --stdlib=libc++ -I/usr/local/include -fPIC -Wall -I../../core -I../.. /usr/local/bin/wxgtk2u-3.0-config --debug=no --unicode=yes --inplace --cxxflags --stdlib=libc++ -I/usr/local/include --stdlib=libc++ -I/usr/local/include -fPIC -Wall -I../../core -I../.. /usr/local/bin/wxgtk2u-3.0-config --debug=no --unicode=yes --inplace --cxxflags -std=c++11 -std=c++11 -O0 -g -ggdb -DUNICODE -DDEBUG -O -DUNICODE -DNDEBUG -c rand.cpp -o ../../../obj/unicoderelease/os/rand.o
clang++ --stdlib=libc++ -I/usr/local/include --stdlib=libc++ -I/usr/local/include -fPIC -Wall -I../../core -I../.. /usr/local/bin/wxgtk2u-3.0-config --debug=no --unicode=yes --inplace --cxxflags --stdlib=libc++ -I/usr/local/include --stdlib=libc++ -I/usr/local/include -fPIC -Wall -I../../core -I../.. /usr/local/bin/wxgtk2u-3.0-config --debug=no --unicode=yes --inplace --cxxflags -std=c++11 -std=c++11 -O0 -g -ggdb -DUNICODE -DDEBUG -O -DUNICODE -DNDEBUG -c run.cpp -o ../../../obj/unicoderelease/os/run.o
clang++ --stdlib=libc++ -I/usr/local/include --stdlib=libc++ -I/usr/local/include -fPIC -Wall -I../../core -I../.. /usr/local/bin/wxgtk2u-3.0-config --debug=no --unicode=yes --inplace --cxxflags --stdlib=libc++ -I/usr/local/include --stdlib=libc++ -I/usr/local/include -fPIC -Wall -I../../core -I../.. /usr/local/bin/wxgtk2u-3.0-config --debug=no --unicode=yes --inplace --cxxflags -std=c++11 -std=c++11 -O0 -g -ggdb -DUNICODE -DDEBUG -O -DUNICODE -DNDEBUG -c utf8conv.cpp -o ../../../obj/unicoderelease/os/utf8conv.o
clang++ --stdlib=libc++ -I/usr/local/include --stdlib=libc++ -I/usr/local/include -fPIC -Wall -I../../core -I../.. /usr/local/bin/wxgtk2u-3.0-config --debug=no --unicode=yes --inplace --cxxflags --stdlib=libc++ -I/usr/local/include --stdlib=libc++ -I/usr/local/include -fPIC -Wall -I../../core -I../.. /usr/local/bin/wxgtk2u-3.0-config --debug=no --unicode=yes --inplace --cxxflags -std=c++11 -std=c++11 -O0 -g -ggdb -DUNICODE -DDEBUG -O -DUNICODE -DNDEBUG -c KeySend.cpp -o ../../../obj/unicoderelease/os/KeySend.o
KeySend.cpp:18:1: warning: 'PrefT' defined as a struct template here but previously declared as a class template [-Wmismatched-tags]
struct PrefTPWSprefs::BoolPrefs {
^
KeySend.cpp:15:1: note: did you mean struct here?
class PrefT;
^~~~~
struct
KeySend.cpp:23:1: warning: 'PrefT' defined as a struct template here but previously declared as a class template [-Wmismatched-tags]
struct PrefTPWSprefs::IntPrefs {
^
KeySend.cpp:15:1: note: did you mean struct here?
class PrefT;
^~~~~
struct
KeySend.cpp:28:1: warning: 'PrefT' defined as a struct template here but previously declared as a class template [-Wmismatched-tags]
struct PrefTPWSprefs::StringPrefs {
^
KeySend.cpp:15:1: note: did you mean struct here?
class PrefT;
^~~~~
struct
3 warnings generated.
clang++ --stdlib=libc++ -I/usr/local/include --stdlib=libc++ -I/usr/local/include -fPIC -Wall -I../../core -I../.. /usr/local/bin/wxgtk2u-3.0-config --debug=no --unicode=yes --inplace --cxxflags --stdlib=libc++ -I/usr/local/include --stdlib=libc++ -I/usr/local/include -fPIC -Wall -I../../core -I../.. /usr/local/bin/wxgtk2u-3.0-config --debug=no --unicode=yes --inplace --cxxflags -std=c++11 -std=c++11 -O0 -g -ggdb -DUNICODE -DDEBUG -O -DUNICODE -DNDEBUG -c sleep.cpp -o ../../../obj/unicoderelease/os/sleep.o
clang++ --stdlib=libc++ -I/usr/local/include --stdlib=libc++ -I/usr/local/include -fPIC -Wall -I../../core -I../.. /usr/local/bin/wxgtk2u-3.0-config --debug=no --unicode=yes --inplace --cxxflags --stdlib=libc++ -I/usr/local/include --stdlib=libc++ -I/usr/local/include -fPIC -Wall -I../../core -I../.. /usr/local/bin/wxgtk2u-3.0-config --debug=no --unicode=yes --inplace --cxxflags -std=c++11 -std=c++11 -O0 -g -ggdb -DUNICODE -DDEBUG -O -DUNICODE -DNDEBUG -c xsendstring.cpp -o ../../../obj/unicoderelease/os/xsendstring.o
Stack dump:
0. Program arguments: /usr/bin/clang++ -cc1 -triple x86_64-unknown-freebsd10.3 -emit-obj -disable-free -disable-llvm-verifier -main-file-name xsendstring.cpp -mrelocation-model pic -pic-level 2 -mdisable-fp-elim -masm-verbose -mconstructor-aliases -munwind-tables -target-cpu x86-64 -gdwarf-2 -coverage-file /usr/home/dereks/repos/pwsafe/src/os/unix/../../../obj/unicoderelease/os/xsendstring.o -resource-dir /usr/bin/../lib/clang/3.4.1 -D _FILE_OFFSET_BITS=64 -D WXUSINGDLL -D WXGTK -D _THREAD_SAFE -D _FILE_OFFSET_BITS=64 -D WXUSINGDLL -D WXGTK -D _THREAD_SAFE -D UNICODE -D DEBUG -D UNICODE -D NDEBUG -I /usr/local/include -I /usr/local/include -I ../../core -I ../.. -I /usr/local/lib/wx/include/gtk2-unicode-3.0 -I /usr/local/include/wx-3.0 -I /usr/local/include -I /usr/local/include -I ../../core -I ../.. -I /usr/local/lib/wx/include/gtk2-unicode-3.0 -I /usr/local/include/wx-3.0 -internal-isystem /usr/include/c++/v1 -O2 -Wall -Wall -std=c++11 -fdeprecated-macro -fdebug-compilation-dir /usr/home/dereks/repos/pwsafe/src/os/unix -ferror-limit 19 -fmessage-length 204 -pthread -mstackrealign -fobjc-runtime=gnustep -fcxx-exceptions -fexceptions -fdiagnostics-show-option -fcolor-diagnostics -vectorize-loops -vectorize-slp -o ../../../obj/unicoderelease/os/xsendstring.o -x c++ xsendstring.cpp

  1.  <eof> parser at end of file
    
  2.  Per-file LLVM IR generation
    
  3.  xsendstring.cpp:428:5: Generating code for declaration 'ModifierFactory::ModifierCreator<unsigned long>::ModifierCreator'
    

clang++: error: unable to execute command: Segmentation fault (core dumped)
clang++: error: clang frontend command failed due to signal (use -v to see invocation)
FreeBSD clang version 3.4.1 (tags/RELEASE_34/dot1-final 208032) 20140512
Target: x86_64-unknown-freebsd10.3
Thread model: posix
clang++: note: diagnostic msg: PLEASE submit a bug report to https://bugs.freebsd.org/submit/ and include the crash backtrace, preprocessed source, and associated run script.
clang++: note: diagnostic msg:


PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang++: note: diagnostic msg: /tmp/xsendstring-1c725e.cpp
clang++: note: diagnostic msg: /tmp/xsendstring-1c725e.sh
clang++: note: diagnostic msg:


gmake[3]: *** [Makefile:79: ../../../obj/unicoderelease/os/xsendstring.o] Error 254
gmake[3]: Leaving directory '/usr/home/dereks/repos/pwsafe/src/os/unix'
gmake[2]: *** [Makefile:84: unicoderelease] Error 2
gmake[2]: Leaving directory '/usr/home/dereks/repos/pwsafe/src/os/unix'
gmake[1]: *** [Makefile.freebsd:59: unicoderelease] Error 2
gmake[1]: Leaving directory '/usr/home/dereks/repos/pwsafe'
gmake: *** [Makefile.freebsd:68: release] Error 2

Read-only when opening PassSafes v.20?

In the latest versions of PassSafe V3.38 and V3.39 we are unable to edit PassWord safes created with a v2 database. I can't see an option to convert/upgrade the database either.

The files appear to always be in Read-Only mode. If you lock, then unlock, it lets you create new entries, but it is unable to Save the changes.

Can't change default password policy

I can create a different password policy and save it but when I edit the default policy it is now saved when I click OK. I am using a version 4 database under pwsafe 3.41 under Windows 8.1.

HMAC of password data computed over partial plaintext

The documentation for the v3 and v4 password formats specifies that the HMAC is computed over the plaintext data. This leads to two issues.

First, the random padding is not MAC'd, leading to a potential oracle where an attacker can determine the contents of a byte or bytes with a tampered file, provided a user indicates whether a password file can be opened. A similar attack can be carried out against OpenPGP: https://www.schneier.com/cryptography/archives/2002/01/implementation_of_ch.html.

Second, standard practice is to encrypt, then MAC. TLS has demonstrated that all sorts of security issues can occur when using CBC with MAC-then-encrypt. While PasswordSafe is generally not an online protocol, so attacks are not as easy to carry out, it still seems like an unnecessary risk to operate on data that could be tampered with without verifying its integrity first.

I'm not a cryptographer, so you should definitely consult one on this, but I am an implementer of the format. I think it would be prudent in future revisions of the specification to consider defining the HMAC as operating on the entire ciphertext of the file, padding and all, for increased robustness.

I didn't report this as a security vulnerability because I don't have a way to practically exploit this, although I didn't try.

Missing IT language

Where is the built-in support for italian? I can't see the relative dll in the bin.zip for the 3.39.1 release.

Thanks for your work.

Linux: Dates and Times doesn't work

Configuring an expiring date or the number of days after which a password is expired doesn't do anything. I select Password Expiry for "In" or "On", click OK, then when I return to edit the entry, the Password Expiry is set to Never. It doesn't matter if I apply Password Expiry to a new entry or I edit an existing one.

Auto Type replaces @ with ⅛

Every time I use auto type and the username containts an @ character, it is replaced with ⅛.

I'm using v0.96-beta on Ubuntu Linux.

3.16.0-54-generic #73~14.04.1-Ubuntu SMP Tue Nov 10 17:46:26 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

PasswordSafe right-click menu

PasswordSafe 0.99 (Linux BETA) under Debian 8.5 and KDE 4

"Display subset of Password" does not work. No discernible activity.

Fedora 24: some issues

Hello,
Just installed Fedora 24 x86_64.
I'm facing some issues with 0.98.1BETA.

  • If I install the RPM provided by this site (pwsafe-0.98.1BETA.x86_64.rpm), I get the following message:
10:20:53 PM: Warning: Mismatch between the program and library build versions detected.
The library used 3.0 (wchar_t,compiler with C++ ABI 1010,wx containers,compatible with 2.8),
and your program used 3.0 (wchar_t,compiler with C++ ABI 1009,wx containers,compatible with 2.8).
Could not initialize help subsystem.

the program will start but:

  1. it doesn't remember the history (every time I run it, it starts with an empty history)
  2. it doesn't install an entry in the system menu
  3. the UI is weird (instead of a window with white background I see a window with a grey background); but maybe this is the new look&feel of WxGTK3...?
  • If I try to create my own RPM (I've used the spec file in the install/rpm directory), install it and run, I get the following message:
/usr/include/wx-3.0/wx/strvararg.h(456): assert "(argtype & (wxFormatStringSpecifier<T>::value)) == argtype" failed in wxArgNormalizer(): format specifier doesn't match argument type
pwsafe:[14682]: PWSprefs - using existing config file: /home/sguazt//.pwsafe/pwsafe.cfg [R/W]
Segmentation fault (core dumped)

and the program won't start

Any idea?

Thank you very much!

Marco

Visual Studio 2015 build fails due to unresolved symbols in usp10.lib

A recent build change introduced the use of usp10.lib, but some/none of the Visual Studio projects were not updated. The following errors came from a build using Visual Studio 2015 CE with the pwsafe-14.sln solution. Adding usp10.lib to the Linker Input Additional Dependencies will resolve this issue.

To reproduce the problem:

  1. Open pwsafe-14.sln in VS.
  2. Select DebugM and x64 for a build configuration.
  3. Build | Rebuild solution.
  4. Note errors.

Error LNK2019 unresolved external symbol ScriptFreeCache referenced in function "private: bool __cdecl DboxMain::IsCharacterSupported(class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > &)" (?IsCharacterSupported@DboxMain@@AEAA_NAEAV?$basic_string@_WU?$char_traits@_W@std@@v?$allocator@_W@2@@std@@@z) pwsafe C:\Users\dhocker\Source\pwsafe\src\ui\Windows\DboxMain.obj 1
Error LNK2019 unresolved external symbol ScriptItemize referenced in function "private: bool __cdecl DboxMain::IsCharacterSupported(class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > &)" (?IsCharacterSupported@DboxMain@@AEAA_NAEAV?$basic_string@_WU?$char_traits@_W@std@@v?$allocator@_W@2@@std@@@z) pwsafe C:\Users\dhocker\Source\pwsafe\src\ui\Windows\DboxMain.obj 1
Error LNK2019 unresolved external symbol ScriptShape referenced in function "private: bool __cdecl DboxMain::IsCharacterSupported(class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > &)" (?IsCharacterSupported@DboxMain@@AEAA_NAEAV?$basic_string@_WU?$char_traits@_W@std@@v?$allocator@_W@2@@std@@@z) pwsafe C:\Users\dhocker\Source\pwsafe\src\ui\Windows\DboxMain.obj 1
Error LNK1120 3 unresolved externals pwsafe C:\Users\dhocker\Source\pwsafe\build\bin\pwsafe\DebugM\pwsafe.exe 1

Missing dependencies in deb package

PasswordSafe 0.99 (Linux BETA) under Debian 8.5 and KDE 4

missing dependency in passwordsafe-debian-0.99.0-BETA.amd64.deb : libykpers-1-1 & libyubikey0 inhibits installation via dpkg.

CMakeLists.txt assumes gzip is located in /bin

I have a distro where gzip is in /usr/bin. This causes a build failure, because /bin/gzip is hard coded in CMakeLists.txt

pwsafe/build $ which gzip
/usr/bin/gzip
pwsafe/build $ cmake -DNO_YUBI=ON ..
-- The CXX compiler identification is GNU 6.3.0
-- The C compiler identification is GNU 6.3.0
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Found GTest: /usr/lib64/libgtest.so  
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Found wxWidgets: -L/usr/lib64;-pthread;;;-lwx_gtk2u_adv-3.0;-lwx_baseu-3.0;-lwx_gtk2u_core-3.0;-lwx_gtk2u_html-3.0;-lwx_baseu_net-3.0 (found version "3.0.2") 
-- Looking for uuid/uuid.h
-- Looking for uuid/uuid.h - found
-- Yubikey support disabled
-- Configuring done
-- Generating done
-- Build files have been written to: /home/saintdev/Projects/pwsafe/build
pwsafe/build $ make
Scanning dependencies of target manpage
[  1%] Generating pwsafe.1.gz
make[2]: /bin/gzip: Command not found
make[2]: *** [CMakeFiles/manpage.dir/build.make:61: pwsafe.1.gz] Error 127
make[1]: *** [CMakeFiles/Makefile2:68: CMakeFiles/manpage.dir/all] Error 2
make: *** [Makefile:161: all] Error 2

This was changed in commit 8cd6f81

0.97BETA: cli does not build

hello,
does the cli is usable ? I'm able to build the GUI, but cli fails.
Look like its code is out of date compared to "core" interfaces/ functions ?

$ cd pwsafe-0.97BETA/src/ui/cli
$ make
[...]
g++ -g -Wall -I../../core -I../.. -DUSE_XML_LIBRARY=XERCES -DWCHAR_INCOMPATIBLE_XMLCH -DUNICODE -c main.cpp -o ../../../obj/unicodedebug/cli/main.o
main.cpp: In function 'int ImportText(PWScore&, const StringX&)':
main.cpp:275:46: error: no matching function for call to 'PWScore::ImportPlaintextFile(StringX&, const StringX&, wchar_t&, wchar_t&, bool&, std::wstring&, int&, int&, int&, int&, CReport&, Command*&)'
                                     rpt, pcmd);
                                              ^
main.cpp:275:46: note: candidate is:
In file included from main.cpp:14:0:
../../core/PWScore.h:261:7: note: int PWScore::ImportPlaintextFile(const StringX&, const StringX&, const TCHAR&, const TCHAR&, const bool&, stringT&, int&, int&, int&, int&, int&, CReport&, Command*&)
   int ImportPlaintextFile(const StringX &ImportedPrefix,
       ^
../../core/PWScore.h:261:7: note:   candidate expects 13 arguments, 12 provided
main.cpp: In function 'int ImportXML(PWScore&, const StringX&)':
main.cpp:361:40: error: no matching function for call to 'PWScore::ImportXMLFile(const wchar_t*, const wchar_t*, const wchar_t*, bool&, std::wstring&, std::wstring&, std::wstring&, std::wstring&, int&, int&, int&, int&, int&, CReport&, Command*&)'
                               rpt, pcmd);
                                        ^
main.cpp:361:40: note: candidate is:
In file included from main.cpp:14:0:
../../core/PWScore.h:269:7: note: int PWScore::ImportXMLFile(const stringT&, const stringT&, const stringT&, const bool&, stringT&, stringT&, stringT&, stringT&, int&, int&, int&, int&, int&, int&, int&, int&, CReport&, Command*&)
   int ImportXMLFile(const stringT &ImportedPrefix,
       ^
../../core/PWScore.h:269:7: note:   candidate expects 18 arguments, 15 provided
Makefile:30: recipe for target '../../../obj/unicodedebug/cli/main.o' failed
make: *** [../../../obj/unicodedebug/cli/main.o] Error 1

libmagic on Linux

/usr/bin/file uses libmagic, I believe it would be a better idea to use magic_file() (see man 3 libmagic) instead of executing /usr/bin/file.

Does not build, target RUEList.o

Fedora 23, gcc 5.3.1-6, wxGTK3-3.0.2-19, cmake 3.5.2.
I type command make and this happens:

make[1]: Leaving directory '/wrk/safari/cvs/pwsafe/src/core'
make -C src/ui/wxWidgets CONFIG=unicodedebug
make[1]: Entering directory '/wrk/safari/cvs/pwsafe/src/ui/wxWidgets'
make[1]: *** No rule to make target 'GCCUnicodeDebug/RUEList.o', needed by 'GCCUnicodeDebug/pwsafe'.  Stop.
make[1]: Leaving directory '/wrk/safari/cvs/pwsafe/src/ui/wxWidgets'
Makefile.linux:50: recipe for target 'unicodedebug' failed
make: *** [unicodedebug] Error 2

Also, using mkdir build; cd build; cmake ..; make does not work:

In file included from /wrk/safari/cvs/pwsafe/src/ui/wxWidgets/pwsclip.cpp:31:0:
/wrk/safari/cvs/pwsafe/src/ui/wxWidgets/pwsclip.h:37:3: error: ‘wxMutex’ does not name a type
   wxMutex m_clipboardMutex;//*< mutex for clipboard access
   ^
[ 72%] Building CXX object CMakeFiles/pwsafe.dir/src/ui/wxWidgets/mainEdit.cpp.o
/wrk/safari/cvs/pwsafe/src/ui/wxWidgets/about.cpp: In member function ‘void CAbout::CreateControls()’:
/wrk/safari/cvs/pwsafe/src/ui/wxWidgets/about.cpp:145:102: error: invalid operands of types ‘const wxChar* {aka const wchar_t*}’ and ‘const wchar_t [14]’ to binary ‘operator+’
   wxStaticText* versionStaticText = new wxStaticText(aboutDialog, wxID_VERSIONSTR, _("Password Safe")+L" vx.yy (abcd)", wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT);
                                                                                                      ^
/wrk/safari/cvs/pwsafe/src/ui/wxWidgets/about.cpp:197:33: error: no matching function for call to ‘wxString(const char [12])’
   const wxString d(__DATE__), t(__TIME__);
                                 ^
[ 73%] Building CXX object CMakeFiles/pwsafe.dir/src/ui/wxWidgets/pwsmenushortcuts.cpp.o
/wrk/safari/cvs/pwsafe/src/ui/wxWidgets/optionspropsheet.cpp: In member function ‘void COptions::CreateControls()’:
/wrk/safari/cvs/pwsafe/src/ui/wxWidgets/optionspropsheet.cpp:255:45: error: ‘LBUSuffix’ was not declared in this scope
/wrk/safari/cvs/pwsafe/src/ui/wxWidgets/optionspropsheet.cpp:383:36: error: ‘LDCAStrings’ was not declared in this scope
     wxString tmp = _(DCAStrings[i]);
                                    ^

Linux: focus loss on password entry error

If I have any window open that's 'always on top' (eg guake), the password entry box doesn't get focus back after closing the error dialog; so if I'm not looking at the screen and just start typing again, it goes into the guake window. to reproduce:

  • open guake in always on top mode
  • open pwsafe
  • enter incorrect password
  • close error box (enter or mouse click 'ok')
  • type password
  • at this point the password is typed into guake

I also get the same behaviour with the Chrome hangouts extension when that's set to always on top.

setSelection works but setFocus doesn't seem to give the application focus again

System tray icon colors and transparency in Linux

The system tray icons in Linux have a white background instead of being transparent, and there's no way to set the color of the closed-database icon like there is in Windows (looks bad on a dark system tray background).

I'm working on a fix for this on my fork.

Autolock don't closes "edit" window

Hello,

In Linux version (pwsafe-0.95BETA-3.x86_64 on Fedora), if you don't close an "edit" window, you wait for autolock, and then, click on the task bar, pwsafe don't have closed the edit window, and you can access current opened "edit" window.
pwsafe-bug

I had 2 "unlock" window too, as I have restored passwordsafe without unlocking the safe, waited for autolock, and re-restored passwordsafe.

I don't have tested on Windows version.
Version 0.96 fails on start, no RPM for 0.97.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.