Commit Graph

239 Commits

Author SHA1 Message Date
Davide De Rosa fec2f02df5 Move Credits inside Version 2018-10-29 21:25:06 +01:00
Davide De Rosa cced9b018f Fix provider name ordering
Define intrinsecally with Comparable.
2018-10-29 17:48:17 +01:00
Davide De Rosa 0d49d1abc8 Upgrade SwiftGen 2018-10-28 14:50:12 +01:00
Davide De Rosa 474105d671 Add current Wi-Fi without auto-trusting 2018-10-28 14:50:09 +01:00
Davide De Rosa ebe8c5836b Only retain first parsing warning 2018-10-28 14:41:41 +01:00
Davide De Rosa 49b86c2888 Move variable declaration to proper scope 2018-10-28 14:41:41 +01:00
Davide De Rosa 326c5b823d Observe wizard creation via notifications
Flow is too scattered to safely maintain delegation.
2018-10-27 20:11:26 +02:00
Davide De Rosa fa59b8b5f9 Fix handling of extra whitespaces in .ovpn
Fixes #17
2018-10-27 19:49:35 +02:00
Davide De Rosa b7dc72a5e9 Sort hosts ignoring case 2018-10-27 16:56:41 +02:00
Davide De Rosa 8d2ce2e7ae Handle potentially unsupported as a warning alert
Configuration is imported anyway, so alert must be asynchronous.
2018-10-27 14:57:37 +02:00
Davide De Rosa 0b7ab7bca6 Intercept potentially unsupported options
As warnings.
2018-10-27 14:51:51 +02:00
Davide De Rosa cda53bc4f1 Clean up Inbox on migration 2018-10-27 13:35:21 +02:00
Davide De Rosa dcecc84bda Remove .ovpn of deleted profile 2018-10-27 13:35:21 +02:00
Davide De Rosa 0e7c0b6388 List imported .ovpn if any, fall back to alert
Use .formSheet presentation (iPad).
2018-10-27 12:43:26 +02:00
Davide De Rosa 25523b5f61 Add stubs for imported hosts 2018-10-27 12:43:26 +02:00
Davide De Rosa 9e933d68c5 Improve unsupported options filter 2018-10-27 12:33:30 +02:00
Davide De Rosa 8c1e6d00ca Parse .ovpn file outside of wizard context 2018-10-27 12:33:17 +02:00
Davide De Rosa 422c4da09c Move ParsedFile out of WizardHostVC 2018-10-27 12:08:44 +02:00
Davide De Rosa 0d14349bca Move filename charset to extensions 2018-10-27 12:08:44 +02:00
Davide De Rosa 4bcb1fe2ad Convert some warnings to errors 2018-10-27 12:08:44 +02:00
Davide De Rosa 804585f13d Fix/improve some poor filename parsing 2018-10-27 10:52:26 +02:00
Davide De Rosa e00129c8a5 Adjust issue alert to new .ovpn attachment 2018-10-27 09:43:57 +02:00
Davide De Rosa 4b075bcc95 Improve alerts on configuration import error
Issue reporting is currently disabled because un unparsed .ovpn
may contain sensitive data.
2018-10-27 09:43:57 +02:00
Davide De Rosa 73e09fefb1 Retain unhandled mtu/mssfix lines in stripped 2018-10-27 09:43:57 +02:00
Davide De Rosa c7639daf0d Strip configuration file before attaching
Of sensitive or private data.
2018-10-27 09:42:41 +02:00
Davide De Rosa a69c7c5733 Attach .ovpn as plain text
Can easily inspect via email.
2018-10-27 09:42:41 +02:00
Davide De Rosa dfde9c51e3 Fine-grain report attachments
- Debug log
- .ovpn profile (if any)
2018-10-27 09:42:41 +02:00
Davide De Rosa 821393af70 Refactor configurations in service extension
Reuse same directories of ConnectionService for storing
configuration files.
2018-10-27 09:42:41 +02:00
Davide De Rosa 4388dfe6ae Lower log level 2018-10-27 09:42:41 +02:00
Davide De Rosa 76f2597424 Update TunnelKit and remove unused code
ConnectionProfileHolder
2018-10-26 19:05:25 +02:00
Davide De Rosa 52ec2bebd5 Restrict charset for host profile title
It's used now as a filename. Remember to also normalize pre-filled
title from imported filename by replacing illegal characters.
2018-10-26 18:57:07 +02:00
Davide De Rosa b5347e04b2 Move Context to ConnectionProfile
Fix an id conflict in credentials.
2018-10-26 18:57:07 +02:00
Davide De Rosa 18c7de140e Overwrite an existing profile configuration 2018-10-26 18:57:07 +02:00
Davide De Rosa 78abb8c764 Refactor service to use external profile JSONs
- Store only profile key/metadata into service.

