Commit graph

1565 commits

Author SHA1 Message Date
Lysann Tranvouez
b1314dd8c3 Merge branch 'feature/multi-key-support' into feature/multi-repo 2026-03-12 22:52:10 +01:00
Lysann Tranvouez
4d564f570b plan updates 2026-03-12 22:51:28 +01:00
Lysann Tranvouez
cd6dd43dae do not search too far for .gpg-id + lots of tests for that 2026-03-12 22:47:39 +01:00
Lysann Tranvouez
5c416bfb21 test .gpg-id support
mostly using mocks
2026-03-12 09:33:26 +01:00
Lysann Tranvouez
38649f96fe mocking prep: PasswordStoreTest has its own KeyStore 2026-03-12 09:32:04 +01:00
Lysann Tranvouez
e3de11f71c PasswordStore: allow to pass in a specific PGPAgent implementation (for testing) 2026-03-12 09:32:04 +01:00
Lysann Tranvouez
77f85ccdd1 support reading several key IDs in .gpg-id files 2026-03-12 09:32:04 +01:00
Lysann Tranvouez
566b7253f5 remove overload, caller can take care of it in 2 step process 2026-03-12 09:32:04 +01:00
Lysann Tranvouez
e32402b807 streamline gpg-id handing
* decrypt should not care about it at all
* PasswordStore.decrypt always forwards the passed in keyID, even when
  gpg-id handling is disabled
* PasswordStore.encrypt: streamlined, but should be same behavior
2026-03-12 09:32:04 +01:00
Lysann Tranvouez
054f333bac deduplicate decrypt logic in PGPAgent 2026-03-12 09:32:04 +01:00
Lysann Tranvouez
b103337083 move function to be closer to related one 2026-03-12 09:32:04 +01:00
Lysann Tranvouez
5a92b6fda7 clarify public vs private keys + make prvate key IDs available 2026-03-12 09:32:04 +01:00
Lysann Tranvouez
4e19d9e714 remove irrelevant properties from mocks 2026-03-12 09:32:04 +01:00
Lysann Tranvouez
9e3e3d1134 remove fallback behavior
this logic should not be relevant anywhere
2026-03-12 09:32:04 +01:00
Lysann Tranvouez
e69e590e36 replace calls to deprecated function
changes PasswordStore.encrypt behavior when .gpg-id support is off
(default):
  old:
    * ignores passed in keyID
    * encrypt with first public key in keychain (gopenPGP), or entire
      keychain (ObjectivePGP)
  new:
    * honor passed in keyID
    * encrypt with all keys in keychain
2026-03-12 09:32:04 +01:00
Lysann Tranvouez
09b0b150ce PGPAgent can encrypt with multiple keys 2026-03-11 14:12:24 +01:00
Lysann Tranvouez
b7873e6d72 move functions around 2026-03-11 14:11:37 +01:00
Lysann Tranvouez
e728f26a20 move and rename test functions 2026-03-11 14:11:29 +01:00
Lysann Tranvouez
84eaf4ad7d PGPInterface can encrypt with multiple keys, PGPAgent can encrypt with all keys 2026-03-11 14:11:07 +01:00
Lysann Tranvouez
8d4f3af475 decryption: GopenPGPInterface tries to identify decryption key from message metadata
So the system can have multiple private keys, and the caller doesn't
need to specify a specific one regardless.

