Compare commits
195 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
dd21defcf3 | ||
![]() |
25d46fbc03 | ||
![]() |
742a4f8980 | ||
![]() |
e84d6c0b06 | ||
![]() |
636d013557 | ||
![]() |
3e6b118267 | ||
![]() |
eee4ca9a26 | ||
![]() |
aecd154399 | ||
![]() |
f293aad74f | ||
![]() |
5804e63559 | ||
![]() |
fb2664b54a | ||
![]() |
10f4704724 | ||
![]() |
ea77ee686d | ||
![]() |
09bda6a882 | ||
![]() |
6fb498648d | ||
![]() |
5b47190fcc | ||
![]() |
663d4d99ae | ||
![]() |
4ea0a1058c | ||
![]() |
55ca5ca34c | ||
![]() |
cdf6cd7cd2 | ||
![]() |
4c1105f968 | ||
![]() |
a81771207f | ||
![]() |
2fe647fd7a | ||
![]() |
33b740ddd0 | ||
![]() |
f30604c6f6 | ||
![]() |
e9ea5b43ec | ||
![]() |
76a7dc79f4 | ||
![]() |
1594e5f4e3 | ||
![]() |
13a71ff1c8 | ||
![]() |
fa73f100f7 | ||
![]() |
b8da5e0577 | ||
![]() |
6165975bdc | ||
![]() |
10891a403d | ||
![]() |
37dabd2561 | ||
![]() |
9d0537bdab | ||
![]() |
063bf4a58d | ||
![]() |
d5d9a4c08c | ||
![]() |
eddd97fbab | ||
![]() |
53f88b93fb | ||
![]() |
59042563b3 | ||
![]() |
74d96fc06f | ||
![]() |
9c1a01ffe8 | ||
![]() |
4b92838b4f | ||
![]() |
b225b85644 | ||
![]() |
ebc0b3ff5f | ||
![]() |
64281b508b | ||
![]() |
6c9078c870 | ||
![]() |
6b51c66c68 | ||
![]() |
d04a6c4eb7 | ||
![]() |
28e2806e07 | ||
![]() |
6182b605c0 | ||
![]() |
8077cd028d | ||
![]() |
761e1aed58 | ||
![]() |
ee44a7fd70 | ||
![]() |
058e6d15c1 | ||
![]() |
83720e6960 | ||
![]() |
86550f2253 | ||
![]() |
881e6b5a8b | ||
![]() |
102ce04b2d | ||
![]() |
90bbb66409 | ||
![]() |
df40742223 | ||
![]() |
f7920c12d5 | ||
![]() |
51a08fc85e | ||
![]() |
655202a35a | ||
![]() |
cbbabf477a | ||
![]() |
0167ce60bd | ||
![]() |
d362b51450 | ||
![]() |
95aaa96fb8 | ||
![]() |
fa53c79ecf | ||
![]() |
27668b81a5 | ||
![]() |
f1a5e1c899 | ||
![]() |
ae55d88544 | ||
![]() |
25fc69dcd4 | ||
![]() |
1bb215156e | ||
![]() |
758d6f0c8d | ||
![]() |
798fee338b | ||
![]() |
9253a59f05 | ||
![]() |
18857cb60b | ||
![]() |
7bdcf05fc3 | ||
![]() |
32d115d22e | ||
![]() |
2e0d66039d | ||
![]() |
acb37db6f1 | ||
![]() |
0e1b32adcd | ||
![]() |
c20104e67c | ||
![]() |
32f2710430 | ||
![]() |
605f13ed4a | ||
![]() |
a6a4ed6ed4 | ||
![]() |
c3bd31c51b | ||
![]() |
90c63483c1 | ||
![]() |
3383882b95 | ||
![]() |
d5adf7592c | ||
![]() |
9ba88e2f13 | ||
![]() |
772964886e | ||
![]() |
70b73524c6 | ||
![]() |
a459344078 | ||
![]() |
63b2394ed0 | ||
![]() |
cdb10dce0c | ||
![]() |
9b5b1d6dce | ||
![]() |
c231abe13d | ||
![]() |
d81f6ea1c0 | ||
![]() |
1012d715b2 | ||
![]() |
a1a5e21834 | ||
![]() |
bc147070b6 | ||
![]() |
9176ddc3e1 | ||
![]() |
4f07a6592c | ||
![]() |
3ad205f733 | ||
![]() |
f01608f2bb | ||
![]() |
fa4837c67b | ||
![]() |
af466b120e | ||
![]() |
ce790dcd3a | ||
![]() |
e1d9a4fb53 | ||
![]() |
d8483d3350 | ||
![]() |
2d13588c95 | ||
![]() |
acf1d6b1ac | ||
![]() |
2ac1e0ed49 | ||
![]() |
0a0389ad56 | ||
![]() |
9d2f3d53d6 | ||
![]() |
9bd4c785e6 | ||
![]() |
c203ee7f09 | ||
![]() |
047251a07f | ||
![]() |
a6db8ba2db | ||
![]() |
71b1df39eb | ||
![]() |
82f056e5d0 | ||
![]() |
edae652d6f | ||
![]() |
b1f868cd6c | ||
![]() |
08f7c6f863 | ||
![]() |
7fa3e6ef90 | ||
![]() |
035c99896b | ||
![]() |
b56cc62942 | ||
![]() |
3e3990934a | ||
![]() |
faa4c07095 | ||
![]() |
245dccf91c | ||
![]() |
c6d4fd6d31 | ||
![]() |
14d0732e1d | ||
![]() |
dc07f01418 | ||
![]() |
3fa513a78d | ||
![]() |
0480c45d5c | ||
![]() |
44fa40ca72 | ||
![]() |
285f8981f8 | ||
![]() |
00c019c8c2 | ||
![]() |
3746452b88 | ||
![]() |
643ab4e95d | ||
![]() |
4978184480 | ||
![]() |
d80be4c459 | ||
![]() |
31924fcd89 | ||
![]() |
87cd9c6fb9 | ||
![]() |
8654b25e80 | ||
![]() |
f95019964e | ||
![]() |
59d20cb7ae | ||
![]() |
e83c9734e0 | ||
![]() |
f4510c64ec | ||
![]() |
64dda09565 | ||
![]() |
de168959a5 | ||
![]() |
ee55143c4a | ||
![]() |
5b923aee1a | ||
![]() |
f3d448485a | ||
![]() |
28328a7080 | ||
![]() |
fab76c04cc | ||
![]() |
74e1e7c9d1 | ||
![]() |
7de9ab25ab | ||
![]() |
233be1fc10 | ||
![]() |
bad015115d | ||
![]() |
e7e75c1277 | ||
![]() |
e245701533 | ||
![]() |
0cbfbc08f3 | ||
![]() |
731c89cc1c | ||
![]() |
b75abaad08 | ||
![]() |
40316ac7b9 | ||
![]() |
c4f625a3d1 | ||
![]() |
d954519e10 | ||
![]() |
f0a7c636a4 | ||
![]() |
bfeb75c900 | ||
![]() |
19bd6069d7 | ||
![]() |
60d4e06531 | ||
![]() |
9150febd02 | ||
![]() |
d8d5ddcab6 | ||
![]() |
8190b20efe | ||
![]() |
989348bbfb | ||
![]() |
679b93b601 | ||
![]() |
d1d191e2b0 | ||
![]() |
6f619271c4 | ||
![]() |
3163547096 | ||
![]() |
6da7188ecf | ||
![]() |
35285d72bb | ||
![]() |
07755c324a | ||
![]() |
8711d31f24 | ||
![]() |
a3c24b4bbc | ||
![]() |
4d20cb1654 | ||
![]() |
7e8a672de4 | ||
![]() |
107dcae26c | ||
![]() |
121d54c96a | ||
![]() |
6f28b5e2ba | ||
![]() |
dca70f809d | ||
![]() |
750a3383ca | ||
![]() |
dda70e1453 |
6
.github/CONTRIBUTING.md
vendored
@ -85,6 +85,12 @@ All pull requests must comply with the above requirements and with the [stylegui
|
|||||||
Translations are managed on [Transifex](https://www.transifex.com/keepassxc/keepassxc/) which offers a web interface.
|
Translations are managed on [Transifex](https://www.transifex.com/keepassxc/keepassxc/) which offers a web interface.
|
||||||
Please join an existing language team or request a new one if there is none.
|
Please join an existing language team or request a new one if there is none.
|
||||||
|
|
||||||
|
If you open a Pull Request with new strings that require translations, you will need to run the following:
|
||||||
|
```
|
||||||
|
./release-tool i18n lupdate
|
||||||
|
```
|
||||||
|
This will make the new strings available for translation in Transifex.
|
||||||
|
|
||||||
## Styleguides
|
## Styleguides
|
||||||
|
|
||||||
### Git branch strategy
|
### Git branch strategy
|
||||||
|
25
.tx/config
@ -1,14 +1,17 @@
|
|||||||
[main]
|
[main]
|
||||||
host = https://www.transifex.com
|
host = https://app.transifex.com
|
||||||
|
|
||||||
[keepassxc.share-translations-keepassxc-en-ts--develop]
|
[o:keepassxc:p:keepassxc:r:share-translations-keepassxc-en-ts--develop]
|
||||||
source_file = share/translations/keepassxc_en.ts
|
file_filter = share/translations/keepassxc_<lang>.ts
|
||||||
file_filter = share/translations/keepassxc_<lang>.ts
|
source_file = share/translations/keepassxc_en.ts
|
||||||
source_lang = en
|
type = QT
|
||||||
type = QT
|
minimum_perc = 0
|
||||||
|
resource_name = keepassxc_en.ts (develop)
|
||||||
|
|
||||||
|
[o:keepassxc:p:keepassxc:r:share-translations-keepassxc-en-ts--master]
|
||||||
|
file_filter = share/translations/keepassxc_<lang>.ts
|
||||||
|
source_file = share/translations/keepassxc_en.ts
|
||||||
|
type = QT
|
||||||
|
minimum_perc = 0
|
||||||
|
resource_name = keepassxc_en.ts (2.7.x stable)
|
||||||
|
|
||||||
[keepassxc.share-translations-keepassxc-en-ts--master]
|
|
||||||
source_file = share/translations/keepassxc_en.ts
|
|
||||||
file_filter = share/translations/keepassxc_<lang>.ts
|
|
||||||
source_lang = en
|
|
||||||
type = QT
|
|
||||||
|
134
CHANGELOG.md
@ -1,5 +1,139 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## 2.7.6 (2023-08-15)
|
||||||
|
|
||||||
|
### Changes
|
||||||
|
- Significant improvement to visual when drag/drop entries [#9698]
|
||||||
|
- Automatically prompt for Quick Unlock when showing unlock dialog [#9697]
|
||||||
|
- Improve colorful lock icon and fix file MIME icon on KDE [#9632]
|
||||||
|
- Ability to search by entry UUID [#9571]
|
||||||
|
- Add challenge-response support for NitroKey 3 [#9631]
|
||||||
|
- Auto-Type: Disable entry level Auto-Type when disabled at group/entry [#9672]
|
||||||
|
- Browser: Show warning when adding duplicate URL's to entry [#9588][#9635]
|
||||||
|
- Browser: Improve error message when proxy cannot be found [#9385]
|
||||||
|
|
||||||
|
### Fixes
|
||||||
|
- Fix crash on exit on macOS [#9620]
|
||||||
|
- Fix crash on search if entry doesn't have a group [#9633]
|
||||||
|
- Fix several issues with Quick Unlock [#9697]
|
||||||
|
- Enable save button when not auto-saving non-data changes [#9634]
|
||||||
|
- Several UI/UX fixes [#9647]
|
||||||
|
- Move toolbar back to top of window when disabling movement [#9699]
|
||||||
|
- Browser: Fix closing password generator dialog with X button [#9636]
|
||||||
|
- Browser: Fix handling of expired credentials [#9595]
|
||||||
|
- Windows: Prevent white flicker when launching application [#9637]
|
||||||
|
- Linux: Fix warning message about allow screencapture [#9638]
|
||||||
|
- FdoSecrets: Fix access confirmation dialog showing even when disabled [#9690]
|
||||||
|
|
||||||
|
## 2.7.5 (2023-05-14)
|
||||||
|
|
||||||
|
### Changes
|
||||||
|
- Add menu option to allow screenshots [#8841]
|
||||||
|
- Add support for Botan 3 [#9388]
|
||||||
|
- Increase max TOTP step to 24 hours [#9149]
|
||||||
|
- Improve HTML export layout [#8987]
|
||||||
|
- Turn search reset off by default [#9153]
|
||||||
|
- Use QClipboard::clear() instead of setting blank text [#9148]
|
||||||
|
- Hide group column header choice when not in search [#9171]
|
||||||
|
- Improve look of KeePassXC logo and icons [#9355]
|
||||||
|
- Add keyboard shortcuts for app and database settings [#9007]
|
||||||
|
- Hide rename button from attachments preview panel [#8842]
|
||||||
|
- Linux: Set SingleMainWindow in .desktop file [#7430]
|
||||||
|
|
||||||
|
### Fixes
|
||||||
|
- Fix crash when search clears while creating new entry [#9230]
|
||||||
|
- Fix crash when using Windows Hello in a Remote Desktop session [#9006]
|
||||||
|
- Fix crash in Group Edit after enabling Browser Integration [#8778]
|
||||||
|
- Fix canceling quick unlock when it is unavailable [#9034]
|
||||||
|
- Set password input field font correctly [#8732]
|
||||||
|
- Greatly improve performance when rendering entry view [#9398]
|
||||||
|
- Fix various accessibility issues [#9138]
|
||||||
|
- Fix arrows size when expand/collapse a group [#9096]
|
||||||
|
- Select the clone instead of the original after cloning an entry [#9070]
|
||||||
|
- Fix bugs with preview widget [#9170]
|
||||||
|
- Fix status bar update when switching to other DB [#9073]
|
||||||
|
- Fix database settings spin box bug [#9101]
|
||||||
|
- Fix Ctrl+Tab shortcut to cycle databases in unlock dialog [#8839]
|
||||||
|
- Fix TOTP QR code maintaining square ratio [#9027]
|
||||||
|
- Fix Auto-Type configuration page on custom sequence selection [#8752]
|
||||||
|
- Fix unexpected behavior of `--lock` when KeePassXC is not running [#8889]
|
||||||
|
- Make open folder icon exempt from "Apply group icon to entry" [#9205]
|
||||||
|
- Allow setting default file open directory with env var [#9192]
|
||||||
|
- SSH Agent: Fix support for AES-256/GCM openssh keys [#8968]
|
||||||
|
- Browser: Fix Native Messaging script path with BSD OS's [#8835]
|
||||||
|
- MacOS: Fix text selection for Auto-Type clear field [#9066]
|
||||||
|
- MacOS: Don't rely on AppleInterfaceStyle for theme switching [#8615]
|
||||||
|
- Windows: Remove registry detection of desktop shortcut [#9380]
|
||||||
|
|
||||||
|
## 2.7.4 (2022-10-29)
|
||||||
|
|
||||||
|
### Changes
|
||||||
|
- Add 2 months expiration preset [#8687]
|
||||||
|
- CLI: Add Unicode support on Windows [#8618]
|
||||||
|
|
||||||
|
### Fixes
|
||||||
|
- Fix crash on macOS when unlocking database [#8676]
|
||||||
|
- Fix display of passwords in preview panel [#8633]
|
||||||
|
- Fix clicking links in entry preview panel [#8644]
|
||||||
|
- Prevent expired entries search if no results returned [#8643]
|
||||||
|
- Browser: Revert code causing connection problems [#8665]
|
||||||
|
- Browser: Fix socket file symbolic link on Linux [#8656]
|
||||||
|
- Flatpak: Fix launching browser proxy service [#8680]
|
||||||
|
- SSH Agent: Fix paegent support on Windows [#8619]
|
||||||
|
|
||||||
|
## 2.7.3 (2022-10-23)
|
||||||
|
|
||||||
|
### Changes
|
||||||
|
- Enhance Tags Support and Add Saved Searches [#8435, #8607]
|
||||||
|
- Significant improvements to entry preview panel [#7993]
|
||||||
|
- Add password strength indicator to all password fields [#7885]
|
||||||
|
- Limit zxcvbn entropy estimation length to 128 characters [#7748]
|
||||||
|
- Try full URL path when fetching favicon [#8565]
|
||||||
|
- Hide usernames in preview panel when hidden in entry view [#8608]
|
||||||
|
- Enable dark title bar on windows when accent color is not used [#8498]
|
||||||
|
- Add option to display passwords in color in preview panel [#7097]
|
||||||
|
- Add XML Export option to GUI [#8524]
|
||||||
|
- Increase entropy required for a "good" password rating to 75 [#8523]
|
||||||
|
- Add shortcut to copy password with TOTP appended [#8443]
|
||||||
|
- Show entry count in status bar [#8435]
|
||||||
|
- Allow KeePassXC to be built without X11 [#8147]
|
||||||
|
- Enable use of VivoKey Apex and Dangerous Things FlexSecure tokens [#8332]
|
||||||
|
- Add setting for number of recent files [#8239]
|
||||||
|
- Add Ctrl+Tab shortcut to cycle databases in unlock dialog [#8168]
|
||||||
|
- Replace offensive words in eff_large.wordlist [#7968]
|
||||||
|
- Auto-Type: PICKCHARS can specify attribute and ignore BEEP [#8118]
|
||||||
|
- Linux: Add isHardwareKeySupported and refreshHardwareKeys to DBus methods [#8055]
|
||||||
|
- Add config variable to specify default database file name [#8042]
|
||||||
|
- Support numeric aware sorting on Windows and macOS [#8363]
|
||||||
|
- CLI: Add `db-edit` command [#8400]
|
||||||
|
- CLI: Add option to display all attributes with `show` command [#8256]
|
||||||
|
- CLI: Show UUID and tags with `show` and `clip` commands [#8241]
|
||||||
|
- Browser: Move socket into separate directory on Linux [#8030]
|
||||||
|
- Browser: Add group setting to omit WWW subdomain when matching URLs [#7988]
|
||||||
|
- FdoSecrets: Ask to unlock the database when creating items [#8022, #8028]
|
||||||
|
- FdoSecrets: Skip entries in recycle bin when searching [#8021]
|
||||||
|
|
||||||
|
### Fixes
|
||||||
|
- Fix potential deadlock in UI when saving [#8606]
|
||||||
|
- Fix newlines when copying notes from preview panel [#8542]
|
||||||
|
- Fix dark mode detection on Linux [#8477]
|
||||||
|
- Fix crash when deleting items in recycle bin while searching [#8117]
|
||||||
|
- Fix crash when trying to close database during unlock [#8144]
|
||||||
|
- Fix tabbing around the interface [#8435, #8520]
|
||||||
|
- Fix OPVault import when there are multiple OTP fields [#8436]
|
||||||
|
- Fix various Windows Hello bugs [#8354]
|
||||||
|
- Fix use of Apple Watch for Quick Unlock [#8311]
|
||||||
|
- Better handling of "Lock on Minimize" setting [#8202]
|
||||||
|
- Check for write permission before entering portable mode [#8447]
|
||||||
|
- Correct regex escape logic to prevent parse errors [#7778]
|
||||||
|
- Normalize slashes and file case for last used databases [#7864, #7214]
|
||||||
|
- Link ykcore against pthread [#7807]
|
||||||
|
- Auto-Type: Fix menu entries in selection dialog on Windows [#7987]
|
||||||
|
- Auto-Type: Fix use of modifiers under macOS [#8111]
|
||||||
|
- CLI: Fix output when using clip with the -t flag [#8271]
|
||||||
|
- Browser: Use asynchronous access confirm dialog [#8273]
|
||||||
|
- Browser: Always send database locked/unlocked status [#8114]
|
||||||
|
|
||||||
## 2.7.1 (2022-04-05)
|
## 2.7.1 (2022-04-05)
|
||||||
|
|
||||||
### Changes
|
### Changes
|
||||||
|
@ -62,6 +62,27 @@ if(UNIX AND NOT APPLE)
|
|||||||
endif()
|
endif()
|
||||||
option(WITH_XC_DOCS "Enable building of documentation" ON)
|
option(WITH_XC_DOCS "Enable building of documentation" ON)
|
||||||
|
|
||||||
|
set(WITH_XC_X11 ON CACHE BOOL "Enable building with X11 deps")
|
||||||
|
|
||||||
|
if(APPLE)
|
||||||
|
# Perform the platform checks before applying the stricter compiler flags.
|
||||||
|
# Otherwise the kSecAccessControlTouchIDCurrentSet deprecation warning will result in an error.
|
||||||
|
try_compile(XC_APPLE_COMPILER_SUPPORT_BIOMETRY
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/tiometry_test/
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/cmake/compiler-checks/macos/control_biometry_support.mm)
|
||||||
|
message(STATUS "Biometry compiler support: ${XC_APPLE_COMPILER_SUPPORT_BIOMETRY}")
|
||||||
|
|
||||||
|
try_compile(XC_APPLE_COMPILER_SUPPORT_TOUCH_ID
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/touch_id_test/
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/cmake/compiler-checks/macos/control_touch_id_support.mm)
|
||||||
|
message(STATUS "Touch ID compiler support: ${XC_APPLE_COMPILER_SUPPORT_TOUCH_ID}")
|
||||||
|
|
||||||
|
try_compile(XC_APPLE_COMPILER_SUPPORT_WATCH
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/tiometry_test/
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/cmake/compiler-checks/macos/control_watch_support.mm)
|
||||||
|
message(STATUS "Apple watch compiler support: ${XC_APPLE_COMPILER_SUPPORT_WATCH}")
|
||||||
|
endif()
|
||||||
|
|
||||||
if(WITH_CCACHE)
|
if(WITH_CCACHE)
|
||||||
# Use the Compiler Cache (ccache) program
|
# Use the Compiler Cache (ccache) program
|
||||||
# (install with: sudo apt get ccache)
|
# (install with: sudo apt get ccache)
|
||||||
@ -91,9 +112,14 @@ if(NOT WITH_XC_NETWORKING AND WITH_XC_UPDATECHECK)
|
|||||||
set(WITH_XC_UPDATECHECK OFF)
|
set(WITH_XC_UPDATECHECK OFF)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(UNIX AND NOT APPLE AND NOT WITH_XC_X11)
|
||||||
|
message(STATUS "Disabling WITH_XC_AUTOTYPE because WITH_XC_X11 is disabled")
|
||||||
|
set(WITH_XC_AUTOTYPE OFF)
|
||||||
|
endif()
|
||||||
|
|
||||||
set(KEEPASSXC_VERSION_MAJOR "2")
|
set(KEEPASSXC_VERSION_MAJOR "2")
|
||||||
set(KEEPASSXC_VERSION_MINOR "7")
|
set(KEEPASSXC_VERSION_MINOR "7")
|
||||||
set(KEEPASSXC_VERSION_PATCH "1")
|
set(KEEPASSXC_VERSION_PATCH "6")
|
||||||
set(KEEPASSXC_VERSION "${KEEPASSXC_VERSION_MAJOR}.${KEEPASSXC_VERSION_MINOR}.${KEEPASSXC_VERSION_PATCH}")
|
set(KEEPASSXC_VERSION "${KEEPASSXC_VERSION_MAJOR}.${KEEPASSXC_VERSION_MINOR}.${KEEPASSXC_VERSION_PATCH}")
|
||||||
set(OVERRIDE_VERSION "" CACHE STRING "Override the KeePassXC Version for Snapshot builds")
|
set(OVERRIDE_VERSION "" CACHE STRING "Override the KeePassXC Version for Snapshot builds")
|
||||||
|
|
||||||
@ -177,6 +203,16 @@ if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.14.0")
|
|||||||
check_pie_supported()
|
check_pie_supported()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# Find Botan early since the version affects subsequent compiler options
|
||||||
|
find_package(Botan REQUIRED)
|
||||||
|
if(BOTAN_VERSION VERSION_GREATER_EQUAL "3.0.0")
|
||||||
|
set(WITH_XC_BOTAN3 TRUE)
|
||||||
|
elseif(BOTAN_VERSION VERSION_LESS "2.11.0")
|
||||||
|
# Check for minimum Botan version
|
||||||
|
message(FATAL_ERROR "Botan 2.11.0 or higher is required")
|
||||||
|
endif()
|
||||||
|
include_directories(SYSTEM ${BOTAN_INCLUDE_DIR})
|
||||||
|
|
||||||
# Create position independent code for shared libraries and executables
|
# Create position independent code for shared libraries and executables
|
||||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||||
|
|
||||||
@ -272,6 +308,10 @@ if(CMAKE_BUILD_TYPE_LOWER STREQUAL "debug")
|
|||||||
check_add_gcc_compiler_flag("-Wshadow-compatible-local")
|
check_add_gcc_compiler_flag("-Wshadow-compatible-local")
|
||||||
check_add_gcc_compiler_flag("-Wshadow-local")
|
check_add_gcc_compiler_flag("-Wshadow-local")
|
||||||
add_gcc_compiler_flags("-Werror")
|
add_gcc_compiler_flags("-Werror")
|
||||||
|
# This is needed since compiling aginst Botan3 requires compiling against C++20
|
||||||
|
if(WITH_XC_BOTAN3)
|
||||||
|
add_gcc_compiler_cxxflags("-Wno-error=deprecated-enum-enum-conversion -Wno-error=deprecated")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT HAIKU)
|
if (NOT HAIKU)
|
||||||
@ -310,14 +350,18 @@ check_add_gcc_compiler_flag("-Wcast-align")
|
|||||||
|
|
||||||
if(UNIX AND NOT APPLE)
|
if(UNIX AND NOT APPLE)
|
||||||
check_add_gcc_compiler_flag("-Qunused-arguments")
|
check_add_gcc_compiler_flag("-Qunused-arguments")
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--no-add-needed -Wl,--as-needed -Wl,--no-undefined")
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed -Wl,--no-undefined")
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,relro,-z,now -pie")
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,relro,-z,now -pie")
|
||||||
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--no-add-needed -Wl,--as-needed")
|
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--as-needed")
|
||||||
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,-z,relro,-z,now")
|
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,-z,relro,-z,now")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(CMAKE_C_STANDARD 99)
|
set(CMAKE_C_STANDARD 99)
|
||||||
set(CMAKE_CXX_STANDARD 17)
|
if(WITH_XC_BOTAN3)
|
||||||
|
set(CMAKE_CXX_STANDARD 20)
|
||||||
|
else()
|
||||||
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
|
endif()
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
check_cxx_compiler_flag("-fsized-deallocation" CXX_HAS_fsized_deallocation)
|
check_cxx_compiler_flag("-fsized-deallocation" CXX_HAS_fsized_deallocation)
|
||||||
@ -447,17 +491,20 @@ include(CLangFormat)
|
|||||||
|
|
||||||
set(QT_COMPONENTS Core Network Concurrent Gui Svg Widgets Test LinguistTools)
|
set(QT_COMPONENTS Core Network Concurrent Gui Svg Widgets Test LinguistTools)
|
||||||
if(UNIX AND NOT APPLE)
|
if(UNIX AND NOT APPLE)
|
||||||
find_package(Qt5 COMPONENTS ${QT_COMPONENTS} DBus X11Extras REQUIRED)
|
if(WITH_XC_X11)
|
||||||
|
list(APPEND QT_COMPONENTS X11Extras)
|
||||||
|
endif()
|
||||||
|
find_package(Qt5 COMPONENTS ${QT_COMPONENTS} DBus REQUIRED)
|
||||||
elseif(APPLE)
|
elseif(APPLE)
|
||||||
find_package(Qt5 COMPONENTS ${QT_COMPONENTS} REQUIRED HINTS
|
find_package(Qt5 COMPONENTS ${QT_COMPONENTS} REQUIRED HINTS
|
||||||
/usr/local/opt/qt/lib/cmake
|
/usr/local/opt/qt@5/lib/cmake
|
||||||
/usr/local/Cellar/qt/*/lib/cmake
|
/usr/local/Cellar/qt@5/*/lib/cmake
|
||||||
/opt/homebrew/opt/qt/lib/cmake
|
/opt/homebrew/opt/qt@5/lib/cmake
|
||||||
ENV PATH)
|
ENV PATH)
|
||||||
find_package(Qt5 COMPONENTS MacExtras HINTS
|
find_package(Qt5 COMPONENTS MacExtras HINTS
|
||||||
/usr/local/opt/qt/lib/cmake
|
/usr/local/opt/qt@5/lib/cmake
|
||||||
/usr/local/Cellar/qt/*/lib/cmake
|
/usr/local/Cellar/qt@5/*/lib/cmake
|
||||||
/opt/homebrew/opt/qt/lib/cmake
|
/opt/homebrew/opt/qt@5/lib/cmake
|
||||||
ENV PATH)
|
ENV PATH)
|
||||||
else()
|
else()
|
||||||
find_package(Qt5 COMPONENTS ${QT_COMPONENTS} REQUIRED)
|
find_package(Qt5 COMPONENTS ${QT_COMPONENTS} REQUIRED)
|
||||||
@ -468,6 +515,10 @@ if(Qt5Core_VERSION VERSION_LESS "5.2.0")
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
get_filename_component(Qt5_PREFIX ${Qt5_DIR}/../../.. REALPATH)
|
get_filename_component(Qt5_PREFIX ${Qt5_DIR}/../../.. REALPATH)
|
||||||
|
if(APPLE)
|
||||||
|
# Add includes under Qt5 Prefix in case Qt6 is also installed
|
||||||
|
include_directories(SYSTEM ${Qt5_PREFIX}/include)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Process moc automatically
|
# Process moc automatically
|
||||||
set(CMAKE_AUTOMOC ON)
|
set(CMAKE_AUTOMOC ON)
|
||||||
@ -496,12 +547,6 @@ endif()
|
|||||||
# Make sure we don't enable asserts there.
|
# Make sure we don't enable asserts there.
|
||||||
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS_NONE QT_NO_DEBUG)
|
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS_NONE QT_NO_DEBUG)
|
||||||
|
|
||||||
# Find Botan2
|
|
||||||
find_package(Botan2 REQUIRED)
|
|
||||||
if(BOTAN2_VERSION VERSION_LESS "2.11.0")
|
|
||||||
message(FATAL_ERROR "Botan2 2.11.0 or higher is required")
|
|
||||||
endif()
|
|
||||||
include_directories(SYSTEM ${BOTAN2_INCLUDE_DIR})
|
|
||||||
# Find Argon2 -- Botan 2.18 and below does not support threaded Argon2
|
# Find Argon2 -- Botan 2.18 and below does not support threaded Argon2
|
||||||
find_library(ARGON2_LIBRARIES NAMES argon2)
|
find_library(ARGON2_LIBRARIES NAMES argon2)
|
||||||
find_path(ARGON2_INCLUDE_DIR NAMES argon2.h PATH_SUFFIXES local/include)
|
find_path(ARGON2_INCLUDE_DIR NAMES argon2.h PATH_SUFFIXES local/include)
|
||||||
|
48
COPYING
@ -27,28 +27,24 @@ Copyright: 2010-2012, Felix Geyer <debfx@fobos.de>
|
|||||||
2000-2008, Tom Sato <VEF00200@nifty.ne.jp>
|
2000-2008, Tom Sato <VEF00200@nifty.ne.jp>
|
||||||
2013, Laszlo Papp <lpapp@kde.org>
|
2013, Laszlo Papp <lpapp@kde.org>
|
||||||
2013, David Faure <faure@kde.org>
|
2013, David Faure <faure@kde.org>
|
||||||
2016-2020, KeePassXC Team <team@keepassxc.org>
|
2016-2023, KeePassXC Team <team@keepassxc.org>
|
||||||
License: GPL-2 or GPL-3
|
License: GPL-2 or GPL-3
|
||||||
|
|
||||||
Comment: The "KeePassXC Team" in every copyright notice is formed by the following people:
|
Comment: The "KeePassXC Team" in every copyright notice is formed by the following people:
|
||||||
- droidmonkey
|
- droidmonkey
|
||||||
- phoerious
|
- phoerious
|
||||||
- TheZ3ro <io@thezero.org>
|
- varjolintu
|
||||||
|
- hifi
|
||||||
- louib
|
- louib
|
||||||
- weslly
|
|
||||||
Every other contributor is listed on https://github.com/keepassxreboot/keepassxc/graphs/contributors
|
Every other contributor is listed on https://github.com/keepassxreboot/keepassxc/graphs/contributors
|
||||||
|
|
||||||
Files: cmake/CodeCoverage.cmake
|
Files: cmake/CodeCoverage.cmake
|
||||||
Copyright: 2012 - 2015, Lars Bilke
|
Copyright: 2012 - 2015, Lars Bilke
|
||||||
License: BSD-3-clause
|
License: BSD-3-clause
|
||||||
|
|
||||||
Files: cmake/FindYubiKey.cmake
|
Files: cmake/FindBotan.cmake
|
||||||
Copyright: 2014 Kyle Manna <kyle@kylemanna.com>
|
Copyright: none
|
||||||
License: GPL-2 or GPL-3
|
License: LGPL-2.1
|
||||||
|
|
||||||
Files: cmake/FindBotan2.cmake
|
|
||||||
Copyright: 2018 Ribose Inc.
|
|
||||||
License: BSD-2-clause
|
|
||||||
|
|
||||||
Files: cmake/GenerateProductVersion.cmake
|
Files: cmake/GenerateProductVersion.cmake
|
||||||
Copyright: 2015 halex2005 <akharlov@gmail.com>
|
Copyright: 2015 halex2005 <akharlov@gmail.com>
|
||||||
@ -144,10 +140,21 @@ Files: share/icons/badges/2_Expired.svg
|
|||||||
Copyright: 2022 KeePassXC Team <team@keepassxc.org>
|
Copyright: 2022 KeePassXC Team <team@keepassxc.org>
|
||||||
License: MIT
|
License: MIT
|
||||||
|
|
||||||
Files: share/icons/application/scalable/actions/chevron-double-down.svg
|
Files: share/icons/application/scalable/actions/application-exit.svg
|
||||||
|
share/icons/application/scalable/actions/attributes-copy.svg
|
||||||
|
share/icons/application/scalable/actions/auto-type.svg
|
||||||
|
share/icons/application/scalable/actions/bugreport.svg
|
||||||
|
share/icons/application/scalable/actions/chevron-double-down.svg
|
||||||
share/icons/application/scalable/actions/chevron-double-right.svg
|
share/icons/application/scalable/actions/chevron-double-right.svg
|
||||||
|
share/icons/application/scalable/actions/clipboard-text.svg
|
||||||
|
share/icons/application/scalable/actions/configure.svg
|
||||||
|
share/icons/application/scalable/actions/database-change-key.svg
|
||||||
share/icons/application/scalable/actions/database-lock.svg
|
share/icons/application/scalable/actions/database-lock.svg
|
||||||
share/icons/application/scalable/actions/database-lock-all.svg
|
share/icons/application/scalable/actions/database-lock-all.svg
|
||||||
|
share/icons/application/scalable/actions/database-merge.svg
|
||||||
|
share/icons/application/scalable/actions/database-search.svg
|
||||||
|
share/icons/application/scalable/actions/dialog-close.svg
|
||||||
|
share/icons/application/scalable/actions/dialog-ok.svg
|
||||||
share/icons/application/scalable/actions/document-close.svg
|
share/icons/application/scalable/actions/document-close.svg
|
||||||
share/icons/application/scalable/actions/document-edit.svg
|
share/icons/application/scalable/actions/document-edit.svg
|
||||||
share/icons/application/scalable/actions/document-export.svg
|
share/icons/application/scalable/actions/document-export.svg
|
||||||
@ -159,43 +166,60 @@ Files: share/icons/application/scalable/actions/chevron-double-down.svg
|
|||||||
share/icons/application/scalable/actions/document-save.svg
|
share/icons/application/scalable/actions/document-save.svg
|
||||||
share/icons/application/scalable/actions/document-save-as.svg
|
share/icons/application/scalable/actions/document-save-as.svg
|
||||||
share/icons/application/scalable/actions/document-save-copy.svg
|
share/icons/application/scalable/actions/document-save-copy.svg
|
||||||
|
share/icons/application/scalable/actions/donate.svg
|
||||||
share/icons/application/scalable/actions/edit-clear-locationbar-ltr.svg
|
share/icons/application/scalable/actions/edit-clear-locationbar-ltr.svg
|
||||||
share/icons/application/scalable/actions/edit-clear-locationbar-rtl.svg
|
share/icons/application/scalable/actions/edit-clear-locationbar-rtl.svg
|
||||||
share/icons/application/scalable/actions/entry-clone.svg
|
share/icons/application/scalable/actions/entry-clone.svg
|
||||||
share/icons/application/scalable/actions/entry-delete.svg
|
share/icons/application/scalable/actions/entry-delete.svg
|
||||||
|
share/icons/application/scalable/actions/entry-restore.svg
|
||||||
share/icons/application/scalable/actions/entry-edit.svg
|
share/icons/application/scalable/actions/entry-edit.svg
|
||||||
share/icons/application/scalable/actions/entry-new.svg
|
share/icons/application/scalable/actions/entry-new.svg
|
||||||
share/icons/application/scalable/actions/favicon-download.svg
|
share/icons/application/scalable/actions/favicon-download.svg
|
||||||
share/icons/application/scalable/actions/fingerprint.svg
|
share/icons/application/scalable/actions/fingerprint.svg
|
||||||
share/icons/application/scalable/actions/group-clone.svg
|
share/icons/application/scalable/actions/getting-started.svg
|
||||||
share/icons/application/scalable/actions/group-delete.svg
|
share/icons/application/scalable/actions/group-delete.svg
|
||||||
share/icons/application/scalable/actions/group-edit.svg
|
share/icons/application/scalable/actions/group-edit.svg
|
||||||
|
share/icons/application/scalable/actions/group-clone.svg
|
||||||
share/icons/application/scalable/actions/group-empty-trash.svg
|
share/icons/application/scalable/actions/group-empty-trash.svg
|
||||||
share/icons/application/scalable/actions/group-new.svg
|
share/icons/application/scalable/actions/group-new.svg
|
||||||
share/icons/application/scalable/actions/hammer-wrench.svg
|
share/icons/application/scalable/actions/hammer-wrench.svg
|
||||||
share/icons/application/scalable/actions/health.svg
|
share/icons/application/scalable/actions/health.svg
|
||||||
share/icons/application/scalable/actions/help-about.svg
|
share/icons/application/scalable/actions/help-about.svg
|
||||||
share/icons/application/scalable/actions/lock-question.svg
|
share/icons/application/scalable/actions/lock-question.svg
|
||||||
|
share/icons/application/scalable/actions/keyboard-shortcuts.svg
|
||||||
share/icons/application/scalable/actions/message-close.svg
|
share/icons/application/scalable/actions/message-close.svg
|
||||||
share/icons/application/scalable/actions/move-down.svg
|
share/icons/application/scalable/actions/move-down.svg
|
||||||
share/icons/application/scalable/actions/move-up.svg
|
share/icons/application/scalable/actions/move-up.svg
|
||||||
|
share/icons/application/scalable/actions/object-locked.svg
|
||||||
|
share/icons/application/scalable/actions/object-unlocked.svg
|
||||||
share/icons/application/scalable/actions/paperclip.svg
|
share/icons/application/scalable/actions/paperclip.svg
|
||||||
share/icons/application/scalable/actions/password-copy.svg
|
share/icons/application/scalable/actions/password-copy.svg
|
||||||
share/icons/application/scalable/actions/password-generator.svg
|
share/icons/application/scalable/actions/password-generator.svg
|
||||||
share/icons/application/scalable/actions/password-show-off.svg
|
share/icons/application/scalable/actions/password-show-off.svg
|
||||||
share/icons/application/scalable/actions/password-show-on.svg
|
share/icons/application/scalable/actions/password-show-on.svg
|
||||||
|
share/icons/application/scalable/actions/qrcode.svg
|
||||||
share/icons/application/scalable/actions/refresh.svg
|
share/icons/application/scalable/actions/refresh.svg
|
||||||
share/icons/application/scalable/actions/reports.svg
|
share/icons/application/scalable/actions/reports.svg
|
||||||
share/icons/application/scalable/actions/reports-exclude.svg
|
share/icons/application/scalable/actions/reports-exclude.svg
|
||||||
|
share/icons/application/scalable/actions/sort-alphabetical-ascending.svg
|
||||||
|
share/icons/application/scalable/actions/sort-alphabetical-descending.svg
|
||||||
share/icons/application/scalable/actions/statistics.svg
|
share/icons/application/scalable/actions/statistics.svg
|
||||||
share/icons/application/scalable/actions/system-help.svg
|
share/icons/application/scalable/actions/system-help.svg
|
||||||
share/icons/application/scalable/actions/system-search.svg
|
share/icons/application/scalable/actions/system-search.svg
|
||||||
|
share/icons/application/scalable/actions/system-software-update.svg
|
||||||
share/icons/application/scalable/actions/tag.svg
|
share/icons/application/scalable/actions/tag.svg
|
||||||
|
share/icons/application/scalable/actions/tag-multiple.svg
|
||||||
share/icons/application/scalable/actions/tag-search.svg
|
share/icons/application/scalable/actions/tag-search.svg
|
||||||
|
share/icons/application/scalable/actions/totp.svg
|
||||||
|
share/icons/application/scalable/actions/totp-copy.svg
|
||||||
|
share/icons/application/scalable/actions/totp-copy-password.svg
|
||||||
|
share/icons/application/scalable/actions/totp-edit.svg
|
||||||
share/icons/application/scalable/actions/trash.svg
|
share/icons/application/scalable/actions/trash.svg
|
||||||
share/icons/application/scalable/actions/url-copy.svg
|
share/icons/application/scalable/actions/url-copy.svg
|
||||||
|
share/icons/application/scalable/actions/user-guide.svg
|
||||||
share/icons/application/scalable/actions/username-copy.svg
|
share/icons/application/scalable/actions/username-copy.svg
|
||||||
share/icons/application/scalable/actions/view-history.svg
|
share/icons/application/scalable/actions/view-history.svg
|
||||||
|
share/icons/application/scalable/actions/web.svg
|
||||||
share/icons/application/scalable/apps/internet-web-browser.svg
|
share/icons/application/scalable/apps/internet-web-browser.svg
|
||||||
share/icons/application/scalable/apps/keepassxc.svg
|
share/icons/application/scalable/apps/keepassxc.svg
|
||||||
share/icons/application/scalable/apps/keepassxc-dark.svg
|
share/icons/application/scalable/apps/keepassxc-dark.svg
|
||||||
|
@ -57,10 +57,10 @@ To compile from source, open a **Terminal (Linux/MacOS)**, the **MSVC Tools Comm
|
|||||||
git pull
|
git pull
|
||||||
```
|
```
|
||||||
|
|
||||||
For a stable build, it is recommended to check out the master branch.
|
For a stable build, it is recommended to check out the `latest` tag.
|
||||||
|
|
||||||
```
|
```
|
||||||
git checkout master
|
git checkout latest
|
||||||
```
|
```
|
||||||
|
|
||||||
2. Navigate to the directory where you have downloaded KeePassXC and type these commands:
|
2. Navigate to the directory where you have downloaded KeePassXC and type these commands:
|
||||||
@ -78,7 +78,7 @@ Note: These steps place the compiled KeePassXC binary inside the `./build/src/`
|
|||||||
|
|
||||||
If you installed Qt5 via Homebrew, you should be able to compile KeePassXC without any changes. If CMake fails to find your Qt installation, you can specify it manually by adding the following parameter:
|
If you installed Qt5 via Homebrew, you should be able to compile KeePassXC without any changes. If CMake fails to find your Qt installation, you can specify it manually by adding the following parameter:
|
||||||
|
|
||||||
`-DCMAKE_PREFIX_PATH=/usr/local/opt/qt/lib/cmake`
|
`-DCMAKE_PREFIX_PATH=$(brew --prefix qt5)/lib/cmake`
|
||||||
|
|
||||||
(or whatever your Qt installation path is)
|
(or whatever your Qt installation path is)
|
||||||
|
|
||||||
@ -98,7 +98,7 @@ CMake Configuration Options
|
|||||||
## Common Parameters
|
## Common Parameters
|
||||||
|
|
||||||
```
|
```
|
||||||
-DCMAKE_INSTALL_PREFIX=/usr/local
|
-DCMAKE_INSTALL_PREFIX=$(brew --prefix)
|
||||||
-DCMAKE_VERBOSE_MAKEFILE=ON
|
-DCMAKE_VERBOSE_MAKEFILE=ON
|
||||||
-DCMAKE_BUILD_TYPE=<RelWithDebInfo/Debug/Release>
|
-DCMAKE_BUILD_TYPE=<RelWithDebInfo/Debug/Release>
|
||||||
-DWITH_GUI_TESTS=ON
|
-DWITH_GUI_TESTS=ON
|
||||||
|
@ -35,7 +35,7 @@ KeePassXC has numerous features for novice and power users alike. Our goal is to
|
|||||||
* Command line interface (keepassxc-cli)
|
* Command line interface (keepassxc-cli)
|
||||||
* Auto-Open databases
|
* Auto-Open databases
|
||||||
* KeeShare shared databases (import, export, and synchronize)
|
* KeeShare shared databases (import, export, and synchronize)
|
||||||
* SSH Agent
|
* SSH Agent integration
|
||||||
* FreeDesktop.org Secret Service (replace Gnome keyring, etc.)
|
* FreeDesktop.org Secret Service (replace Gnome keyring, etc.)
|
||||||
* Additional encryption choices: Twofish and ChaCha20
|
* Additional encryption choices: Twofish and ChaCha20
|
||||||
|
|
||||||
|
65
cmake/FindBotan.cmake
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
# - Find botan
|
||||||
|
# Find the botan cryptographic library
|
||||||
|
#
|
||||||
|
# This module defines the following variables:
|
||||||
|
# BOTAN_FOUND - True if library and include directory are found
|
||||||
|
# If set to TRUE, the following are also defined:
|
||||||
|
# BOTAN_INCLUDE_DIRS - The directory where to find the header file
|
||||||
|
# BOTAN_LIBRARIES - Where to find the library files
|
||||||
|
#
|
||||||
|
# This file is in the public domain (https://github.com/vistle/vistle/blob/master/cmake/Modules/FindBOTAN.cmake)
|
||||||
|
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
|
||||||
|
set(BOTAN_VERSIONS botan-3 botan-2)
|
||||||
|
set(BOTAN_NAMES botan-3 botan-2 botan)
|
||||||
|
set(BOTAN_NAMES_DEBUG botand-3 botand-2 botand botan)
|
||||||
|
|
||||||
|
find_path(
|
||||||
|
BOTAN_INCLUDE_DIR
|
||||||
|
NAMES botan/build.h
|
||||||
|
PATH_SUFFIXES ${BOTAN_VERSIONS}
|
||||||
|
DOC "The Botan include directory")
|
||||||
|
if(BOTAN_INCLUDE_DIR)
|
||||||
|
file(READ "${BOTAN_INCLUDE_DIR}/botan/build.h" build)
|
||||||
|
string(REGEX MATCH "BOTAN_VERSION_MAJOR ([0-9]*)" _ ${build})
|
||||||
|
set(BOTAN_VERSION_MAJOR ${CMAKE_MATCH_1})
|
||||||
|
string(REGEX MATCH "BOTAN_VERSION_MINOR ([0-9]*)" _ ${build})
|
||||||
|
set(BOTAN_VERSION_MINOR ${CMAKE_MATCH_1})
|
||||||
|
string(REGEX MATCH "BOTAN_VERSION_PATCH ([0-9]*)" _ ${build})
|
||||||
|
set(BOTAN_VERSION_PATCH ${CMAKE_MATCH_1})
|
||||||
|
set(BOTAN_VERSION "${BOTAN_VERSION_MAJOR}.${BOTAN_VERSION_MINOR}.${BOTAN_VERSION_PATCH}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
find_library(
|
||||||
|
BOTAN_LIBRARY
|
||||||
|
NAMES ${BOTAN_NAMES}
|
||||||
|
PATH_SUFFIXES release/lib lib
|
||||||
|
DOC "The Botan (release) library")
|
||||||
|
if(MSVC)
|
||||||
|
find_library(
|
||||||
|
BOTAN_LIBRARY_DEBUG
|
||||||
|
NAMES ${BOTAN_NAMES_DEBUG}
|
||||||
|
PATH_SUFFIXES debug/lib lib
|
||||||
|
DOC "The Botan debug library")
|
||||||
|
find_package_handle_standard_args(
|
||||||
|
Botan
|
||||||
|
REQUIRED_VARS BOTAN_LIBRARY BOTAN_LIBRARY_DEBUG BOTAN_INCLUDE_DIR
|
||||||
|
VERSION_VAR BOTAN_VERSION)
|
||||||
|
else()
|
||||||
|
find_package_handle_standard_args(
|
||||||
|
Botan
|
||||||
|
REQUIRED_VARS BOTAN_LIBRARY BOTAN_INCLUDE_DIR
|
||||||
|
VERSION_VAR BOTAN_VERSION)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(BOTAN_FOUND)
|
||||||
|
set(BOTAN_INCLUDE_DIRS ${BOTAN_INCLUDE_DIR})
|
||||||
|
if(MSVC)
|
||||||
|
set(BOTAN_LIBRARIES optimized ${BOTAN_LIBRARY} debug ${BOTAN_LIBRARY_DEBUG})
|
||||||
|
else()
|
||||||
|
set(BOTAN_LIBRARIES ${BOTAN_LIBRARY})
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
mark_as_advanced(BOTAN_INCLUDE_DIR BOTAN_LIBRARY BOTAN_LIBRARY_DEBUG)
|
@ -1,106 +0,0 @@
|
|||||||
# Copyright (c) 2018 Ribose Inc.
|
|
||||||
# All rights reserved.
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions
|
|
||||||
# are met:
|
|
||||||
# 1. Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
# 2. 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.
|
|
||||||
#
|
|
||||||
# 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 HOLDERS 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.
|
|
||||||
|
|
||||||
#.rst:
|
|
||||||
# FindBotan2
|
|
||||||
# -----------
|
|
||||||
#
|
|
||||||
# Find the botan-2 library.
|
|
||||||
#
|
|
||||||
# IMPORTED Targets
|
|
||||||
# ^^^^^^^^^^^^^^^^
|
|
||||||
#
|
|
||||||
# This module defines :prop_tgt:`IMPORTED` targets:
|
|
||||||
#
|
|
||||||
# ``Botan2::Botan2``
|
|
||||||
# The botan-2 library, if found.
|
|
||||||
#
|
|
||||||
# Result variables
|
|
||||||
# ^^^^^^^^^^^^^^^^
|
|
||||||
#
|
|
||||||
# This module defines the following variables:
|
|
||||||
#
|
|
||||||
# ::
|
|
||||||
#
|
|
||||||
# BOTAN2_FOUND - true if the headers and library were found
|
|
||||||
# BOTAN2_INCLUDE_DIRS - where to find headers
|
|
||||||
# BOTAN2_LIBRARIES - list of libraries to link
|
|
||||||
# BOTAN2_VERSION - library version that was found, if any
|
|
||||||
|
|
||||||
# find the headers
|
|
||||||
find_path(BOTAN2_INCLUDE_DIR
|
|
||||||
NAMES botan/version.h
|
|
||||||
PATH_SUFFIXES botan-2
|
|
||||||
)
|
|
||||||
|
|
||||||
# find the library
|
|
||||||
find_library(BOTAN2_LIBRARY NAMES botan-2 libbotan-2 botan)
|
|
||||||
|
|
||||||
# determine the version
|
|
||||||
if(BOTAN2_INCLUDE_DIR AND EXISTS "${BOTAN2_INCLUDE_DIR}/botan/build.h")
|
|
||||||
file(STRINGS "${BOTAN2_INCLUDE_DIR}/botan/build.h" botan2_version_str
|
|
||||||
REGEX "^#define[\t ]+(BOTAN_VERSION_[A-Z]+)[\t ]+[0-9]+")
|
|
||||||
|
|
||||||
string(REGEX REPLACE ".*#define[\t ]+BOTAN_VERSION_MAJOR[\t ]+([0-9]+).*"
|
|
||||||
"\\1" _botan2_version_major "${botan2_version_str}")
|
|
||||||
string(REGEX REPLACE ".*#define[\t ]+BOTAN_VERSION_MINOR[\t ]+([0-9]+).*"
|
|
||||||
"\\1" _botan2_version_minor "${botan2_version_str}")
|
|
||||||
string(REGEX REPLACE ".*#define[\t ]+BOTAN_VERSION_PATCH[\t ]+([0-9]+).*"
|
|
||||||
"\\1" _botan2_version_patch "${botan2_version_str}")
|
|
||||||
set(BOTAN2_VERSION "${_botan2_version_major}.${_botan2_version_minor}.${_botan2_version_patch}"
|
|
||||||
CACHE INTERNAL "The version of Botan which was detected")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
include(FindPackageHandleStandardArgs)
|
|
||||||
find_package_handle_standard_args(Botan2
|
|
||||||
REQUIRED_VARS BOTAN2_LIBRARY BOTAN2_INCLUDE_DIR
|
|
||||||
VERSION_VAR BOTAN2_VERSION
|
|
||||||
)
|
|
||||||
|
|
||||||
if(BOTAN2_FOUND)
|
|
||||||
set(BOTAN2_INCLUDE_DIRS ${BOTAN2_INCLUDE_DIR} ${PC_BOTAN2_INCLUDE_DIRS})
|
|
||||||
set(BOTAN2_LIBRARIES ${BOTAN2_LIBRARY})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(BOTAN2_FOUND AND NOT TARGET Botan2::Botan2)
|
|
||||||
# create the new library target
|
|
||||||
add_library(Botan2::Botan2 UNKNOWN IMPORTED)
|
|
||||||
# set the required include dirs for the target
|
|
||||||
if(BOTAN2_INCLUDE_DIRS)
|
|
||||||
set_target_properties(Botan2::Botan2
|
|
||||||
PROPERTIES
|
|
||||||
INTERFACE_INCLUDE_DIRECTORIES "${BOTAN2_INCLUDE_DIRS}"
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
# set the required libraries for the target
|
|
||||||
if(EXISTS "${BOTAN2_LIBRARY}")
|
|
||||||
set_target_properties(Botan2::Botan2
|
|
||||||
PROPERTIES
|
|
||||||
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
|
|
||||||
IMPORTED_LOCATION "${BOTAN2_LIBRARY}"
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
mark_as_advanced(BOTAN2_INCLUDE_DIR BOTAN2_LIBRARY)
|
|
5
cmake/compiler-checks/macos/control_biometry_support.mm
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
#include <Security/Security.h>
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
return static_cast<int>(kSecAccessControlBiometryCurrentSet);
|
||||||
|
}
|
5
cmake/compiler-checks/macos/control_touch_id_support.mm
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
#include <Security/Security.h>
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
return static_cast<int>(kSecAccessControlTouchIDCurrentSet);
|
||||||
|
}
|
5
cmake/compiler-checks/macos/control_watch_support.mm
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
#include <Security/Security.h>
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
return static_cast<int>(kSecAccessControlWatch);
|
||||||
|
}
|
@ -19,7 +19,7 @@ Optionally, build AFL from source:
|
|||||||
|
|
||||||
## Building KeePassXC For Fuzzing
|
## Building KeePassXC For Fuzzing
|
||||||
|
|
||||||
A special "instrumented build" is used that allows the fuzzer to look into the program as it executes. We place it in its own build directory so it doesn't confused with the production build.
|
A special "instrumented build" is used that allows the fuzzer to look into the program as it executes. We place it in its own build directory so it doesn't get confused with the production build.
|
||||||
|
|
||||||
$ cd your_keepassxc_source_directory
|
$ cd your_keepassxc_source_directory
|
||||||
$ mkdir buildafl
|
$ mkdir buildafl
|
||||||
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 82 KiB After Width: | Height: | Size: 78 KiB |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 54 KiB |
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 47 KiB |
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 8.8 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 47 KiB |
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 59 KiB |
Before Width: | Height: | Size: 106 KiB After Width: | Height: | Size: 94 KiB |
Before Width: | Height: | Size: 92 KiB After Width: | Height: | Size: 88 KiB |
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 6.1 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 64 KiB |
Before Width: | Height: | Size: 81 KiB After Width: | Height: | Size: 67 KiB |
Before Width: | Height: | Size: 100 KiB After Width: | Height: | Size: 89 KiB |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 47 KiB |
Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 87 KiB |
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 116 KiB After Width: | Height: | Size: 77 KiB |
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 145 KiB After Width: | Height: | Size: 131 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 90 KiB |
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 63 KiB |
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 95 KiB After Width: | Height: | Size: 92 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 110 KiB After Width: | Height: | Size: 95 KiB |
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 48 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 60 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 48 KiB |
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 51 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 167 KiB After Width: | Height: | Size: 162 KiB |
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 76 KiB |
Before Width: | Height: | Size: 97 KiB After Width: | Height: | Size: 88 KiB |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 37 KiB |
@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
= keepassxc-cli(1)
|
= keepassxc-cli(1)
|
||||||
KeePassXC Team <team@keepassxc.org>
|
KeePassXC Team <team@keepassxc.org>
|
||||||
:docdate: 2020-08-31
|
:docdate: 2022-08-20
|
||||||
:doctype: manpage
|
:doctype: manpage
|
||||||
:mansource: KeePassXC {revnumber}
|
:mansource: KeePassXC {revnumber}
|
||||||
:manmanual: General Commands Manual
|
:manmanual: General Commands Manual
|
||||||
@ -66,6 +66,11 @@ It provides the ability to query and modify the entries of a KeePass database, d
|
|||||||
The key file will be created if the file that is referred to does not exist.
|
The key file will be created if the file that is referred to does not exist.
|
||||||
If both the key file and password are empty, no database will be created.
|
If both the key file and password are empty, no database will be created.
|
||||||
|
|
||||||
|
*db-edit* [_options_] <__database__>::
|
||||||
|
Edits a database.
|
||||||
|
When setting a key file, the key file will be created if the file that is referred to
|
||||||
|
does not exist.
|
||||||
|
|
||||||
*db-info* [_options_] <__database__>::
|
*db-info* [_options_] <__database__>::
|
||||||
Show a database's information.
|
Show a database's information.
|
||||||
|
|
||||||
@ -154,7 +159,7 @@ It provides the ability to query and modify the entries of a KeePass database, d
|
|||||||
*--no-password*::
|
*--no-password*::
|
||||||
Deactivates the password key for the database.
|
Deactivates the password key for the database.
|
||||||
|
|
||||||
*-y*, *--yubikey* <__slot__>::
|
*-y*, *--yubikey* <__slot[:serial]__>::
|
||||||
Specifies a yubikey slot for unlocking the database.
|
Specifies a yubikey slot for unlocking the database.
|
||||||
In a merge operation this option is used to specify the YubiKey slot for the first database.
|
In a merge operation this option is used to specify the YubiKey slot for the first database.
|
||||||
|
|
||||||
@ -177,7 +182,7 @@ It provides the ability to query and modify the entries of a KeePass database, d
|
|||||||
*--no-password-from*::
|
*--no-password-from*::
|
||||||
Deactivates password key for the database to merge from.
|
Deactivates password key for the database to merge from.
|
||||||
|
|
||||||
*--yubikey-from* <__slot__>::
|
*--yubikey-from* <__slot[:serial]__>::
|
||||||
YubiKey slot for the second database.
|
YubiKey slot for the second database.
|
||||||
|
|
||||||
*-s*, *--same-credentials*::
|
*-s*, *--same-credentials*::
|
||||||
@ -235,16 +240,24 @@ The same password generation options as documented for the generate command can
|
|||||||
If a unique matching entry is found it will be copied to the clipboard.
|
If a unique matching entry is found it will be copied to the clipboard.
|
||||||
If multiple entries are found they will be listed to refine the search. (no clip performed)
|
If multiple entries are found they will be listed to refine the search. (no clip performed)
|
||||||
|
|
||||||
=== Create and Import options
|
=== Db-create, Db-edit and Import options
|
||||||
*-k*, *--set-key-file* <__path__>::
|
*--set-key-file* <__path__>::
|
||||||
Set the key file for the database.
|
Set the key file for the database.
|
||||||
|
|
||||||
*-p*, *--set-password*::
|
*-p*, *--set-password*::
|
||||||
Set a password for the database.
|
Set a password for the database.
|
||||||
|
|
||||||
|
=== Db-create, Import options
|
||||||
*-t*, *--decryption-time* <__time__>::
|
*-t*, *--decryption-time* <__time__>::
|
||||||
Target decryption time in MS for the database.
|
Target decryption time in MS for the database.
|
||||||
|
|
||||||
|
=== Db-edit options
|
||||||
|
*--unset-password* <__path__>::
|
||||||
|
Removes the password for the database.
|
||||||
|
|
||||||
|
*--unset-key-file* <__path__>::
|
||||||
|
Removes the key file for the database.
|
||||||
|
|
||||||
=== Show options
|
=== Show options
|
||||||
*-a*, *--attributes* <__attribute__>...::
|
*-a*, *--attributes* <__attribute__>...::
|
||||||
Shows the named attributes.
|
Shows the named attributes.
|
||||||
@ -252,6 +265,9 @@ The same password generation options as documented for the generate command can
|
|||||||
If no attributes are specified and *-t* is not specified, a summary of the default attributes is given.
|
If no attributes are specified and *-t* is not specified, a summary of the default attributes is given.
|
||||||
Protected attributes will be displayed in clear text if specified explicitly by this option.
|
Protected attributes will be displayed in clear text if specified explicitly by this option.
|
||||||
|
|
||||||
|
*--all*::
|
||||||
|
Show all the attributes of the entry.
|
||||||
|
|
||||||
*-s*, *--show-protected*::
|
*-s*, *--show-protected*::
|
||||||
Shows the protected attributes in clear text.
|
Shows the protected attributes in clear text.
|
||||||
|
|
||||||
@ -270,7 +286,7 @@ The same password generation options as documented for the generate command can
|
|||||||
Sets the Path of the wordlist for the diceware generator.
|
Sets the Path of the wordlist for the diceware generator.
|
||||||
The wordlist must have > 1000 words, otherwise the program will fail.
|
The wordlist must have > 1000 words, otherwise the program will fail.
|
||||||
If the wordlist has < 4000 words a warning will be printed to STDERR.
|
If the wordlist has < 4000 words a warning will be printed to STDERR.
|
||||||
Any *diceware*-compatible wordlist can used. Note however that *KeePassXC* will NOT verify the PGP signature of signed wordlists.
|
Any *diceware*-compatible wordlist can be used. Note however that *KeePassXC* will NOT verify the PGP signature of signed wordlists.
|
||||||
|
|
||||||
=== Export options
|
=== Export options
|
||||||
*-f*, *--format*::
|
*-f*, *--format*::
|
||||||
|
@ -49,9 +49,6 @@ Your wallet works offline and requires no Internet connection.
|
|||||||
*--pw-stdin*::
|
*--pw-stdin*::
|
||||||
Read password of the database from stdin.
|
Read password of the database from stdin.
|
||||||
|
|
||||||
*--pw*, *--parent-window* <__handle__>::
|
|
||||||
Parent window handle.
|
|
||||||
|
|
||||||
*--debug-info*::
|
*--debug-info*::
|
||||||
Displays debugging information.
|
Displays debugging information.
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
= KeePassXC - Auto-Type
|
= KeePassXC – Auto-Type
|
||||||
:imagesdir: ../images
|
:imagesdir: ../images
|
||||||
|
|
||||||
// tag::content[]
|
// tag::content[]
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
= KeePassXC - Browser Plugin
|
= KeePassXC – Browser Plugin
|
||||||
include::.sharedheader[]
|
include::.sharedheader[]
|
||||||
:imagesdir: ../images
|
:imagesdir: ../images
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
= KeePassXC - Database Operations
|
= KeePassXC – Database Operations
|
||||||
include::.sharedheader[]
|
include::.sharedheader[]
|
||||||
:imagesdir: ../images
|
:imagesdir: ../images
|
||||||
|
|
||||||
@ -11,22 +11,22 @@ To create a database, perform the following steps:
|
|||||||
|
|
||||||
1. Open your KeePassXC application. Click the create new database button *(A)*:
|
1. Open your KeePassXC application. Click the create new database button *(A)*:
|
||||||
+
|
+
|
||||||
.Create database - Welcome screen
|
.Create database – Welcome screen
|
||||||
image::welcome_screen.png[]
|
image::welcome_screen.png[]
|
||||||
|
|
||||||
2. The database creation wizard appears. Enter the desired database name and a short description (optional):
|
2. The database creation wizard appears. Enter the desired database name and a short description (optional):
|
||||||
+
|
+
|
||||||
.Create database - General information
|
.Create database – General information
|
||||||
image::new_db_wizard_1.png[,80%]
|
image::new_db_wizard_1.png[,80%]
|
||||||
|
|
||||||
3. Click Continue. The Encryption Settings screen appears, we don't recommend making any changes besides increasing or decreasing the decryption time using the slider. Setting the Decryption Time slider at a higher values means that the database will have higher level of protection but the time taken by the database to open will increase.
|
3. Click Continue. The Encryption Settings screen appears, we don't recommend making any changes besides increasing or decreasing the decryption time using the slider. Setting the Decryption Time slider at higher values means that the database will have higher level of protection but the time taken by the database to open will increase.
|
||||||
+
|
+
|
||||||
.Create database - Encryption settings
|
.Create database – Encryption settings
|
||||||
image::new_db_wizard_2.png[,80%]
|
image::new_db_wizard_2.png[,80%]
|
||||||
|
|
||||||
4. Click the Continue button. The Database Credentials screen appears, enter your desired database password. We recommend using a long, randomized password.
|
4. Click the Continue button. The Database Credentials screen appears, enter your desired database password. We recommend using a long, randomized password.
|
||||||
+
|
+
|
||||||
.Create database - Database credentials
|
.Create database – Database credentials
|
||||||
image::new_db_wizard_3.png[,80%]
|
image::new_db_wizard_3.png[,80%]
|
||||||
+
|
+
|
||||||
*(A)* Open the password generator +
|
*(A)* Open the password generator +
|
||||||
@ -44,7 +44,7 @@ To open an existing database, perform the following steps:
|
|||||||
.Open an existing database
|
.Open an existing database
|
||||||
image::open_database.png[]
|
image::open_database.png[]
|
||||||
|
|
||||||
2. Navigate to the location of the your database on your computer and open the database file. The database unlock screen will appear:
|
2. Navigate to the location of the database on your computer and open the database file. The database unlock screen will appear:
|
||||||
+
|
+
|
||||||
.Database unlock screen
|
.Database unlock screen
|
||||||
image::unlock_database.png[]
|
image::unlock_database.png[]
|
||||||
@ -61,7 +61,7 @@ image::database_view.png[]
|
|||||||
=== Quick Unlock
|
=== Quick Unlock
|
||||||
On Windows and macOS, subject to hardware availability, your credentials can be securely stored to enable subsequent unlocking of your database through biometric authentication. This is enabled by default on Windows using _Windows Hello_ and on macOS using _Touch ID or Apple Watch_ services. You can disable this feature in the Application Settings under the Security section.
|
On Windows and macOS, subject to hardware availability, your credentials can be securely stored to enable subsequent unlocking of your database through biometric authentication. This is enabled by default on Windows using _Windows Hello_ and on macOS using _Touch ID or Apple Watch_ services. You can disable this feature in the Application Settings under the Security section.
|
||||||
|
|
||||||
NOTE: On Windows you will be prompted to authenticate to Windows Hello on the initial database unlock. This is required to access the hardware certificate store that encrypts your credentials.
|
NOTE: On Windows, you will be prompted to authenticate to Windows Hello after unlocking your database with full credentials. This is required to setup Quick Unlock. If you cancel this prompt then Quick Unlock will not be enabled and your database will continue to unlock.
|
||||||
|
|
||||||
.Windows Hello example
|
.Windows Hello example
|
||||||
image::quick_unlock_windows_hello.png[]
|
image::quick_unlock_windows_hello.png[]
|
||||||
@ -84,7 +84,7 @@ There are three ways that KeePassXC can handle database files. This behavior is
|
|||||||
|
|
||||||
3. *Direct-write saves* write directly to the existing database file. This is an unsafe operation since any interruption can leave your entire database inaccessible. We only recommend using this option when interfacing with Linux GVFS services (e.g. Google Cloud on Gnome) and other types of storage services that host a virtual drive system.
|
3. *Direct-write saves* write directly to the existing database file. This is an unsafe operation since any interruption can leave your entire database inaccessible. We only recommend using this option when interfacing with Linux GVFS services (e.g. Google Cloud on Gnome) and other types of storage services that host a virtual drive system.
|
||||||
|
|
||||||
In addition to these save options, KeePassXC can create a backup of your existing database file just prior to saving. This backup can be placed in a custom folder with a custom file naming scheme.
|
In addition to these save options, KeePassXC can create a backup of your existing database file just prior to saving. This backup will be saved at the path specified in the *Backup destination* field. This path can be absolute or relative. The latter will be resolved according to the databases path. It is possible to specify a custom naming scheme with placeholders. See xref:UserGuide.adoc#_backup_path_placeholders[Backup Path Placeholders] for available placeholders and examples.
|
||||||
|
|
||||||
image::save_options.png[]
|
image::save_options.png[]
|
||||||
// end::advanced[]
|
// end::advanced[]
|
||||||
@ -196,7 +196,7 @@ KeePassXC provides an enhanced and granular search features the enables you to s
|
|||||||
|* |Term is handled as a regular expression
|
|* |Term is handled as a regular expression
|
||||||
|===
|
|===
|
||||||
|
|
||||||
The following fields can be searched along with their abbreviated name in parenthesis:
|
The following fields can be searched along with their abbreviated name in parentheses:
|
||||||
|
|
||||||
* Title (t)
|
* Title (t)
|
||||||
* Username (u)
|
* Username (u)
|
||||||
@ -242,7 +242,7 @@ The following tables lists a few samples search queries for your reference:
|
|||||||
|
|
||||||
== Advanced Entry Options
|
== Advanced Entry Options
|
||||||
=== Additional Attributes
|
=== Additional Attributes
|
||||||
A lot of applications and web sites now require to provide additional information when you create accounts. The additional information is used to block hackers if any suspicious activity is detected. In addition, the additional information you provide can be used to reset passwords if you forget them. You can also store arbitrary information here that can be copied to the clipboard or Auto-Typed using the `{S:<ATTR_NAME>}` action code.
|
A lot of applications and web sites now require providing additional information when you create accounts. The additional information is used to block hackers if any suspicious activity is detected. In addition, the additional information you provide can be used to reset passwords if you forget them. You can also store arbitrary information here that can be copied to the clipboard or Auto-Typed using the `{S:<ATTR_NAME>}` action code.
|
||||||
|
|
||||||
To protect an attribute from being displayed by default, activate the _Protect_ checkbox *(A)*. To show the contents of the attribute while keeping it protected, press the _Reveal_ button *(B)*.
|
To protect an attribute from being displayed by default, activate the _Protect_ checkbox *(A)*. To show the contents of the attribute while keeping it protected, press the _Reveal_ button *(B)*.
|
||||||
|
|
||||||
@ -332,7 +332,7 @@ image::database_settings.png[]
|
|||||||
* *Max history items:* This is the maximum number of history items that are stored for each entry. When you set this to 0, no history will be saved. Set this value to a low value to prevent the database from getting too large (we recommend no more than 10).
|
* *Max history items:* This is the maximum number of history items that are stored for each entry. When you set this to 0, no history will be saved. Set this value to a low value to prevent the database from getting too large (we recommend no more than 10).
|
||||||
* *Max. history size:* When the history of an entry gets above this size, it is truncated. For example, this happens when entries have large attachments. Set this value small to prevent the database from getting too large (we recommend 6 MiB).
|
* *Max. history size:* When the history of an entry gets above this size, it is truncated. For example, this happens when entries have large attachments. Set this value small to prevent the database from getting too large (we recommend 6 MiB).
|
||||||
* *Use recycle bin:* Select this check-box if you want deleted entries to move to the recycle bin instead of being permanently removed. The recycle bin will be created if it does not already exist after your first deletion. To delete entries permanently, you must empty the recycle bin manually.
|
* *Use recycle bin:* Select this check-box if you want deleted entries to move to the recycle bin instead of being permanently removed. The recycle bin will be created if it does not already exist after your first deletion. To delete entries permanently, you must empty the recycle bin manually.
|
||||||
* *Enable compression:* KeePassXC databases can be compressed before being encrypted. Compression reduces the size of the database and does not have any appreciable affect on speed. It is recommended to always save databases with compression.
|
* *Enable compression:* KeePassXC databases can be compressed before being encrypted. Compression reduces the size of the database and does not have any appreciable affect on speed. It is recommended to always save databases with compression.
|
||||||
|
|
||||||
3. Click the Security button in the left-hand menu bar to change your database credentials and change encryption settings.
|
3. Click the Security button in the left-hand menu bar to change your database credentials and change encryption settings.
|
||||||
+
|
+
|
||||||
@ -346,7 +346,7 @@ image::database_security_credentials.png[]
|
|||||||
+
|
+
|
||||||
WARNING: Consider creating a backup of your YubiKey. Please refer to <<Creating a YubiKey backup>>
|
WARNING: Consider creating a backup of your YubiKey. Please refer to <<Creating a YubiKey backup>>
|
||||||
|
|
||||||
5. Encryption settings allows you to change the average time it takes to encrypt and decrypt the database. The longer time that is chosen, the harder it will be to brute force attack your database. *We recommend a setting of one second.*
|
5. Encryption settings allow you to change the average time it takes to encrypt and decrypt the database. The longer time that is chosen, the harder it will be to brute force attack your database. *We recommend a setting of one second.*
|
||||||
+
|
+
|
||||||
.Database encryption
|
.Database encryption
|
||||||
image::database_security_encryption.png[]
|
image::database_security_encryption.png[]
|
||||||
@ -362,7 +362,7 @@ The following key derivation functions are supported:
|
|||||||
|
|
||||||
* AES-KDF (KDBX 4 and KDBX 3.1): This key derivation function is based on iterating AES. Users can change the number of iterations. The more iterations, the harder are dictionary and guessing attacks, but also database loading/saving takes more time (linearly). KDBX 3.1 only supports AES-KDF; any other key derivation function, like for instance Argon2, requires KDBX 4.
|
* AES-KDF (KDBX 4 and KDBX 3.1): This key derivation function is based on iterating AES. Users can change the number of iterations. The more iterations, the harder are dictionary and guessing attacks, but also database loading/saving takes more time (linearly). KDBX 3.1 only supports AES-KDF; any other key derivation function, like for instance Argon2, requires KDBX 4.
|
||||||
|
|
||||||
* Argon2 (KDBX 4 - recommended): KDBX 4, the Argon2 key derivation function can be used for transforming the composite master key (as protection against dictionary attacks). The main advantage of Argon2 over AES-KDF is that it provides a better resistance against GPU/ASIC attacks (due to being a memory-hard function). The number of iterations scales linearly with the required time. By increasing the memory parameter, GPU/ASIC attacks become harder and the required time increases. The parallelism parameter can be used to specify how many threads should be used. We recommend using Argon2id to prevent against timing-based attacks. Argon2d offers maximum compatibility with other KeePass-based apps, the default settings provide sufficient protection against any known attacks.
|
* Argon2 (KDBX 4 – recommended): KDBX 4, the Argon2 key derivation function can be used for transforming the composite master key (as protection against dictionary attacks). The main advantage of Argon2 over AES-KDF is that it provides a better resistance against GPU/ASIC attacks (due to being a memory-hard function). The number of iterations scales linearly with the required time. By increasing the memory parameter, GPU/ASIC attacks become harder and the required time increases. The parallelism parameter can be used to specify how many threads should be used. We recommend using Argon2id to prevent against timing-based attacks. Argon2d offers maximum compatibility with other KeePass-based apps, the default settings provide sufficient protection against any known attacks.
|
||||||
|
|
||||||
== Database Maintenance
|
== Database Maintenance
|
||||||
KeePassXC offers some maintenance features that can be applied to clean up your database. Navigate to _Database_ -> _Database settings_ then click on _Maintenance_ on the left hand panel. The following screen appears. On this screen you can delete multiple icons at once and purge any unused icons in your database.
|
KeePassXC offers some maintenance features that can be applied to clean up your database. Navigate to _Database_ -> _Database settings_ then click on _Maintenance_ on the left hand panel. The following screen appears. On this screen you can delete multiple icons at once and purge any unused icons in your database.
|
||||||
@ -395,9 +395,9 @@ The database file that you create might contain highly sensitive data and must b
|
|||||||
|
|
||||||
Make sure that you or someone else does not accidentally delete the database file. Deletion of the database file will result in the total loss of all your information (including all your passwords!) and a lot of inconvenience to manually retrieve your logins for various web applications. Do not share the credentials to access your database file with anyone unless you absolutely trust them (spouse, child, etc.).
|
Make sure that you or someone else does not accidentally delete the database file. Deletion of the database file will result in the total loss of all your information (including all your passwords!) and a lot of inconvenience to manually retrieve your logins for various web applications. Do not share the credentials to access your database file with anyone unless you absolutely trust them (spouse, child, etc.).
|
||||||
|
|
||||||
TIP: You can safely store your database file in the cloud (e.g., OneDrive, Dropbox, Google Drive, Nextcloud, Syncthing, etc). The database file is always fully encrypted; unencrypted data is never written to disk and is never accessible to your cloud storage provider. We recommend using a storage service that keeps automatic backups (version history) of your database file in the event of corruption or accidental deletion.
|
TIP: You can safely store your database file in the cloud (OneDrive, Dropbox, Google Drive, Nextcloud, Syncthing, etc.). The database file is always fully encrypted; unencrypted data is never written to disk and is never accessible to your cloud storage provider. We recommend using a storage service that keeps automatic backups (version history) of your database file in the event of corruption or accidental deletion.
|
||||||
|
|
||||||
== Backing up a Database File
|
== Backing up a Database File
|
||||||
It is a good practice to create copies of your database file and store the copies of your database on a different computer, smart phone, or cloud storage space such a Google Drive or Microsoft OneDrive. Backups can be created automatically by selecting the _Backup database file before saving_ option in the application settings. Additionally, you can create a backup on-demand using the _Database_ -> _Save Database Backup..._ menu feature.
|
It is a good practice to create copies of your database file and store the copies of your database on a different computer, smart phone, or cloud storage space such a Google Drive or Microsoft OneDrive. Backups can be created automatically by selecting the _Backup database file before saving_ option in the application settings. Additionally, you can create a backup on-demand using the _Database_ -> _Save Database Backup..._ menu feature.
|
||||||
|
|
||||||
.Saving a database backup
|
.Saving a database backup
|
||||||
|
@ -21,12 +21,3 @@ Special, incidental or consequential damages arising out of the use or inability
|
|||||||
Limited to loss of data or data being rendered inaccurate or losses sustained by you or third parties or a failure of
|
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
|
The program to operate with any other programs), even if such holder or other party has been advised of the possibility
|
||||||
Of such damages.
|
Of such damages.
|
||||||
|
|
||||||
== Contact Us
|
|
||||||
|
|
||||||
We are committed to continually improve KeePassXC through customer experience and your feedback is important to us.
|
|
||||||
Please send us your feedback or comments to team@keepassxc.org.
|
|
||||||
To report issues, visit: https://github.com/keepassxreboot/keepassxc.
|
|
||||||
|
|
||||||
Thank You, +
|
|
||||||
Team KeePassXC
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
= KeePassXC - Download and Install
|
= KeePassXC – Download and Install
|
||||||
include::.sharedheader[]
|
include::.sharedheader[]
|
||||||
:imagesdir: ../images
|
:imagesdir: ../images
|
||||||
|
|
||||||
@ -8,9 +8,9 @@ KeePassXC is available for download for the following operating systems and plat
|
|||||||
|
|
||||||
* Microsoft Windows
|
* Microsoft Windows
|
||||||
** Portable and MSI Installer (64-bit and 32-bit)
|
** Portable and MSI Installer (64-bit and 32-bit)
|
||||||
* Linux - Official Cross-Distribution Packages
|
* Linux – Official Cross-Distribution Packages
|
||||||
** AppImage and Snap Package
|
** AppImage and Snap Package
|
||||||
* Linux - Distribution-Specific Packages
|
* Linux – Distribution-Specific Packages
|
||||||
** Ubuntu, Debian, Arch Linux, Gentoo, Fedora, CentOS, and OpenSUSE
|
** Ubuntu, Debian, Arch Linux, Gentoo, Fedora, CentOS, and OpenSUSE
|
||||||
* macOS
|
* macOS
|
||||||
** DMG Installer, Homebrew Cask
|
** DMG Installer, Homebrew Cask
|
||||||
@ -45,9 +45,9 @@ image::install_wizard_2.png[,80%]
|
|||||||
|
|
||||||
The following options can be set when running the MSI in an unattended installation:
|
The following options can be set when running the MSI in an unattended installation:
|
||||||
|
|
||||||
* *LAUNCHAPPONEXIT* - Launch KeePassXC after install (default ON)
|
* *LAUNCHAPPONEXIT* – Launch KeePassXC after install (default ON)
|
||||||
* *AUTOSTARTPROGRAM* - KeePassXC will auto-start on login (default ON)
|
* *AUTOSTARTPROGRAM* – KeePassXC will auto-start on login (default ON)
|
||||||
* *INSTALLDESKTOPSHORTCUT* - A desktop icon will be installed (default OFF)
|
* *INSTALLDESKTOPSHORTCUT* – A desktop icon will be installed (default OFF)
|
||||||
|
|
||||||
Example: `msiexec.exe /q /i KeePassXC-Y.Y.Y-WinZZ.msi AUTOSTARTPROGRAM=0`
|
Example: `msiexec.exe /q /i KeePassXC-Y.Y.Y-WinZZ.msi AUTOSTARTPROGRAM=0`
|
||||||
|
|
||||||
@ -69,4 +69,4 @@ image::macos_install.png[,80%]
|
|||||||
|
|
||||||
// end::content[]
|
// end::content[]
|
||||||
// tag::advanced[]
|
// tag::advanced[]
|
||||||
// end::advanced[]
|
// end::advanced[]
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
= KeePassXC - Import/Export Operations
|
= KeePassXC – Import/Export Operations
|
||||||
include::.sharedheader[]
|
include::.sharedheader[]
|
||||||
:imagesdir: ../images
|
:imagesdir: ../images
|
||||||
|
|
||||||
// tag::content[]
|
// tag::content[]
|
||||||
== Importing External Databases
|
== Importing External Databases
|
||||||
KeePassXC allows your to import external databases from the following options:
|
KeePassXC allows you to import external databases from the following options:
|
||||||
|
|
||||||
* Comma-Separated Values (CSV) file
|
* Comma-Separated Values (CSV) file
|
||||||
* 1Password OPVault
|
* 1Password OPVault
|
||||||
@ -55,7 +55,7 @@ To import a KeePass 1 database file in KeePassXC, perform the following steps:
|
|||||||
6. The data from the `.kdb` file gets imported and converted to the new format, which is compatible with KeePassXC. You can now start using the new database file (`.kdbx`) in KeePassXC.
|
6. The data from the `.kdb` file gets imported and converted to the new format, which is compatible with KeePassXC. You can now start using the new database file (`.kdbx`) in KeePassXC.
|
||||||
|
|
||||||
== Exporting Databases
|
== Exporting Databases
|
||||||
KeePassXC supports multiple ways to export your database for transfer to another program or to print out and archive. To export your database into the KDB XML format, you must use the KeePassXC CLI: `keepassxc-cli export <database.kdbx>`.
|
KeePassXC supports multiple ways to export your database for transfer to another program or to print out and archive.
|
||||||
|
|
||||||
WARNING: Exporting your database will result in all of your passwords and sensitive information being stored in an unencrypted format. We do not recommend saving your exported database for long periods of time as that can cause a compromise of sensitive information.
|
WARNING: Exporting your database will result in all of your passwords and sensitive information being stored in an unencrypted format. We do not recommend saving your exported database for long periods of time as that can cause a compromise of sensitive information.
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
= KeePassXC - KeeShare
|
= KeePassXC – KeeShare
|
||||||
include::.sharedheader[]
|
include::.sharedheader[]
|
||||||
:imagesdir: ../images
|
:imagesdir: ../images
|
||||||
|
|
||||||
@ -17,17 +17,17 @@ To use sharing, you need to enable it for the application.
|
|||||||
image::keeshare_application_settings.png[]
|
image::keeshare_application_settings.png[]
|
||||||
|
|
||||||
=== Sharing Credentials
|
=== Sharing Credentials
|
||||||
If you checked _Allow export_ in the Sharing settings you can now share a group of passwords. Sharing is always is defined on a particular group. If you enable sharing on a group, every entry under this group, and its children, are shared. If you enable sharing on the root node, **every password** inside your database gets shared!
|
If you checked _Allow export_ in the Sharing settings you can now share a group of passwords. Sharing is always defined on a particular group. If you enable sharing on a group, every entry under this group, and its children, are shared. If you enable sharing on the root node, **every password** inside your database gets shared!
|
||||||
|
|
||||||
NOTE: KeeShare does not synchronize group structure after the initial share is created. At this time, KeeShare operates at the entry level; shared entries moved outside of a shared group are still synchronized.
|
NOTE: KeeShare does not synchronize group structure after the initial share is created. At this time, KeeShare operates at the entry level; shared entries moved outside of a shared group are still synchronized.
|
||||||
|
|
||||||
1. Open the edit sheet on a group you want to share.
|
1. Open the edit sheet on a group you want to share.
|
||||||
2. Select the KeeShare category on the left toolbar.
|
2. Select the KeeShare category on the left toolbar.
|
||||||
3. Choose a sharing type:
|
3. Choose a sharing type:
|
||||||
a. *Inactive* - Disable sharing this group
|
a. *Inactive* – Disable sharing this group
|
||||||
b. *Import* - Read-only import of entries, merge changes
|
b. *Import* – Read-only import of entries, merge changes
|
||||||
c. *Export* - Write-only export of entries, no merge
|
c. *Export* – Write-only export of entries, no merge
|
||||||
d. *Synchronize* - Read/Write entries from the share, merge changes
|
d. *Synchronize* – Read/Write entries from the share, merge changes
|
||||||
4. Choose a path to store the shared credentials to.
|
4. Choose a path to store the shared credentials to.
|
||||||
5. The password to use for this share container.
|
5. The password to use for this share container.
|
||||||
|
|
||||||
@ -45,7 +45,7 @@ A shared group shows a cloud icon badge over the group icon *(A)* and a banner i
|
|||||||
image::keeshare_shared_group.png[]
|
image::keeshare_shared_group.png[]
|
||||||
|
|
||||||
=== Technical Details and Limitations of Sharing
|
=== Technical Details and Limitations of Sharing
|
||||||
Sharing relies on the combination of file exports and imports as well as the synchronization mechanism provided by KeePassXC. Since the merge algorithm uses the history of entries to prevent data loss, this history must be enabled and have a sufficient size. Furthermore, the merge algorithm is location independent, therefore it does not matter if entries are moved outside of an import group. These entries will be updated none the less. Moving entries outside of export groups will prevent a further export of the entry, but it will not ensure that the already shared data will be removed from any client.
|
Sharing relies on the combination of file exports and imports as well as the synchronization mechanism provided by KeePassXC. Since the merge algorithm uses the history of entries to prevent data loss, this history must be enabled and have a sufficient size. Furthermore, the merge algorithm is location independent, therefore it does not matter if entries are moved outside of an import group. These entries will be updated nonetheless. Moving entries outside of export groups will prevent a further export of the entry, but it will not ensure that the already shared data will be removed from any client.
|
||||||
|
|
||||||
KeeShare uses a custom certification mechanism to ensure that the source of the data is the expected one. This ensures that the data was exported by the signer but it is not possible to detect if someone replaced the data with an older version from a valid signer. To prevent this, the container could be placed at a location which is only writeable for valid signers.
|
KeeShare uses a custom certification mechanism to ensure that the source of the data is the expected one. This ensures that the data was exported by the signer but it is not possible to detect if someone replaced the data with an older version from a valid signer. To prevent this, the container could be placed at a location which is only writeable for valid signers.
|
||||||
// end::content[]
|
// end::content[]
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
= KeePassXC - Keyboard Shortcuts
|
= KeePassXC – Keyboard Shortcuts
|
||||||
include::.sharedheader[]
|
include::.sharedheader[]
|
||||||
:imagesdir: ../images
|
:imagesdir: ../images
|
||||||
|
|
||||||
@ -9,12 +9,15 @@ NOTE: On macOS please substitute `Ctrl` with `Cmd` (aka `⌘`).
|
|||||||
|===
|
|===
|
||||||
|Action | Keyboard Shortcut
|
|Action | Keyboard Shortcut
|
||||||
|
|
||||||
|
|Settings | Ctrl + ,
|
||||||
|Open Database | Ctrl + O
|
|Open Database | Ctrl + O
|
||||||
|Save Database | Ctrl + S
|
|Save Database | Ctrl + S
|
||||||
|Save Database As | Ctrl + Shift + S
|
|Save Database As | Ctrl + Shift + S
|
||||||
|New Database | Ctrl + Shift + N
|
|New Database | Ctrl + Shift + N
|
||||||
|Close Database | Ctrl + W ; Ctrl + F4
|
|Close Database | Ctrl + W ; Ctrl + F4
|
||||||
|Lock All Databases | Ctrl + L
|
|Lock All Databases | Ctrl + L
|
||||||
|
|Database Settings | Ctrl + Shift + ,
|
||||||
|
|Database Reports | Ctrl + Shift + R
|
||||||
|Quit | Ctrl + Q
|
|Quit | Ctrl + Q
|
||||||
|New Entry | Ctrl + N
|
|New Entry | Ctrl + N
|
||||||
|Edit Entry | Enter ; Ctrl + E
|
|Edit Entry | Enter ; Ctrl + E
|
||||||
@ -25,6 +28,7 @@ NOTE: On macOS please substitute `Ctrl` with `Cmd` (aka `⌘`).
|
|||||||
|Copy URL | Ctrl + U
|
|Copy URL | Ctrl + U
|
||||||
|Open URL | Ctrl + Shift + U
|
|Open URL | Ctrl + Shift + U
|
||||||
|Copy TOTP | Ctrl + T
|
|Copy TOTP | Ctrl + T
|
||||||
|
|Copy Password and TOTP | Ctrl + Y
|
||||||
|Show TOTP | Ctrl + Shift + T
|
|Show TOTP | Ctrl + Shift + T
|
||||||
|Trigger AutoType | Ctrl + Shift + V
|
|Trigger AutoType | Ctrl + Shift + V
|
||||||
|Add key to SSH Agent | Ctrl + H
|
|Add key to SSH Agent | Ctrl + H
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
= KeePassXC - Password Generator
|
= KeePassXC – Password Generator
|
||||||
include::.sharedheader[]
|
include::.sharedheader[]
|
||||||
:imagesdir: ../images
|
:imagesdir: ../images
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
= KeePassXC - Reference
|
= KeePassXC – Reference
|
||||||
include::.sharedheader[]
|
include::.sharedheader[]
|
||||||
:imagesdir: ../images
|
:imagesdir: ../images
|
||||||
|
|
||||||
@ -48,18 +48,18 @@ This section contains full details on advanced features available in KeePassXC.
|
|||||||
|===
|
|===
|
||||||
|
|
||||||
=== Entry Cross-Reference
|
=== Entry Cross-Reference
|
||||||
A reference to another entry's field is possible using the short-hand syntax:
|
A reference to another entry's field is possible using the shorthand syntax:
|
||||||
`{REF:<FIELD>@<SEARCH_IN>:<SEARCH_TEXT>}`
|
`{REF:<FIELD>@<SEARCH_IN>:<SEARCH_TEXT>}`
|
||||||
|
|
||||||
`<FIELD>` and `<SEARCH_IN>` can be one of following:
|
`<FIELD>` and `<SEARCH_IN>` can be one of following:
|
||||||
|
|
||||||
* T - Title
|
* T – Title
|
||||||
* U - Username
|
* U – Username
|
||||||
* P - Password
|
* P – Password
|
||||||
* A - URL
|
* A – URL
|
||||||
* N - Notes
|
* N – Notes
|
||||||
* I - UUID (found on entry properties page)
|
* I – UUID (found on entry properties page)
|
||||||
* O - Custom Attribute _(SEARCH_IN only)_
|
* O – Custom Attribute _(SEARCH_IN only)_
|
||||||
|
|
||||||
Examples: +
|
Examples: +
|
||||||
`{REF:U@I:033054D445C648C59092CC1D661B1B71}` +
|
`{REF:U@I:033054D445C648C59092CC1D661B1B71}` +
|
||||||
@ -100,4 +100,29 @@ Convert resolved placeholder (e.g., {USERNAME}, {PASSWORD}, etc.) using the foll
|
|||||||
|
|
||||||
`{T-REPLACE-RX:/<PLACEHOLDER>/<SEARCH>/<REPLACE>/}` +
|
`{T-REPLACE-RX:/<PLACEHOLDER>/<SEARCH>/<REPLACE>/}` +
|
||||||
Use regular expressions to find and replace data from a resolved placeholder. Refer to match groups using $1, $2, etc.
|
Use regular expressions to find and replace data from a resolved placeholder. Refer to match groups using $1, $2, etc.
|
||||||
|
|
||||||
|
=== Backup Path Placeholders
|
||||||
|
[grid=rows, frame=none, width=90%]
|
||||||
|
|===
|
||||||
|
|Database Backup Path Placeholder |Description
|
||||||
|
|
||||||
|
|{DB_FILENAME} |The database's filename without extension
|
||||||
|
|{TIME} |The current time formatted as dd_MM_yyyy_hh-mm-ss.
|
||||||
|
|{TIME:<format>} |The current time formatted according to the format string specified by <format>. See https://doc.qt.io/qt-5/qtime.html#toString for a list of available placeholders.
|
||||||
|
|===
|
||||||
|
|
||||||
|
[grid=rows, frame=none, width=90%]
|
||||||
|
|===
|
||||||
|
|Backup path example |Location of backup(s)
|
||||||
|
|
||||||
|
|`{DB_FILENAME}-{TIME}.bak.kdbx` |`C:\Users\MyUsername\MyDatabase-02_01_2022_03-04-05.bak.kdbx` +
|
||||||
|
`C:\Users\MyUsername\MyDatabase-05_01_2022_12-10-00.bak.kdbx`
|
||||||
|
|`backups\\{DB_FILENAME}.bak.kdbx` |`C:\Users\MyUsername\backups\MyDatabase.bak.kdbx`
|
||||||
|
|`C:\Backups\{TIME:dd.MM.yyyy}\\{DB_FILENAME}.kdbx` |`C:\Backups\02.01.2022\MyDatabase.kdbx` +
|
||||||
|
`C:\Backups\05.01.2022\MyDatabase.kdbx`
|
||||||
|
|`C:\Backups\\{DB_FILENAME}\{TIME:MM-dd-yyyy}.kdbx` |`C:\Backups\MyDatabase\01-02-2022.kdbx` +
|
||||||
|
`C:\Backups\MyDatabase\01-05-2022.kdbx`
|
||||||
|
|===
|
||||||
|
|
||||||
|
|
||||||
// end::content[]
|
// end::content[]
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
= KeePassXC - SSH Agent
|
= KeePassXC – SSH Agent integration
|
||||||
include::.sharedheader[]
|
include::.sharedheader[]
|
||||||
:imagesdir: ../images
|
:imagesdir: ../images
|
||||||
|
|
||||||
// tag::content[]
|
// tag::content[]
|
||||||
== SSH Agent
|
== SSH Agent integration
|
||||||
SSH (Secure Shell) is a widely used remote secure shell protocol and is considered an industry standard for secure remote access to UNIX-like systems including Linux, BSDs, macOS and more recently even Windows received native support. SSH supports multiple types of authentication and the most widely used ones are either interactive keyboard input with a password or a public-key cryptography pair of keys.
|
SSH (Secure Shell) is a widely used remote secure shell protocol and is considered an industry standard for secure remote access to UNIX-like systems including Linux, BSDs, macOS and more recently even Windows received native support. SSH supports multiple types of authentication and the most widely used ones are either interactive keyboard input with a password or a public-key cryptography pair of keys.
|
||||||
|
|
||||||
KeePassXC SSH Agent integration is built to manage SSH keys in a secure manner by either storing them completely within your KeePassXC database or by having only the decryption key of a key file that is stored elsewhere. SSH Agent integration _does not_ provide an agent itself but works as a client for any agent implementation that is OpenSSH compatible.
|
KeePassXC SSH Agent integration is built to manage SSH keys in a secure manner by either storing them completely within your KeePassXC database or by having only the decryption key of a key file that is stored elsewhere. SSH Agent integration _does not_ provide an agent itself but works as a client for any agent implementation that is OpenSSH compatible.
|
||||||
@ -173,7 +173,7 @@ The last step is to setup an entry to contain the SSH Agent settings and key fil
|
|||||||
.SSH Agent Entry Settings Page
|
.SSH Agent Entry Settings Page
|
||||||
image::sshagent_entry_settings.png[]
|
image::sshagent_entry_settings.png[]
|
||||||
|
|
||||||
If you chose to not auto-load the key on database unlock, you can manually make the key available by using the context menu from the entry list.
|
If you chose to not autoload the key on database unlock, you can manually make the key available by using the context menu from the entry list.
|
||||||
|
|
||||||
.SSH Agent Load Key from Context Menu
|
.SSH Agent Load Key from Context Menu
|
||||||
image::sshagent_context_menu.png[]
|
image::sshagent_context_menu.png[]
|
||||||
|
@ -1,22 +1,22 @@
|
|||||||
= KeePassXC - Database Operations
|
= KeePassXC – Database Operations
|
||||||
include::.sharedheader[]
|
include::.sharedheader[]
|
||||||
:imagesdir: ../images
|
:imagesdir: ../images
|
||||||
|
|
||||||
// tag::content[]
|
// tag::content[]
|
||||||
== Interface Overview
|
== Interface Overview
|
||||||
=== Application Layout
|
=== Application Layout
|
||||||
The KeePassXC interface is designed for simplicity and easy access to your information. The main database view is split into three main partitions detailed below. You can open multiple databases at the same time, they will appear in tabs.
|
The KeePassXC interface is designed for simplicity and easy access to your information. The main database view is split into four main partitions detailed below. You can open multiple databases at the same time, they will appear in tabs.
|
||||||
|
|
||||||
.Main database interface
|
.Main database interface
|
||||||
image::main_interface.png[]
|
image::main_interface.png[]
|
||||||
|
|
||||||
*(A) Groups* - Organize your entries into discrete groups to bring order to all of your sensitive information. Groups can be nested under each other to create a hierarchy. Settings from parent groups get applied to their children. You can hide this panel on the View menu.
|
*(A) Groups* – Organize your entries into discrete groups to bring order to all of your sensitive information. Groups can be nested under each other to create a hierarchy. Settings from parent groups get applied to their children. You can hide this panel on the View menu.
|
||||||
|
|
||||||
*(B) Tags* - Dynamic groups of entries that can be quickly displayed with one click. Any number of custom tags can be added when editing an entry. This panel also includes useful pre-defined searches, such as finding expired and weak passwords.
|
*(B) Tags* – Dynamic groups of entries that can be quickly displayed with one click. Any number of custom tags can be added when editing an entry. This panel also includes useful pre-defined searches, such as finding expired and weak passwords.
|
||||||
|
|
||||||
*\(C) Entries* - Entries contain all the information you want to store for a website or application you are storing in KeePassXC. This view shows all the entries in the selected group. Each column can be resized, reordered, and shown or hidden based on your preference. Right-click the header row to see all available options.
|
*\(C) Entries* – Entries contain all the information you want to store for a website or application you are storing in KeePassXC. This view shows all the entries in the selected group. Each column can be resized, reordered, and shown or hidden based on your preference. Right-click the header row to see all available options.
|
||||||
|
|
||||||
*(D) Preview* - Shows a preview of the selected group or entry. You can temporarily hide this preview using the close button on the right hand side or completely disabled in the application settings.
|
*(D) Preview* – Shows a preview of the selected group or entry. You can temporarily hide this preview using the close button on the right hand side or completely disabled in the application settings.
|
||||||
|
|
||||||
TIP: You can enable double-click copying of entry username and password in the Application Security Settings. This is turned off by default starting with version 2.7.0.
|
TIP: You can enable double-click copying of entry username and password in the Application Security Settings. This is turned off by default starting with version 2.7.0.
|
||||||
|
|
||||||
@ -26,10 +26,10 @@ The toolbar provides a quick way to perform common tasks with your database. Som
|
|||||||
.Toolbar overview
|
.Toolbar overview
|
||||||
image::toolbar.png[]
|
image::toolbar.png[]
|
||||||
|
|
||||||
*(A) Database* - Open Database, Save Database, Lock Database +
|
*(A) Database* – Open Database, Save Database, Lock Database +
|
||||||
*(B) Entries* - Create Entry, Edit Entry, Delete Selected Entries +
|
*(B) Entries* – Create Entry, Edit Entry, Delete Selected Entries +
|
||||||
*\(C) Entry Data* - Copy Username, Copy Password, Copy URL, Perform Auto-Type +
|
*\(C) Entry Data* – Copy Username, Copy Password, Copy URL, Perform Auto-Type +
|
||||||
*(D) Tools* - Password Generator, Application Settings +
|
*(D) Tools* – Password Generator, Application Settings +
|
||||||
*(E) Search*
|
*(E) Search*
|
||||||
|
|
||||||
=== Application Settings
|
=== Application Settings
|
||||||
@ -59,7 +59,7 @@ You can use the following command line options to tailor the application to your
|
|||||||
|
|
||||||
----
|
----
|
||||||
Usage: keepassxc.exe [options] [filename(s)]
|
Usage: keepassxc.exe [options] [filename(s)]
|
||||||
KeePassXC - cross-platform password manager
|
KeePassXC – cross-platform password manager
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
-?, -h, --help Displays help on commandline options.
|
-?, -h, --help Displays help on commandline options.
|
||||||
@ -85,6 +85,7 @@ Additionally, the following environment variables may be useful when running the
|
|||||||
|
|
||||||
|KPXC_CONFIG | Override default path to roaming configuration file
|
|KPXC_CONFIG | Override default path to roaming configuration file
|
||||||
|KPXC_CONFIG_LOCAL | Override default path to local configuration file
|
|KPXC_CONFIG_LOCAL | Override default path to local configuration file
|
||||||
|
|KPXC_INITIAL_DIR | Override initial location picking for databases
|
||||||
|SSH_AUTH_SOCKET | Path of the unix file socket that the agent uses for communication with other processes (SSH Agent)
|
|SSH_AUTH_SOCKET | Path of the unix file socket that the agent uses for communication with other processes (SSH Agent)
|
||||||
|QT_SCALE_FACTOR [numeric] | Defines a global scale factor for the whole application, including point-sized fonts.
|
|QT_SCALE_FACTOR [numeric] | Defines a global scale factor for the whole application, including point-sized fonts.
|
||||||
|QT_SCREEN_SCALE_FACTORS [list] | Specifies scale factors for each screen. See https://doc.qt.io/qt-5/highdpi.html#high-dpi-support-in-qt
|
|QT_SCREEN_SCALE_FACTORS [list] | Specifies scale factors for each screen. See https://doc.qt.io/qt-5/highdpi.html#high-dpi-support-in-qt
|
||||||
|