- Map profiles by (context, id), context being either provider
or host.

- Initialize cache with a placeholder profile, lazily load full
profile (e.g. after opening profile).

- Only serialize non-placeholder profiles (opened once).

- Do not load full profiles for organizer listing

WARNING: always load active profile as non-placeholder.
2018-10-26 18:30:37 +02:00
Davide De Rosa 2d2884fdea Export profiles to separate JSONs
Use id as contextual filename.
2018-10-26 18:03:28 +02:00
Davide De Rosa 2aae3499de Move host configurations to "Hosts" subdirectory
Without "host." prefix, now unnecessary.
2018-10-26 18:03:28 +02:00
Davide De Rosa 8e1b67d151 Infer profile id uniqueness by context
Drop "(provider|host)." prefix, reuse as title.
2018-10-26 17:37:52 +02:00
Davide De Rosa 8f29f79168 Fix exceptions thrown on already migrated JSON
Also remove deprecated tunnel configuration keys.
2018-10-26 15:31:02 +02:00
Davide De Rosa 52cf733948 Only make host editable if original cfg available 2018-10-25 22:57:42 +02:00
Davide De Rosa 9726158030 Drop deprecated configuration values
- debugLogKey
- lastErrorKey
2018-10-25 22:45:50 +02:00
Davide De Rosa 12e0a55f7a Bind migrations to build numbers 2018-10-25 22:45:50 +02:00
Davide De Rosa 082ffa3cb1 Attach build number to service JSON
Update before serializing.
2018-10-25 22:45:50 +02:00
Davide De Rosa c73c2e3826 Rename tunnelConfiguration to baseConfiguration
It's much less confusing. Migrate too.
2018-10-25 22:45:50 +02:00
Davide De Rosa 09685e6994 Activate service migration 2018-10-25 22:45:50 +02:00
Davide De Rosa d087acd512 Migrate host configurations 2018-10-25 22:45:50 +02:00
Davide De Rosa 542a3e3721 Upgrade TunnelKit with configuration refactoring 2018-10-25 22:45:44 +02:00
Davide De Rosa f1f09dde2f Rename support request to join community 2018-10-24 21:57:27 +02:00
Davide De Rosa ef9032e440 Update TunnelKit
- Improve logging performance and privacy.
- Fix server-side renegotiation issues.
2018-10-24 21:23:13 +02:00
Davide De Rosa 205f8a9c0e Refine regex for unsupported blocks
Was rejecting entries with shared prefix (e.g. "key" -> "keysize").
2018-10-24 10:24:45 +02:00
Davide De Rosa f691a4f204 Raise exception on proxy in .ovpn 2018-10-24 00:24:23 +02:00
Davide De Rosa ebbba3a713 Update TunnelKit to handle new error codes 2018-10-23 23:51:50 +02:00
Davide De Rosa d026004db3 Raise exception on external file in .ovpn
- ca
- cert
- key
- tls-auth
- tls-crypt
2018-10-23 19:07:09 +02:00
Davide De Rosa d781d9c8e0 Add share section with generic activity
To invite a friend.
2018-10-23 12:59:06 +02:00
Davide De Rosa 81c7236500 Localize Twitter intent 2018-10-23 12:59:06 +02:00
Davide De Rosa 39c053bd54 Add tweet cell to About 2018-10-23 12:59:06 +02:00
Davide De Rosa 4bd339d456 Remove "Report issue" from About
Will bind report to current profile.
2018-10-23 12:59:06 +02:00
Davide De Rosa 0f374fa8c9 Rename "Submit debug log" to "Report issue" 2018-10-23 12:59:06 +02:00
Davide De Rosa edc513f6cc Drop password confirmation field 2018-10-23 12:57:41 +02:00
Davide De Rosa be17f57a5e Add reset cell to revert to original configuration
When a backing .ovpn is available.
2018-10-23 12:57:11 +02:00
Davide De Rosa 346a9490ec Save .ovpn internally associated to host profile 2018-10-23 12:57:11 +02:00
Davide De Rosa 9292919816 Update VPN status after profile reinstall
Should now cover all scenarios.
2018-10-23 12:54:40 +02:00
Davide De Rosa 976e47af64 Clear VPN error status before restart 2018-10-22 21:49:43 +02:00
Davide De Rosa e8f2aaaf08 Show tunnel failure reason in VPN status 2018-10-22 21:49:43 +02:00
Davide De Rosa 3dd7f9e779 Update VPN section footer accordingly 2018-10-21 10:19:42 +02:00
Davide De Rosa 6ed70feb77 Reconnect with a specific action cell 2018-10-21 10:19:42 +02:00
Davide De Rosa be6abdcf2a Move file-to-lines to String extension 2018-10-21 09:36:50 +02:00
Davide De Rosa 8219519a22 Fix credentials requirement in VPN configuration
Refines #4
2018-10-19 17:51:25 +02:00
Davide De Rosa 0954de3322 Support TLS wrapping via TunnelKit
tls-auth and tls-crypt.
2018-10-19 17:25:39 +02:00
Davide De Rosa ae2bd3d876 Replace some profile exceptions with preconditions
Misconfigured profiles must fall back to a consistent state, this
is a programming error.

