Commit graph

124 commits

Author SHA1 Message Date
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
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
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
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
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
Allan Feldman
cb8305f014
(Fix) autofill / extensions and restore persistent storage location (#686) 2025-02-26 20:40:07 -08:00
Mingshen Sun
1e79e12593
Cleanup duplicated code (#678) 2025-02-08 14:26:45 -08:00
Mingshen Sun
a69c4d16b1
Refactor git repository model (#674)
- Create a new model class for operations of Git repository.
- Refactor everything related with git.
- Add unit tests for git functions.
2025-02-02 22:18:16 -08:00
Mingshen Sun
d1de81d919
Refactor core data classes (#671) 2025-01-25 15:40:12 -08:00
Danny Mösch
1bdf9d684b Rely on SPM plugins to consume SwiftLint and SwiftFormat
Use their latest releases and fix some violations and issues.

# Conflicts:
#	.github/workflows/linting.yml
#	.github/workflows/testing.yml
2024-11-29 00:18:30 +01:00
Danny Mösch
d9bd0f3014
Update SwiftLint and SwiftFormat (#613)
* Update Swift version used by SwiftFormat

* Update SwiftLint version

* Rely on new virtual 'all' rule in SwiftLint

* Enable SwiftLint rule 'direct_return' rule and fix all violations

* Enable SwiftLint rule 'shorthand_optional_binding' rule and fix all violations

* Enable SwiftLint rule 'blanket_disable_command' rule and fix all violations
2023-04-23 13:01:37 -07:00
Martin Nowak
3ab334dd00 fix #488 - support user field for completion
- a few other backends use `user` instead of `username` or `login`
  (e.g. gopass-jsonapi, keepass2csv importer, fpm2 importer)
- shorter to type when extracting field separately (e.g. CLI/clipboard) tools
2023-01-22 09:44:41 -08:00
Danny Moesch
819371f55e
Remove unused elements (#530) 2021-12-30 22:35:17 -08:00
Danny Moesch
cdedff0d4d
Use SwiftFormat version 0.49.x and enable some new rules (#527) 2021-12-27 17:57:11 -08:00
Danny Moesch
b7e08dfb9e Enable SwiftLint rule 'static_operator' and fix all violations 2021-10-07 19:48:57 +02:00
Danny Mösch
32b7c9b635
Some cleanup especially regarding method references (#516)
* Remove superfluous method arguments in method references

* Use 'Self' for internal static access

* Convert static to instance field in singleton class

* Remove class name prefix in references to local methods

* Remove nested frameworks in all extensions and frameworks
2021-10-02 20:46:07 -07:00
Mingshen Sun
f2ab400f4b
Support Steam OTP (#505) 2021-09-06 10:47:04 -07:00
Danny Mösch
91229b3bbd
Add missing file headers (#503) 2021-09-02 17:50:40 -07:00
Danny Mösch
3eb131b65d
Fix file headers (#494) 2021-08-27 22:32:31 -07:00
Mingshen Sun
75332270d6
Merge pull request #477 from SimplyDanny/use-protonmail-gopenpgp
Use ProtonMail's GopenPGP library
2021-08-15 01:49:16 -07:00
Mingshen Sun
56a5cbe5cb Fix expired test sub key 2021-08-15 00:46:45 -07:00
Danny Moesch
93954f3bec Use ProtonMail's GopenPGP library
This allows for a simpler setup and the usage of a recent version of Go. The library provides a build script which creates an XCFramework containing binaries for multiple target architectures. The gnu-dummy.patch is taken from mssun/gopenpgp. The forks are not needed anymore.
2021-06-20 12:30:14 +02:00
Mingshen Sun
b49593e87f
Rename ignore .gpg-id switch to enalbe .gpg-id 2021-01-10 20:28:20 -08:00
Mingshen Sun
011762c4bd
Fix decryption issue when key without passphrase set 2021-01-10 15:01:21 -08:00
Mingshen Sun
a62792bd11
Add ignore .gpg-id switch default ON 2021-01-07 21:58:38 -08:00
Mingshen Sun
4a18dd4988 Skip testSSHKeyCredentialProvider in CI 2020-12-30 15:18:39 -08:00
Danny Moesch
bf3bb8d168 Use SwiftLint version 0.47.x 2020-11-10 14:03:12 -08:00
Danny Moesch
eba4df2f51 Fix #424: Escape question mark '?'
It would otherwise be interpreted as the beginning of the query part in an URL.
2020-11-10 12:12:07 -08:00
Danny Moesch
49c6b25611 Use SwiftFormat version 0.47.x 2020-11-09 10:13:05 -08:00
Danny Moesch
e8389eb262 Enable SwiftLint rule 'identifier_name' and handle all violations 2020-09-20 17:25:50 -07:00