Commit Graph

35 Commits

Author SHA1 Message Date
Ian VanSchooten d7b70ae5dd Specify correct ndk version 2024-10-07 15:20:47 -04:00
Ian VanSchooten 78640437f1
Update Gradle, replace QR code reader library (#162)
I ran the Gradle Upgrade Assistant to get us on the latest version of gradle, but two of our dependencies didn't support it.

- https://pub.dev/documentation/package_info/latest/
- https://github.com/AmolGangadhare/flutter_barcode_scanner

`pacakge_info` is officially deprecated and replaced by `package_info_plus`, which is what I've swapped to here.

A bigger change was switching to https://github.com/juliansteenbakker/mobile_scanner.  It does seem to work a bit better than the other one, and does not throw an error now when cancelling the QR code collection, as it did before.  I've tested on android in the simulator, and iOS with an actual device.  

To test adding a cert:
1. Create a CA on your computer with `nebula-cert ca -name test-mobile`.  This will create a `ca.crt` and `ca.key`
2. Tap the + button in the mobile app to add a site
3. Tap the "Certificate" row
4. Copy the public key to a file on your computer like `test.pub`
5. Create a signed cert with `nebula-cert sign -name test-mobile -ip 192.168.0.20/24 -in-pub test.pub`
6. Create a QR code for it: `nebula-cert print -out-qr "qr.png" -path ./test-mobile.crt`
7. In Android studio, in the "Running devices" tab, open the simulator's extended controls:  
<img width="509" alt="Android Studio 2024-09-23 13 08 08" src="https://github.com/user-attachments/assets/c1f8288e-374c-457c-942a-4109240102ab">

8. Choose the Camera option, and add the qr code image to the wall of the virtual scene
<img width="679" alt="image" src="https://github.com/user-attachments/assets/bafaa9af-72e4-4444-9704-9876c53c883c">

9. Back in the app, when you choose QR Code and "Scan a QR code`, the virtual scene should open.  Hold shift, then move your mouse to look around.  Turn around 180 degrees, and walk forward into the other room (can go through the walls) using the `w` key.  When you get the QR code into the white border, the scanner should close and apply the certificate settings.  If you use a nonsense QR code, or a QR code with a non-matching key, or a CA QR code, you should get an error message when it scans.

The process for scanning a CA qr code is similar.  

1. Run `nebula-cert print -out-qr "qr-ca.png" -path ./ca.crt`
2. Replace the QR in the extended controls
3. Tap CA when adding a site
4. The rest of the process is the same as above.

iOS is similar, except you'll need to use a real device, as the simulator does not include a virtual scene like Android does.
2024-09-24 07:25:09 -04:00
Ian VanSchooten 64d45f66c7
Update Flutter, target android SDK 34 (#160)
This updates flutter to 3.24.1, the latest stable version, and also updates our flutter dependencies to latest.

It targets the latest android sdk, 34, which is required if we want to publish a new version to the Google Play store.

I also needed to make a few adjustments to handle deprecations. The biggest change is that I needed to wrap the main widget in MaterialApp to avoid problems with AdaptiveSwitch in iOS.
2024-09-20 14:19:23 -04:00
John Maguire f576aa0c50
Update Nebula and dnapi (#158)
* Update Nebula and dnapi

* Update Go
2024-06-20 15:24:00 -04:00
John Maguire 2353eaf4e3
Update Nebula to latest upstream (#154) 2024-03-07 15:57:34 -05:00
John Maguire 7a048d88d7
Update Nebula to v1.8.1 (#147) 2023-12-19 16:54:20 -05:00
John Maguire 8edd43230b
Update to Nebula 1.8.0 (#144)
* Update to Nebula 1.8.0

* Update code for Nebula 1.8 changes

* Update to fixed Nebula build
2023-12-06 17:09:22 -05:00
John Maguire ec1af2974a
Fix encryption errors after restoring to a new phone (#143)
When a user restores to a new phone, their TPM will no longer be able to
decrypt the encrypted credentials.

We have code already in place to delete "invalid" sites, which cleans
these up by removing them.

However, when trying to save a new site, Android continues to try to use
the old keys which are no longer decryptable. So, when saving new
encrypted files, simply reset the crypto keys if we are unable to
encrypt.
2023-12-01 15:26:21 -05:00
John Maguire fbd2759d4f
Replace 'DN' with 'Managed Nebula' (#139) 2023-10-05 14:41:40 -04:00
Nate Brown 83145f6fa4
Update nebula to 1.7.2 (#134) 2023-06-01 13:39:40 -05:00
John Maguire dcf54b1c38
Update nebula to v1.7.1 (#130) 2023-05-18 16:05:23 -04:00
John Maguire 096bad25ee
Update nebula to v1.7.0 (#129) 2023-05-17 12:38:31 -04:00
John Maguire 7f5fa57b93
Update nebula binding code for new APIs (#120) 2023-05-10 18:05:56 -04:00
John Maguire ffe2db283c
Update nebula to latest commit on master (#118) 2023-05-10 16:34:26 -04:00
John Maguire 37758d4a01
Request VPN permissions on site start (#92)
Previously VPN permissions were requested when the UI was loaded. If the
user denied the permissions it would have to be force stopped and
reopened to get another permission request grant.

Additionally, when requesting VPN permissions Android will kill any
other running VPN service. This avoids that behavior unless a site is
explicitly started.

Also disables the app from showing up in the "Always On" settings.
2022-11-18 14:34:45 -05:00
John Maguire c7a53c3905
Support DN host enrollment (#86)
Co-authored-by: Nate Brown <nbrown.us@gmail.com>
2022-11-17 16:43:16 -05:00
John Maguire c3f5c39d83
Update Nebula to fix Android NebulaVpnService bug (#85) 2022-11-17 16:30:03 -05:00
Nate Brown d8e90a1b4b
Support older versions of android to include chromeos (#76) 2022-10-26 09:57:07 -05:00
Nate Brown b29661abff
Automated build and release (#71) 2022-10-03 15:30:39 -05:00
Nate Brown dbe67c2f81
Upgrade to flutter 3 (#70)
Co-authored-by: John Maguire <contact@johnmaguire.me>
2022-09-21 15:27:35 -05:00
Nate Brown 958b15d711
Allow import of private key, make it so key material isn't removed when navigating off the add a cert page (#64) 2022-08-05 16:42:17 -05:00
Nate Brown 457952b5ed
Rebind against nebula 1.6 for relays, modernize build (#63) 2022-08-04 19:39:46 -05:00
John Maguire 3e0da2a8f0
Fix log formatting in "Rebinding UDP listener" (#55) 2022-01-18 11:59:41 -05:00
John Maguire fec77613bf
Update for Flutter 2.8.0 (#54) 2022-01-18 11:58:26 -05:00
Nate Brown 87ce46df19
Update to current master to prepare for 1.5.2 (#50) 2021-12-17 09:53:15 -06:00
Nate Brown cff26eb679 Quiet down rebind logs 2021-06-08 10:10:21 -05:00
Nate Brown de43f11ab2 Update core nebula 2021-06-07 10:26:56 -05:00
Nate Brown bde3f6fdfa
Update core to 1.4 (#41) 2021-05-11 11:03:26 -05:00
Nate Brown a7c32f5bd4
Kotlin active site race on boot fix (#29) 2021-04-29 10:17:43 -05:00
Nathan Brown 1283ce30e9
IPV6 support (#24) 2021-04-23 16:23:06 -05:00
Nate Brown a01b22fcfe Update icon 2020-09-24 16:24:04 -05:00
Nate Brown e71ae4c68e Get ios 14 building and attempt to correct mmwormhole issues with the nextension 2020-09-17 21:53:03 -05:00
Nate Brown e1f779aedc v0.0.36 prep 2020-08-31 19:05:13 -05:00
Nate Brown 1a4cbceda0 Run check config on app boot, fix early error reporting on android 2020-08-17 11:56:15 -05:00
Nate Brown b546dd1c9d Initial commit 2020-07-27 15:43:58 -05:00