Commit Graph

132 Commits

Author SHA1 Message Date
Marius Kittler c04fdd6cc2 Use override 2018-12-21 17:31:50 +01:00
Marius Kittler af5d9147b4 Improve exception constructors 2018-12-21 17:31:24 +01:00
Martchus 2c856e3976 Add statistics 2018-12-21 01:12:53 +01:00
Martchus b9af93adbd Fix |= operator for flags 2018-12-19 00:14:59 +01:00
Martchus d4e24046d0 Fix includes in utils/openssl.h 2018-12-18 23:59:24 +01:00
Martchus 448c5b1a37 Improve reading/writing overall file
* Allow to hash password N times using SHA-256
* Use flags instead of bool parameter
* Expose extended header
* Fix bugs when reading/writing extended headers
* Store password as std::string

Reading files written with previous versions is still
possible. If new features are not used it is also possible
to read new files with previous versions.
2018-12-18 23:17:19 +01:00
Martchus d9edcc4083 Apply clang-format 2018-12-08 19:09:17 +01:00
Martchus ff76846e8b Don't use pubsetbuf() when using libc++
Otherwise the eof bit is set on attempt to read
2018-12-03 00:28:24 +01:00
Martchus 60d8972dcb Improve error handling when loading file
* Handle IO errors when reading internal buffer
* Throw an error when the decompressed or decrypted buffer
  is empty
2018-12-03 00:26:11 +01:00
Martchus 7fd253f895 Read directly from the vector's buffer 2018-09-08 19:50:28 +02:00
Martchus 51442d0b68 Improve coding style in PasswordFile 2018-09-08 19:50:28 +02:00
Martchus e6f66ce932 Fix warnings, improve coding style 2018-09-07 01:14:21 +02:00
Martchus 30a95e2ffc Add a separate write() method to handle file opening manually
Opening the file manually can be useful, eg. when dealing with
Androids storage access framework.
2018-09-07 00:58:40 +02:00
Martchus e265bbe733 Allow to access underlying file stream directly 2018-09-05 00:33:01 +02:00
Martchus 4c6a271eb8 Improve c'tors and d'tors
* Provide move c'tor
* Actually copy the entries and header info
* Remove useless close() in d'tor (should be called anyways)
2018-09-05 00:32:32 +02:00
Martchus f448e34cd8 Use IoUtilities::NativeFileStream in PasswordFile
* Allows to support UTF-8 characters in the path under Windows
* Allows to open a file from existing file descriptor
* Requires c++utilities to be compiled with USE_NATIVE_FILE_BUFFER
  to take effect.
2018-09-05 00:29:36 +02:00
Martchus ed872b0486 Fix typo 2018-09-04 20:24:43 +02:00
Martchus 405afe4e31 Make Field default-constructable 2018-06-13 00:40:16 +02:00
Martchus 69161989ae Fix missing std prefix 2018-06-12 21:49:16 +02:00
Martchus 968e597c24 Support "file://" protocol 2018-06-12 21:47:38 +02:00
Martchus ca9ac4f747 Make include guards more unique and consistent 2018-06-09 22:30:07 +02:00
Martchus 537c326510 Test Field 2018-06-09 22:24:03 +02:00
Martchus 132be3fd8b Fix making labels unique 2018-06-09 22:09:33 +02:00
Martchus 76e5eec85b Add tests for entry classes 2018-06-09 21:44:43 +02:00
Martchus c6dd177799 Fix NodeEntry::replaceChild() to update indices/children correctly 2018-06-09 21:18:13 +02:00
Martchus ba1e58c1e5 Fix NodeEntry::deleteChildren() to update indices correctly 2018-06-09 21:17:50 +02:00
Martchus a7b597759b Improve coding style in Io classes 2018-06-09 21:17:01 +02:00
Martchus 5eec94baac Make OpenSslRandomDevice usable with uniform_int_distribution 2018-06-09 19:47:50 +02:00
Martchus 0e40562866 Improve coding style in PasswordFile tests 2018-06-09 18:35:26 +02:00
Martchus 7c619b6d62 Fix error message for compression 2018-06-09 18:35:05 +02:00
Martchus d80cb7233a Apply clang-format 2018-03-20 20:11:31 +01:00
Martchus fbd43b86e9 Use noexcept directly, C++ 14 is required anyways 2018-03-20 20:11:13 +01:00
Martchus 2e65843687 Fix typo 2017-07-04 22:45:10 +02:00
Martchus fa38238f96 Fix compiling tests under 32-bit arch 2017-05-31 00:41:44 +02:00
Martchus 29220159fa Apply clang-format 2017-05-01 03:25:30 +02:00
Martchus d4bb111800 Extend README.md 2017-04-27 22:41:42 +02:00
Martchus cf04af93a4 Don't load OpenSSL config
* Doesn't seem to be required for just doing some AES
* OPENSSL_config(NULL) is deprecated anyways
2017-04-27 22:31:10 +02:00
Martchus 2b28fbcc66 Use CPPUNIT_ASSERT_EQUAL with C++14 string literal 2017-02-06 18:38:02 +01:00
Martchus 94bddabd36 Declare public dependencies 2016-11-08 20:02:31 +01:00
Martchus 0b9a0fe326 Fix decoration for static builds 2016-08-29 15:42:07 +02:00
Martchus a628f0383a Fix detecting static 3rd party libs 2016-08-19 16:17:26 +02:00
Martchus 78b4f9f286 Generate config header in extra module 2016-07-27 21:40:22 +02:00
Martchus dffcb742f9 Find 3rd party libs using new module 2016-07-22 01:36:23 +02:00
Martchus 5ffe22a3a9 Use workaround for GCC Bug 66145 2016-06-14 22:56:41 +02:00
Martchus c92fdf2256 Remove doxygen file (use template instead) 2016-06-10 23:58:02 +02:00
Martchus dcfadcc5d8 Add API doc 2016-06-10 23:25:21 +02:00
Martchus c6f12b31f9 added version constraints 2016-04-25 22:24:44 +02:00
Martchus d20cf3b5b1 reduce code duplication in build system
- get rid of qmake project file
- provide CMake modules for common tasks
- provide templates for *.desktop files
2016-04-16 00:51:17 +02:00
Martchus f6ebea4c49 fixed description 2016-03-10 22:18:50 +01:00
Martchus 22619af7fb added tests 2016-02-28 01:07:58 +01:00