Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge from main Branch #6

Merged
merged 25 commits into from
Nov 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
95bae83
Add SECURITY.md to guide security vulnerability reporting (#11360)
Ahlam-Banu Oct 19, 2024
6e0baf9
Support passkeys with Bitwarden import (#11401)
varjolintu Oct 25, 2024
8acc542
Reset splitter sizes on database unlock
droidmonkey Jul 1, 2024
feafcec
Improve related splitter UX
droidmonkey Sep 23, 2024
34fe413
Fix resolving advanced values in entry preview
droidmonkey Sep 23, 2024
5d24495
Hide the menubar when menus lose focus (if toggled off)
droidmonkey Oct 12, 2024
2738a72
Fix assert hit when viewing entry history
droidmonkey Oct 19, 2024
181f480
Build for MacOS too
blessio Oct 17, 2024
b734037
Removed apt upgrade and corrected winget install
blessio Nov 2, 2024
d03ffc2
Fixed background color when window is out of focus
xboxones1 Nov 2, 2024
1e7175d
Merger manually a wait logic from air-hand
blessio Nov 2, 2024
3fd8286
pinned winget version to a newer but still working version
blessio Nov 3, 2024
d4e0fd3
Merge branch 'keepassxreboot:develop' into devbleo3
blessio Nov 3, 2024
63eab48
Set the devbleo3 scheduled overy friday 3:07 AM
blessio Nov 4, 2024
9e3763c
Merge branch 'devbleo3' of github.com:blessio/keepassxc-B into devbleo3
blessio Nov 4, 2024
970e5ee
move from macos-12 to macos-13
blessio Nov 4, 2024
6e81451
Add timeout to SSH Agent streams
droidmonkey Sep 23, 2024
ca9b88f
Replace legacy code on macOS builds (#11428)
FischLu Nov 10, 2024
bff0b93
Device Password fallback when Touch-ID devices are unavailable (#11410)
findus Nov 10, 2024
2fc24be
Browser: Fix cancel with database unlock dialog (#11435)
varjolintu Nov 10, 2024
4acb377
Hide status bar on WelcomeScreen
xboxones1 Nov 10, 2024
b9c5869
Implement T-CONV and T-REPLACE-RX entry placeholders
droidmonkey Nov 9, 2024
9b8163c
Use better xref syntax for documentation
droidmonkey Nov 10, 2024
bf856d2
Detect outdated VC Redist with MSI Installer
droidmonkey Nov 8, 2024
b97969e
Merge branch 'keepassxreboot:develop' into devbleo3
blessio Nov 23, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
181 changes: 135 additions & 46 deletions .github/workflows/bld-test-upload.yml
Original file line number Diff line number Diff line change
@@ -1,40 +1,51 @@
# File: .github/workflows/bld-test-upload.yml
# Copyright: 2024, Owner of blessio.com
# License: MIT
############################################
# Used the starter here:
# See: https://github.com/actions/starter-workflows/blob/main/ci/cmake-single-platform.yml
# BUILDS KeepasXC
name: BLD AND TEST MatrixBased-WIN64-UBUNTU-NotyetMacOS
name: BLD AND TEST MatrixBased-WIN64-UBUNTU-MacOS

on:
schedule:
- cron: 7 3 * * FRI
# runs every Friday 3:07AM
push:
branches: [ "develop", "devbleo2", bleo8, bleo5_01, bleo5_01.1 ]
branches: [ "develop", "devbleo3", bleo8, bleo5_01, bleo5_01.1 ]
pull_request:
branches: [ "devbleo" , bleo5_01 ]

jobs:
build:

#needs: [winprep]
build: # BUILD JOB ############################################################################
if: ${{ github.event_name != 'schedule' || github.ref == 'refs/heads/devbleo3' }}
runs-on: ${{ matrix.config.os }}
strategy:
# Set fail-fast to false to ensure that feedback is delivered for all matrix combinations. Consider changing this to true when your workflow is stable.
fail-fast: false
matrix:
build_type: [RelWithDebInfo,Debug] #Release with no debug info is useless I believe
config:
- os: windows-2022 # , ubuntu-latest] #[windows-latest] # [ubuntu-latest, windows-latest]
- os: windows-latest
vcpkg_triplet: x64-windows
github-binarycache: true
- os: ubuntu-22.04 # , ubuntu-latest] #[windows-latest] # [ubuntu-latest, windows-latest]
- os: ubuntu-latest
vcpkg_triplet: x64-linux
github-binarycache: true
- os: macos-latest
vcpkg_triplet: arm64-osx-dynamic-release
github-binarycache: true
- os: macos-13
vcpkg_triplet: x64-osx-dynamic-release
github-binarycache: true

steps:
###################################


- name: Generate UUID
- name: 100. Generate UUID
id: generate-uuid
uses: filipstefansson/uuid-action@v1

- name: Set reusable strings and Environment for actions
- name: 110. Set reusable strings and Environment for actions
# Turn repeated input strings (such as the build output directory) into step outputs. These step outputs can be used throughout the workflow file.
id: strings
shell: bash
Expand All @@ -47,77 +58,154 @@ jobs:
echo "TRIPLET IS ${{ matrix.config.vcpkg_triplet }}"
echo "Running on ${{ matrix.config.os }}"

- name: Windows Only // Install Winget so that e can use it to install SDK as needed
- name: 112. MacOS version and environment
if: ${{ startsWith( matrix.config.os , 'macos' ) }}
continue-on-error: true
run: |
xcodebuild -version
sw_vers

- name: 120. Windows Only // Install Winget so that it can use it to install SDK as needed
if: ${{ startsWith( matrix.config.os , 'windows' ) }}
uses: Cyberboss/install-winget@v1
uses: blessio/install-winget@develop # Cyberboss/install-winget@v1
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
wget_release_id: '164835566'

- name: Windows Only // Set Up windows SDK and Ruby and the needed gem of asciidoctor
- name: 130. Windows Only // Set Up windows SDK and Ruby and the needed gem of asciidoctor
if: ${{ startsWith( matrix.config.os , 'windows' ) }}
run: |
winget install --source winget --exact --id Microsoft.WindowsSDK.${{ steps.strings.outputs.build-winsdk }} --silent
winget install RubyInstallerTeam.Ruby.3.2 --accept-package-agreements --accept-source-agreements
gem install asciidoctor

- name: Windows Only // Set environment variable VCPKG_ROOT
- name: 140. Windows Only // Set environment variable VCPKG_ROOT
if: ${{ startsWith( matrix.config.os , 'windows' ) }}
run: |
$env:VCPKG_ROOT = "$env:VCPKG_INSTALLATION_ROOT"
echo "VCPKG_ROOT=$env:VCPKG_ROOT" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append

- name: LINUX Only // Prepare Linux packages that are needed
- name: 150. LINUX Only // Prepare Linux packages that are needed
if: ${{ startsWith( matrix.config.os , 'ubuntu' ) }}
run: >
sudo apt update -y &&
sudo apt upgrade -y &&
sudo apt update -y &&
sudo apt install -y build-essential cmake g++ asciidoctor &&
sudo apt install -y qtbase5-dev qtbase5-private-dev qttools5-dev qttools5-dev-tools
libqt5svg5-dev libargon2-dev libminizip-dev libbotan-2-dev libqrencode-dev
libkeyutils-dev zlib1g-dev libreadline-dev libpcsclite-dev libusb-1.0-0-dev
libxi-dev libxtst-dev libqt5x11extras5-dev

- name: get from Git
#- name: 170. MACOS Only // commandline extension
# if: ${{ startsWith( matrix.config.os , 'macos' ) }}
# continue-on-error: true
# run: xcode-select --install
- name: 171. MACOS Only // Homebrew
if: ${{ startsWith( matrix.config.os , 'macos' ) }}
continue-on-error: true
run: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- name: 172. MACOS Only cmake and asciidoctor
if: ${{ startsWith( matrix.config.os , 'macos' ) }}
continue-on-error: true
run: brew install asciidoctor
- name: 173.0 MACOS (re)install pyhon
if: ${{ startsWith( matrix.config.os , 'macos' ) }}
continue-on-error: true
run: |
brew uninstall --ignore-dependencies python
- name: 173.1 MACOS (re)install pyhon
if: ${{ startsWith( matrix.config.os , 'macos' ) }}
continue-on-error: true
run: |
brew uninstall --ignore-dependencies python3

- name: 173.2 MACOS (re)install pyhon
if: ${{ startsWith( matrix.config.os , 'macos' ) }}
continue-on-error: true
run: |
brew install python@3.12

- name: 173.3 MACOS (re)install pyhon
if: ${{ startsWith( matrix.config.os , 'macos' ) }}
continue-on-error: true
run: |
pip install setuptools

- name: 173.4 MACOS (re)install pyhon
if: ${{ startsWith( matrix.config.os , 'macos' ) }}
continue-on-error: true
run: |
python3 --version

- name: 173.5 MACOS (re)install pyhon
if: ${{ startsWith( matrix.config.os , 'macos' ) }}
continue-on-error: true
run: |
python --version

- name: 174. MACOS Only PKGs
if: ${{ startsWith( matrix.config.os , 'macos' ) }}
continue-on-error: true
run: brew install pkg-config vcpkg

- name: 180. get the Source from Git from Git
uses: actions/checkout@v4

- name: Windows Only // VCPKG build
id: vcpkg
if: ${{ startsWith( matrix.config.os , 'windows' ) }}
uses: blessio/vcpkg-actionB@vbleo7.0
- name: 300. Windows AND MacOS // VCPKG install build
id: vcpkg1
if: ${{ startsWith( matrix.config.os , 'macos' ) || startsWith( matrix.config.os , 'windows' ) }}
uses: blessio/vcpkg-actionB@bleo_v7.1.0 # vbleo7.0
with:
manifest-dir: ${{ github.workspace }} # Set to directory containing vcpkg.json
triplet: ${{ matrix.config.vcpkg_triplet }} # x64-windows-release
manifest-dir: ${{ github.workspace }} # Set to directory containing vcpkg.json
# No verbose available extra-args: ' --x-make '
triplet: ${{matrix.config.vcpkg_triplet }} # x64-windows-release
token: ${{ github.token }}
github-binarycache: true
vcpkg-subdir: ${{ steps.strings.outputs.build-root-vcpkg-dir}}
cache-key: "kpxco5-${{ matrix.config.vcpkg_triplet }}"
vcpkg-subdir: ${{steps.strings.outputs.build-root-vcpkg-dir}}
cache-key: "kpxco7-1-${{ matrix.config.vcpkg_triplet }}"
fetch-depth: "0"

- name: Print intermediate environment results
- name: 500. Print intermediate environment results
shell: bash
run: |
echo " *** RECOMENDED CMAKE CONFIG is ${{ steps.vcpkg.outputs.vcpkg-cmake-config }}"
echo " *** HASH IS ${{ steps.vcpkg.outputs.vcpkg-cache-hash }}"
echo " ***** RECOMENDED CMAKE CONFIG is ${{ steps.vcpkg.outputs.vcpkg-cmake-config }}"
echo " ***** HASH IS ${{ steps.vcpkg.outputs.vcpkg-cache-hash }}"

- name: Windows ONLY // Configure CMake
- name: 550. Windows ONLY // Configure CMake
if: ${{ startsWith( matrix.config.os , 'windows' ) }}
run: >
mkdir ${{ steps.strings.outputs.build-sub-dir }} &&
cd ${{ steps.strings.outputs.build-sub-dir }} &&
cmake -DWITH_XC_ALL=ON
-DCMAKE_SYSTEM_VERSION=${{ steps.strings.outputs.build-winsdk }}
-DCMAKE_TOOLCHAIN_FILE=${{ github.workspace }}\${{ steps.strings.outputs.build-root-vcpkg-dir}}\scripts\buildsystems\vcpkg.cmake
-DVCPKG_TARGET_TRIPLET=${{ matrix.config.vcpkg_triplet}}
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
-DWITH_GUI_TESTS=ON
..

- name: 555. MacOS ONLY // Configure CMake
if: ${{ startsWith( matrix.config.os , 'macos' ) }}
run: >
mkdir ${{ steps.strings.outputs.build-sub-dir }} &&
cd ${{ steps.strings.outputs.build-sub-dir }} &&
cmake -DWITH_XC_ALL=ON
-DCMAKE_TOOLCHAIN_FILE=${{ github.workspace }}/${{ steps.strings.outputs.build-root-vcpkg-dir}}/scripts/buildsystems/vcpkg.cmake
-DVCPKG_TARGET_TRIPLET=${{ matrix.config.vcpkg_triplet }}
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
-DWITH_GUI_TESTS=ON
..


- name: LINUX ONLY // Configure CMake
- name: 560. LINUX ONLY // Configure CMake
if: ${{ startsWith( matrix.config.os , 'ubuntu' ) }}
run: >
mkdir ${{ steps.strings.outputs.build-sub-dir }} &&
cd ${{ steps.strings.outputs.build-sub-dir }} &&
cmake -DWITH_XC_ALL=ON
cmake -DWITH_XC_ALL=ON
-DWITH_GUI_TESTS=ON
..

- name: Windows Check DiskSpace
- name: 600. Windows Check DiskSpace
if: ${{ startsWith( matrix.config.os , 'windows' ) }}
run: >
Get-PSDrive -PSProvider FileSystem | Select-Object Name, @{Name="Used (GB)";Expression={[math]::round($_.Used/1GB,2)}},
Expand All @@ -127,32 +215,32 @@ jobs:
# run: >
# Get-ChildItem Env: | Sort-Object Name

- name: Build
- name: 650. Build
# Build your program with the given configuration. Note that --config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).
working-directory: ${{ github.workspace }}/${{ steps.strings.outputs.build-sub-dir }}
run: |
cmake --build . --config ${{ matrix.build_type }}

# Prep for the tests
- name: Windows Only // ADD paths to some specual DLLs needed for the testing
- name: 700. Windows Only // ADD paths to some specual DLLs needed for the testing
if: ${{ startsWith( matrix.config.os , 'windows' ) }}
run: |
$env:PATH="$env:PATH;${{ github.workspace }}\${{ steps.strings.outputs.build-sub-dir }}\src\autotype\test\${{ matrix.build_type }}"
echo "PATH=$env:PATH" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: Linux // ADD paths to some specual DLLs needed for the testing
- name: 710. Linux // ADD paths to some specual DLLs needed for the testing
if: ${{ startsWith( matrix.config.os , 'ubuntu' ) }}
run: |
echo "export PATH=$PATH:${{ github.workspace }}/${{ steps.strings.outputs.build-sub-dir }}/src/autotype/test/${{ matrix.build_type }}" >> ~/.bashrc
source ~/.bashrc

- name: PRINT Environment Variable
- name: 730. PRINT Environment Variable
if: ${{ startsWith( matrix.config.os , 'windows' ) }}
run: |
Get-ChildItem Env: | Sort-Object Name
cd "${{ github.workspace }}\${{ steps.strings.outputs.build-sub-dir }}\src\autotype\test\${{ matrix.build_type }}"
ls

- name: Test and Install
- name: 750. Test
working-directory: ${{ github.workspace }}/${{ steps.strings.outputs.build-sub-dir }}
# Execute tests defined by the CMake configuration. Note that --build-config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
Expand All @@ -162,34 +250,35 @@ jobs:
ctest --build-config ${{ matrix.build_type }}
ctest --build-config ${{ matrix.build_type }} --rerun-failed --output-on-failure

- name: Install
- name: 760. Install RUN on any host with bash
working-directory: ${{ github.workspace }}/${{ steps.strings.outputs.build-sub-dir }}
# Execute tests defined by the CMake configuration. Note that --build-config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
shell: bash
continue-on-error: true
run: >
cmake --install ${{ github.workspace }}/${{ steps.strings.outputs.build-sub-dir }}
--config ${{ matrix.build_type }} --prefix ${{ github.workspace }}/${{ steps.strings.outputs.build-sub-dir }}/_install -v
--config ${{ matrix.build_type }}
--prefix ${{ github.workspace }}/${{ steps.strings.outputs.build-sub-dir }}/_install -v

- name: WINDOWS ONLY // Upload build Executables
- name: 770. WINDOWS ONLY // Upload build Executables
if: ${{ startsWith( matrix.config.os , 'windows' ) }}
uses: actions/upload-artifact@v3
with:
name: build-win-executables- ${{ steps.strings.outputs.bld-var-str }}
name: build-win-executables-${{ steps.strings.outputs.bld-var-str }}
path: |
${{ github.workspace }}/${{ steps.strings.outputs.build-sub-dir }}/src/${{ matrix.build_type }}

- name: NON-WINDOWS // Upload build Executables
- name: 780. NON-WINDOWS // Upload build Executables
if: ${{ ! startsWith( matrix.config.os , 'windows' ) }}
uses: actions/upload-artifact@v3
with:
name: build-non-win-executables- ${{ steps.strings.outputs.bld-var-str }}
name: build-non-win-executables-${{ steps.strings.outputs.bld-var-str }}
path: |
${{ github.workspace }}/${{ steps.strings.outputs.build-sub-dir }}/_install


- name: Upload build Test Result Logs
- name: 790. Upload build Test Result Logs
uses: actions/upload-artifact@v3
with:
name: Test-Logs ${{ steps.strings.outputs.bld-var-str }}
Expand Down
1 change: 1 addition & 0 deletions COPYING
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,7 @@ Copyright: 2022 KeePassXC Team <team@keepassxc.org>
License: MIT

Files: share/icons/application/scalable/actions/application-exit.svg
share/icons/application/scalable/actions/arrow-collapse-down.svg
share/icons/application/scalable/actions/attributes-copy.svg
share/icons/application/scalable/actions/auto-type.svg
share/icons/application/scalable/actions/bitwarden.svg
Expand Down
46 changes: 46 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
### Reporting Security Issues

The KeePassXC team takes security vulnerabilities very seriously and appreciates your responsible disclosure efforts. We will make every effort to acknowledge your contributions and handle them promptly.

To report a security issue, please use one of the following methods:

- **GitHub Security Advisory:** Use the ["Report a Vulnerability"](https://github.com/keepassxreboot/keepassxc/security/advisories/new) tab on our GitHub repository.
- **Private Matrix Message:** Contact any of the following KeePassXC team members privately (also encrypted):
- [@droidmonkey_kpxc](https://matrix.to/#/@droidmonkey_kpxc:matrix.org)
- [@varjolintu](https://matrix.to/#/@varjolintu:matrix.org)
- [@phoerious](https://matrix.to/#/@phoerious:matrix.org)
- **Send an Email:** Send your report to team@keepassxc.org. We recommend encrypting the email if possible.

Please **DO NOT** use public channels (e.g., GitHub issues, Matrix chat channels) for initial reporting of bona fide security vulnerabilities.

Once you report a security issue, our team will respond with the next steps. After our initial reply, we will keep you informed of the progress towards a fix and full announcement. We may ask for additional information or guidance during this process. If we disagree that your report constitutes a genuine security vulnerability, we will inform you and close the report. Your report may be turned into an issue for further tracking.

If you discover vulnerabilities in third-party modules used by KeePassXC, please report them to the maintainers of the respective modules. If the vulnerability impacts KeePassXC directly, we encourage you to notify us using the above methods. We will validate if the vulnerability is exploitable from KeePassXC code; please note that not all vulnerabilities are actually exploitable and do not constitute an immediate concern for the KeePassXC application.

### Example Security Vulnerabilities

When reporting, please ensure the issue falls under what can be considered a genuine security vulnerability for KeePassXC. Some examples include:

- Unauthorized access to sensitive user data (e.g., passwords).
- Remote code execution or escalation of privileges.
- Bypassing authentication or encryption mechanisms.
- Broken or improperly implemented encryption methods.

### Counter Examples

The following issues are **not** considered security vulnerabilities:

- Bugs caused by locally modifying the application (e.g., injecting DLLs, altering code).
- Crashes or misbehavior resulting from normal use (report this as a normal issue).
- Vulnerabilities found in third-party modules (should be reported to the module’s maintainers).

### CVE Reporting Policy

Please **DO NOT** submit a report to a Common Vulnerabilities and Exposures (CVE) Numbering Authority (CNA) before confirming the security vulnerability with the KeePassXC team. If we do not respond to your report within 30 days, this restriction no longer applies.


### Other Communication

For other inquiries (e.g., developer questions, user questions), please use the public channels on Matrix:
- **User's Channel:** [#keepassxc:mozilla.org](https://matrix.to/#/#keepassxc:mozilla.org)
- **Developer's Channel:** [#keepassxc-dev:mozilla.org](https://matrix.to/#/#keepassxc-dev:mozilla.org)
2 changes: 1 addition & 1 deletion docs/topics/AutoType.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ TIP: You can use an asterisk (`\*`) to match any value (e.g., when a window titl
.Auto-Type entry sequences
image::autotype_entry_sequences.png[]

2. _(Optional)_ Define a custom Auto-Type sequence for each window title match by selecting the _Use specific sequence for this association_ checkbox. Sequence action codes and field placeholders are detailed in the following table. Beyond the most important ones detailed below, there are additional action codes and placeholders available: xref:UserGuide.adoc#_auto_type_actions[Auto-Type Actions Reference] and xref:UserGuide.adoc#_entry_placeholders[Entry Placeholders Reference]. Action codes and placeholders are not case sensitive.
2. _(Optional)_ Define a custom Auto-Type sequence for each window title match by selecting the _Use specific sequence for this association_ checkbox. Sequence action codes and field placeholders are detailed in the following table. Beyond the most important ones detailed below, there are additional action codes and placeholders available: <<Auto-Type Actions, Auto-Type Actions Reference>> and <<Entry Placeholders, Entry Placeholders Reference>>. Action codes and placeholders are not case sensitive.
+
[grid=rows, frame=none, width=90%]
|===
Expand Down
Loading
Loading