Ideally: If there are several matches we could also take into account
which keys have already been unlocked (or passthrases saved in
keychain). Right now it only grabs the first match.
2026-03-11 13:41:59 +01:00
Lysann Tranvouez
f1cb5d27be reference new version of gopenpgp with a new helper (HelperPassGetHexSubkeyIDsJSON) 2026-03-11 13:39:55 +01:00
Lysann Tranvouez
2ae751044c decryption: always request key passphrase based on key ID 2026-03-11 13:32:21 +01:00
Lysann Tranvouez
d136175d93 add detailed API tests checking how calls to PGPAgent propagate to the underlying interface
this is refactoring support, so that we can notice changes in how the
underlying APIs are called, and make changes intentionally when needed,
instead of accidentally.
2026-03-11 11:36:36 +01:00
Lysann Tranvouez
76db529764 add long fingerprints for test keys 2026-03-11 10:34:54 +01:00
Lysann Tranvouez
c4f81c16eb move variables into smaller scope 2026-03-10 16:51:40 +01:00
Lysann Tranvouez
f0c21dd880 Merge branch 'feature/more-tests-pr' into feature/multi-key-support 2026-03-09 23:08:48 +01:00
Lysann Tranvouez
55b682b4b0 improve directory deletion/editing handling 2026-03-09 22:58:05 +01:00
Lysann Tranvouez
b8b7e1f913 PersistenceController tests 2026-03-09 22:58:05 +01:00
Lysann Tranvouez
cde82d956b rename file to match contained class 2026-03-09 22:58:05 +01:00
Lysann Tranvouez
4c21ab99ad add tests for AppKeychain 2026-03-09 22:58:05 +01:00
Lysann Tranvouez
c6a4f80503 add initPasswordEntityCoreData tests 2026-03-09 22:58:05 +01:00
Lysann Tranvouez
e1da1988b4 add save and decrypt round trip 2026-03-09 22:58:05 +01:00
Lysann Tranvouez
e195280efc test resetting local changes 2026-03-09 22:58:05 +01:00
Lysann Tranvouez
c3bfa861f4 check file system and commits upon changes to store 2026-03-09 22:58:05 +01:00
Lysann Tranvouez
98646242e0 fix deleting directory
this used to corrupt the local state (password entities remained in DB
but files/dirs were removed from git and disk)
2026-03-09 22:58:05 +01:00
Lysann Tranvouez
12c8c04203 test add, edit, delete 2026-03-09 22:58:05 +01:00
Lysann Tranvouez
98ad323431 check notification center notifications 2026-03-09 22:58:05 +01:00
Lysann Tranvouez
e5650ec756 add encrypt-save-decrypt roundtrip test 2026-03-09 22:58:05 +01:00
Lysann Tranvouez
60999c7eab more tests: entity fetching + erase 2026-03-09 22:56:27 +01:00
Lysann Tranvouez
ef188fcfba basic core data tests upon clone 2026-03-09 22:56:27 +01:00
Lysann Tranvouez
85972a02c3 include repo as text fixture, no need to clone from actual github 2026-03-09 22:56:27 +01:00
Lysann Tranvouez
17b6bb8bc2 fix test cleanup 2026-03-09 22:20:04 +01:00
Lysann Tranvouez
c30e1922f1 feature implementation plans 2026-03-09 15:02:48 +01:00
Lysann Tranvouez
7db85c9939 DO NOT MERGE
local development signing fixes
2026-03-08 21:08:36 +01:00
dependabot[bot]
53ae6426bd
Bump faraday from 1.10.4 to 1.10.5 (#710)
Some checks failed
Deploying / build (release) (push) Has been cancelled
Testing / testing (push) Has been cancelled
Deploying / build (beta) (push) Has been cancelled
Bumps [faraday](https://github.com/lostisland/faraday) from 1.10.4 to 1.10.5.
- [Release notes](https://github.com/lostisland/faraday/releases)
- [Changelog](https://github.com/lostisland/faraday/blob/main/CHANGELOG.md)
- [Commits](https://github.com/lostisland/faraday/compare/v1.10.4...v1.10.5)

---
updated-dependencies:
- dependency-name: faraday
  dependency-version: 1.10.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-12 16:22:19 +01:00
dependabot[bot]
1a92996a47
Bump rexml from 3.3.9 to 3.4.2 (#702) 2025-09-17 23:28:05 +02:00
Mingshen Sun
c3e67967cc Update YubiKit to 4.7.0 2025-06-08 16:35:50 -07:00
Danny Mösch
4288c4e218
Update dependencies (#690) 2025-04-04 10:43:59 -07:00
Mingshen Sun
dd4dd174d4
Update password in the destination controller when save edit (#688) 2025-03-02 11:43:46 -08:00
Mingshen Sun
0f482709ae Version bump 2025-02-28 20:24:01 -08:00