Commit graph

40 commits

Author SHA1 Message Date
John Maguire
43fad65cf7
Use correct relay key in Nebula config (#184) 2024-10-16 17:13:44 -04:00
John Maguire
470578865b
Update to support netip use in Nebula 1.9.4 (#182) 2024-10-16 17:02:28 -04:00
John Maguire
2d74360bc2
Update Nebula to v1.9.4 (#180) 2024-10-15 14:56:41 -04:00
Ian VanSchooten
fcf21f6f6b
Fix issues with new xcode builds (#177)
John found an issue in gomobile that seems to be the culprit of one of these issues: https://github.com/golang/go/issues/53316#issuecomment-2407626810
2024-10-11 11:21:34 -04:00
John Maguire
998d0459ad
Fix Nebula reloading on managed update (#176) 2024-10-10 09:59:00 -04:00
Ian VanSchooten
1d1a280a9c
Specify correct ndk version (#172) 2024-10-08 12:33:06 -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