Commit Graph

35 Commits

Author SHA1 Message Date
Janek Bevendorff
ebc006c4b9
Add keepassxc man page and move cli man page to share folder (#3665) 2019-10-25 20:45:38 +02:00
Jonathan White
e50261a99c macOS 10.15: Request screen reader permission for AutoType
* Fix #3609 - Request screen reader permission by faking a 1px screenshot. Thanks to MacPass for this idea.
* Fix #3578 - Remove duplicate sandbox entitlement
* Fix #3270 - Use executable path reference for libquazip
2019-10-15 22:12:45 -04:00
Jacob Sachs
dbe15d32e5 CLI: Add Import XML command (#3572)
The CLI now contains an "import" command that creates a new database from the specified XML export. The new database is in kdbx 4 format, and does not currently accept a keyfile in database creation.

This change is required to create new databases from XML backups.

Fixes #2458
2019-10-15 22:10:45 -04:00
James Ring
b1eda37cca CLI: Add interactive session mode command open
This change adds a GNU Readline-based interactive mode to keepassxc-cli. If GNU Readline is not available, commands are just read from stdin with no editing or auto-complete support.

DatabaseCommand is modified to add the path to the current database to the arguments passed to executeWithDatabase. In this way, instances of DatabaseCommand do not have to prompt to re-open the database after each invocation, and existing command implementations do not have to be changed to support interactive mode.

This change also introduces a new way of handling commands between interactive and batch modes.

* Fixes #3224.
* Ran make format
2019-09-28 11:24:42 -04:00
louib
19f87ca057 CLI: Add group commands 2019-09-22 21:13:50 -04:00
louib
77fcde875e CLI: Export database as CSV
* Changed `Extract` to `Export` to support additional formats
* Allow database expot as CSV.  Added a `--format` option to the `Export` command for that, which defaults to xml, so the current behavior is unchanged.
*The `CsvExporter` had to be refactored a bit, but nothing major. It can
now print to a file or return a string.
2019-09-22 12:42:53 -04:00
Jonathan White
0e0cba653f CLI: add 'analyze' subcommand for offline HIBP breach checks
This new subcommand checks all passwords in the given database against a given list of SHA-1 password hashes. Such lists are available from the "Have I Been Pwned" project at https://haveibeenpwned.com/Passwords.

Note that this support offline checking only. The HIBP project also provides a web API for checking specific hash ranges; this is not currently supported.
2019-06-25 15:37:40 -04:00
louib
04360ed552 CLI Command cleanup
This PR cleans up the `Command` classes in the CLI, introducing a
`DatabaseCommand` class for the commands operating on a database,
and a `getCommandLineParser` command to centralize the arguments
parsing and validation.

The opening of the database based on the CLI arguments and options
is now centralized in `DatabaseCommand.execute`, making it easy to
add new database opening features (like YubiKey support for the CLI).

Also a couple of bugs fixed:
  * `Create` was still using `stdout` for some error messages.
  * `Diceware` and `Generate` were not validating that the word count was an integer.
  * `Diceware` was also using `stdout` for some error messages.
2019-06-14 18:15:38 -04:00
Janek Bevendorff
13eb1c0bbd Improve resilience against memory attacks
To reduce residual fragments of secret data in memory after
deallocation, this patch replaces the global delete operator with a
version that zeros out previously allocated memory. It makes use of
the new C++14 sized deallocation, but provides an unsized fallback
with platform-specific size deductions.

This change is only a minor mitigation and cannot protect against
buffer reallocations by the operating system or non-C++ libraries.
Thus, we still cannot guarantee all memory to be wiped after free.

As a further improvement, this patch uses libgcrypt and libsodium
to write long-lived master key component hashes into a secure
memory area and wipe it afterwards.

The patch also fixes compiler flags not being set properly on macOS.
2019-04-21 09:39:28 -04:00
Lars Wendler
4a0bb32c2e Don't call mandb
There are other man implementations beside man-db so it is not even sure
that the "mandb" binary even exists on all unices. Other than that, usually
there's a cron job running "mandb" on a daily basis.
2019-03-20 17:23:09 -04:00
Sami Vänttinen
b6bb2ca06a Fix macOS makefiles for cli and proxy (#2580) 2019-01-16 11:03:11 -05:00
JTL
dd5665c656 Multiple macOS fixes and include keepassxc-cli in DMG (#2165)
* Fixes including keepassxc-cli when building KeePassXC dmg on Mac.
resolves #1697
* Fix Qt search path and Properties display on macOS
* Simplify packaging POST_BUILD fixups
* Various fixes to get cli to run on macos
* Correct cli tests on macOS
* Several macOS related GUI test fixes
2018-12-28 18:32:25 -05:00
louib
8ac9d0a131 Add create command to keepassxc-cli (#2540)
* Add tests for CLI::Create
2018-12-19 23:10:46 -05:00
Gianluca Recchia
09fbb6d35a
Remove redundant headers from the build system
Headers are not to be placed amongst the source files in the CMake
script. The preprocessor and the linker will take care of glue all the
files together. Also, the "include_directories()" statement at the top
of the file already tells CMake where to look for all the needed
header files.
2018-10-31 14:19:01 +01:00
Janek Bevendorff
77adbef401 Reformat CMakeLists.txt files 2018-10-19 22:16:44 +02:00
thez3ro
4782b20d61
renamed passgen to generate and use diceware default wordcount 2018-02-07 17:35:20 +01:00
thez3ro
27f8aa095a
add diceware and passgen to the cli interface 2018-02-07 17:35:20 +01:00
Jonathan White
542ee42313
Add Argon2Kdf and enable parameters in db settings
Note: This implementation is not yet connected to the
database itself and will corrupt existing kdbx3 db's.

* Implemented memory and parallelism parameters for Argon2Kdf
* Using libargon2; libsodium does not support Argon2d algorithm
* Moved basic rounds parameter into Kdf class
* Reimplemented benchmark algorithm; previous was utterly broken
2018-01-13 14:23:30 -05:00
louib
471e684151
Rename EntropyMeter -> Estimate (#1250)
* EntropyMeter -> Estimate
* Cleaning estimate
* Documentation
* clang-formatting /cli
2017-12-04 09:46:23 -05:00
Yen Chi Hsuan
5a18b8de77 Use CMake's variable instead of hardcoded path to install man pages 2017-09-24 09:26:25 -04:00
louib
6e1fd0694f CLI : basic entry manipulation commands. (#919)
* CLI : basic entry manipulation commands.

* Code review.
2017-09-06 09:14:41 -04:00
louib
8b46feb085 Adding manpage 2017-08-22 09:57:10 -04:00
louib
b2107b5e27 Adding Locate command. (#829)
* Adding Locate command.

* Adding group searching in locate
2017-08-05 12:20:26 -04:00
louib
3b23e68540 Refactoring : Introducing Command class for CLI commands (#778) 2017-07-17 15:16:53 -04:00
Julian Andres Klode
34ff6d5f6b Change from ZXCVBN_FOUND to ZXCVBN_LIBRARIES to be aligned with other libraries 2017-06-28 15:19:09 +02:00
Gianfranco Costamagna
640b09c6b2 Add code to detect a system library for zxcvbn, with fallback to the embedded one in case it is not found 2017-06-28 15:13:57 +02:00
louib
a2e82dc883 Feature : clip command (#578) 2017-05-19 14:04:11 -04:00
Louis-Bertrand Varin
15c2727a1d Adding the show command. 2017-03-16 10:09:50 -04:00
Louis-Bertrand Varin
7ca475f968 Add list to keepassxc-cli 2017-03-16 10:09:50 -04:00
Louis-Bertrand Varin
e1e8f33f67 Install path on Mac. 2017-03-16 10:09:50 -04:00
Louis-Bertrand Varin
805600ad44 Installing keepassxc-cli executable. 2017-03-16 10:09:50 -04:00
Louis-Bertrand Varin
342d49d050 Missing zxcvbn dependency. 2017-03-16 10:09:50 -04:00
Louis-Bertrand Varin
992d8a90c7 Migrate entropy-meter to keepassxc-cli 2017-03-16 10:09:50 -04:00
Louis-Bertrand Varin
bf9b23539e Add dependency + adjust styling. 2017-03-16 10:09:50 -04:00
Louis-Bertrand Varin
52991f3d66 Add first keepassxc-cli version. 2017-03-16 10:09:50 -04:00