- provider.pool: fall back to default pool (should always be there)
- provider.preset: why would one remove a preset?
- host.endpointProtocols: .ovpn with no remotes shouldn't get this far
2018-10-19 01:29:44 +02:00
Davide De Rosa 5e0590184b Require credentials for providers only
Not always the case, but PIA certainly requires them. Will make it
an infrastructure option later. Only require credentials as a
configuration check, everything else has defaults.
2018-10-19 01:29:44 +02:00
Davide De Rosa 23e27535c6 Split support requests
- Generic support on Reddit
- Debug log via email
2018-10-18 16:40:58 +02:00
Davide De Rosa 2fd5c32435 Fix PIA infra with empty endpoints 2018-10-18 14:48:20 +02:00
Davide De Rosa 46a8f72039 Bump API endpoint version 2018-10-18 14:07:32 +02:00
Davide De Rosa 8d1acda11a Reject API response requiring more recent build 2018-10-18 14:02:35 +02:00
Davide De Rosa 567ddd9b12 Find out version/build statically
Assume bundle and info dictionary are never nil.
2018-10-18 14:02:35 +02:00
Davide De Rosa 728adf7919 Update PIA preset with GCM and patched endpoints 2018-10-18 13:55:07 +02:00
Davide De Rosa c1be49a164 Add PIA patches support 2018-10-18 13:38:00 +02:00
Davide De Rosa 4774c2705f Raise exception on unrecognized option values
Do not fall back when an unhandled value is found in:

- cipher
- auth
- proto

Falling back to a default value here would break the data
connection most of the time.
2018-10-18 10:25:15 +02:00
Davide De Rosa b93000819b Reuse Credits VC to add a Disclaimer 2018-10-18 10:19:08 +02:00
Davide De Rosa 62d1c2d882 Add promoting alert for subreddit 2018-10-18 10:04:23 +02:00
Davide De Rosa b6d430f106 Add link to Reddit 2018-10-18 09:37:18 +02:00
Davide De Rosa e31e4a31df Reword issue report 2018-10-18 09:37:18 +02:00
Davide De Rosa ccd5e2d03e Append exception desc to parsing error alert 2018-10-18 09:32:18 +02:00
Davide De Rosa b62f7669f2 Match cfg lines from the beginning
E.g. cipher was matching tls-cipher.
2018-10-17 23:59:30 +02:00
Davide De Rosa f3df03de9b Disclose organizer profiles
Use text instead of checkmark to mark active profile. Allows
restoring disclosure indicator.
2018-10-17 23:58:49 +02:00
Davide De Rosa d1b0b59748 Treat unsupported option errors specifically
Show a more informative alert if the provided .ovpn file contains
an unsupported option.
2018-10-16 18:03:13 +02:00
Davide De Rosa 1602972c8e Replace self-hosted API with static GitHub Pages 2018-10-11 21:30:53 +02:00
Davide De Rosa 76da7426cf Add missing credits 2018-10-11 09:47:40 +02:00
Davide De Rosa b9ec01945d Initial commit 2018-10-11 09:13:19 +02:00