Commit graph

136 commits

Author SHA1 Message Date
Danny Moesch
8e8501abb0 Save app passcode in Keychain and migrate existing passcode from SharedDefaults 2019-07-10 21:47:40 -07:00
Danny Moesch
cc493cb490 Allow setting a nil value in AppKeychain.add to delete existing content 2019-07-03 21:45:27 -07:00
Danny Moesch
fa2fde1af4 Leave key source settings unchanged when migrating 2019-07-03 21:45:27 -07:00
Danny Moesch
149edc1cbc Only migrate if possible (do not stop after first failure) 2019-07-03 21:45:27 -07:00
Danny Moesch
f1337622dc Store SSH private keys in Keychain instead of files 2019-07-03 21:45:27 -07:00
Danny Moesch
6b95e60ea1 Introduce CryptographicKey protocol 2019-07-03 21:45:27 -07:00
Danny Moesch
5f19c348c8 Keep global constants for armor keys and clean them up during migration and user initiated key removal 2019-07-02 13:50:16 -07:00
Danny Moesch
7bee780b46 Extract key importing logic and put it into separate class 2019-07-02 13:50:16 -07:00
Danny Moesch
47c9af0127 Fix wrong Keychain key string
This caused the private PGP key passphrase to remain unchanged although the key itself was removed.
2019-07-02 13:50:16 -07:00
Danny Moesch
b806175842 Throw error in case PGP key files cannot be read 2019-07-02 13:50:16 -07:00
Danny Moesch
f0003227d5 Delete key files after migrating them to Keychain 2019-07-02 13:50:16 -07:00
Danny Moesch
441a7f1e9b Put Keychain related methods to separate class 2019-07-02 13:50:16 -07:00
Danny Moesch
e4e4c6daff Implement migration of existing PGP keys into Keychain 2019-07-02 13:50:16 -07:00
Danny Moesch
a66a79abc6 Store PGP keys in Keychain 2019-07-02 13:50:16 -07:00
Danny Moesch
ca3271b20a Restrict passwords in Keychain only to "this" device and disable iCloud syncing 2019-07-02 13:50:16 -07:00
Danny Moesch
5d1a3eae1a Make 'keychain' a static class variable 2019-07-02 13:50:16 -07:00
Yishi Lin
0ec5b5cd80 Fix the git add path 2019-06-15 16:21:37 +08:00
Mingshen Sun
82232be92c
remove some unwraps 2019-06-09 22:18:54 -07:00
Mingshen Sun
c66439c2f9
passKit: fix warnings 2019-06-08 18:03:04 -07:00
Moritz Kuntze
96f7c1960d Changed PGP backend from ObjectivePGP to GopenPGP 2019-06-08 10:39:17 -07:00
Yishi Lin
43ff63e01d Do no prompt repeatedly for the SSH passphrase 2019-05-20 01:26:53 +08:00
Meris Bahtijaragic
c59c72729b Get username from filepath. (#265) 2019-05-17 23:30:41 +08:00
Danny Moesch
adff0c1142 Fix #258: Remove existing key files before moving new ones to the same location 2019-05-15 22:49:46 +02:00
Yishi Lin
451e2f6fbb Fix 262: save context after editing 2019-05-15 01:12:10 +08:00
Yishi Lin
ebb3566616 Cleanup old migration codes 2019-05-15 01:09:58 +08:00
Danny Moesch
44870af774 Trust in assigned default value
In particular, SwiftyUserDefaults returns the default value in case it does not find a value in the dictionary. As the default is '.all' it does not have to be set explicitly. Assigning 'nil' will result in '.all' anyway.
2019-05-04 22:15:23 +02:00
Danny Moesch
c2cd6481fd Utilize default settings values 2019-05-01 18:30:13 +02:00
Danny Moesch
f9c19b3ca4 Migrate to Swift 5.0 2019-05-01 18:30:13 +02:00
Danny Moesch
e06413b348 Add default value to non-optional DefaultsKeys 2019-05-01 18:30:13 +02:00
Danny Moesch
89c0d3c98e Assign nil by unwrapping optional 2019-05-01 17:09:34 +02:00
Danny Moesch
9e0d60989b Remove unnecessary returns 2019-05-01 17:08:44 +02:00
David Beitey
f98d56753b Add ability to hide password images
This disables loading of favicon images associated with password entries
and hides any images that are already loaded, using the generic icon
instead.

The key benefit to this option is to prevent passforios revealing that a
given device has a password in its store, which could be gleaned from
the fact that favicons are being loaded in this manner.
2019-03-03 10:54:30 -08:00
Danny Moesch
3cf55d91ff Display last updated date in absolut instead of relative form
This is necessary to have a language independent representation. For example, the previous format would have produced a grammatically wrong term in German.
2019-02-23 14:22:27 -08:00
Danny Moesch
d698f2e3c3 Use folder references for all groups and sort files/folders 2019-01-21 20:34:18 -08:00
Danny Moesch
38b44cedf8 Add missing error messages and name them consistently
Since the AppError enum is suffixed with 'Error', the elements itself do not need this suffix, too.
2019-01-20 21:04:04 -08:00
Danny Moesch
08c91599b6 Use | operator to concatenate multiline strings 2019-01-20 21:04:04 -08:00
Danny Moesch
1b4040135e Localize strings in code 2019-01-20 21:04:04 -08:00
Danny Moesch
2d5ca58bd9 Use PasswordGeneratorFlavor class to set user defaults and UI elements 2019-01-20 21:04:04 -08:00
Danny Moesch
857a8f44bf Prepare for localization 2019-01-20 21:04:04 -08:00
Mingshen Sun
88481ad2b0
Release 0.5.1 and version bump to 0.6.0 2019-01-13 18:48:10 -08:00
Danny Moesch
6b4dbd50a9 Support custom branches (#236) 2019-01-13 15:34:01 -08:00
Danny Moesch
744b46adc2 Do not show 0 if numbers in "About Repository" cannot be obtained properly 2019-01-12 16:36:37 -08:00
Danny Moesch
f47e7d384c Show correct number of commits in "About Repository" 2019-01-12 16:36:37 -08:00
Danny Moesch
64956c6643 Simplify code 2018-12-18 10:06:45 -08:00
Danny Moesch
9e027b878a Replace TableCell struct with AdditionField 2018-12-18 10:06:45 -08:00
Mingshen Sun
ed387069a4
lint: delete trailing whitespaces 2018-12-09 16:59:07 -08:00
Danny Moesch
5780a439db Show number of hidden fields in password view 2018-12-08 21:15:51 -08:00
Danny Moesch
68dd60fb8e Introduce utility methods to test for unknowns and OTP keywords 2018-12-08 21:15:51 -08:00
Danny Moesch
bb6e44950f Add missing word 2018-12-08 21:11:58 -08:00
Danny Moesch
3cc7510b29 Ignore case of OTP keywords when deciding whether to hide them 2018-12-05 12:59:04 -08:00