├── COPYING ├── install ├── osx │ ├── log.txt │ ├── Lantern.app │ │ └── Contents │ │ │ ├── PkgInfo │ │ │ ├── MacOS │ │ │ └── Lantern │ │ │ ├── Resources │ │ │ ├── LanternBrowser.icns │ │ │ └── en.lproj │ │ │ │ ├── MainMenu.nib │ │ │ │ ├── InfoPlist.strings │ │ │ │ └── Credits.rtf │ │ │ └── Info.plist │ ├── copyPolicy.exe │ ├── latest.dmg │ └── org.lantern.plist ├── wrapper │ ├── .lantern-configurl.txt │ ├── InstallDownloader.class │ └── dpkg.bash ├── win │ ├── 128on.ico │ ├── osslsigncode │ ├── copyPolicy.exe │ ├── latest.exe │ └── Lantern.bat ├── common │ ├── 128on.png │ ├── 16off.png │ ├── 16on.png │ ├── 32off.png │ ├── 32on.png │ ├── 64on.png │ ├── GeoIP.dat │ ├── lantern.icns │ ├── bcprov-jdk16-1.46.jar │ └── all-lantern.js ├── linux │ ├── copyPolicy.exe │ ├── lantern-autostart.desktop │ ├── latest-32.deb │ ├── latest-64.deb │ └── configureUbuntu.txt ├── java6 │ ├── local_policy.jar │ └── US_export_policy.jar ├── java7 │ ├── local_policy.jar │ └── US_export_policy.jar └── install_config.exe4j ├── src ├── main │ ├── resources │ │ ├── whitelists │ │ │ └── 1.0.1.txt │ │ ├── lantern-version.properties │ │ ├── client_secrets_installed.json │ │ ├── proxy_on.pac.template │ │ ├── friendsuggestion.html │ │ ├── LanternResourceBundle_zh.properties │ │ └── LanternResourceBundle_fa.properties │ └── java │ │ └── org │ │ ├── lantern │ │ ├── event │ │ │ ├── UiLoadedEvent.java │ │ │ ├── SyncType.java │ │ │ ├── QuitEvent.java │ │ │ ├── ResetEvent.java │ │ │ ├── SetupCompleteEvent.java │ │ │ ├── SubscribeEvent.java │ │ │ ├── RefreshTokenEvent.java │ │ │ ├── FriendStatusChangedEvent.java │ │ │ ├── UpdatePresenceEvent.java │ │ │ ├── KscopeAdEvent.java │ │ │ ├── ModeChangedEvent.java │ │ │ ├── SystemProxyChangedEvent.java │ │ │ ├── PeerCertEvent.java │ │ │ ├── ProxyConnectionEvent.java │ │ │ ├── GoogleTalkStateEvent.java │ │ │ ├── ClosedBetaEvent.java │ │ │ ├── UpdateEvent.java │ │ │ ├── PresenceEvent.java │ │ │ ├── MessageEvent.java │ │ │ └── SyncEvent.java │ │ ├── ConnectivityStatus.java │ │ ├── Shutdownable.java │ │ ├── LanternService.java │ │ ├── GoogleTalkState.java │ │ ├── linux │ │ │ ├── Glib.java │ │ │ ├── Gtk.java │ │ │ └── Unique.java │ │ ├── SystemTray.java │ │ ├── BrowserService.java │ │ ├── MessageService.java │ │ ├── state │ │ │ ├── PeerLastConnectedChangedEvent.java │ │ │ ├── SyncStrategy.java │ │ │ ├── NUsers.java │ │ │ ├── NPeers.java │ │ │ ├── ModelUtils.java │ │ │ ├── LocationChangedEvent.java │ │ │ ├── Modal.java │ │ │ ├── PeerCount.java │ │ │ ├── Global.java │ │ │ ├── PeerCountSerializer.java │ │ │ ├── UDPProxyPriority.java │ │ │ ├── FriendsHandler.java │ │ │ ├── PeerCountDeserializer.java │ │ │ ├── ModelService.java │ │ │ ├── Peers.java │ │ │ ├── Notification.java │ │ │ └── Location.java │ │ ├── annotation │ │ │ └── Keep.java │ │ ├── TokenResponseEvent.java │ │ ├── Censored.java │ │ ├── FallbackProxies.java │ │ ├── NotInClosedBetaException.java │ │ ├── kscope │ │ │ ├── ReceivedKScopeAd.java │ │ │ └── KscopeAdHandler.java │ │ ├── privacy │ │ │ ├── InvalidKeyException.java │ │ │ ├── UserInputRequiredException.java │ │ │ ├── DummyLocalCipherProvider.java │ │ │ ├── EncryptedFileService.java │ │ │ ├── UnencryptedFileService.java │ │ │ └── LocalCipherProvider.java │ │ ├── SettingsJSONContextServer.java │ │ ├── ProxyService.java │ │ ├── http │ │ │ ├── LanternCometdServlet.java │ │ │ └── GeoIp.java │ │ ├── MutableSettings.java │ │ ├── TrustedContactsManager.java │ │ ├── RosterDeserializer.java │ │ ├── RosterSerializer.java │ │ ├── network │ │ │ └── NetworkTrackerListener.java │ │ ├── util │ │ │ ├── Desktop.java │ │ │ ├── LanternHostNameVerifier.java │ │ │ ├── BitInputStream.java │ │ │ ├── BitOutputStream.java │ │ │ └── RandomLengthString.java │ │ ├── ProxyException.java │ │ ├── proxy │ │ │ ├── AbstractHttpProxyServerAdapter.java │ │ │ ├── BaseChainedProxy.java │ │ │ └── DispatchingChainedProxyManager.java │ │ ├── ConnectivityChangedEvent.java │ │ ├── XmppMessageConstants.java │ │ ├── PeerFactory.java │ │ ├── ui │ │ │ └── NotificationDialog.java │ │ ├── LanternXmppRetryStrategyFactory.java │ │ ├── LinuxBrowserLaunch.java │ │ ├── MessageKey.java │ │ ├── simple │ │ │ └── CliProgram.java │ │ ├── S3Config.java │ │ ├── LogglyHelper.java │ │ ├── BayeuxInitializer.java │ │ ├── geoip │ │ │ └── GeoIpLookupService.java │ │ ├── Country.java │ │ ├── ProxyTracker.java │ │ ├── WhitelistEntry.java │ │ └── oauth │ │ │ └── RefreshToken.java │ │ └── freedesktop │ │ └── Secret │ │ ├── Session.java │ │ ├── Pair.java │ │ ├── Secret.java │ │ ├── Prompt.java │ │ ├── Item.java │ │ ├── Collection.java │ │ └── Service.java ├── test │ ├── resources │ │ ├── cacerts │ │ ├── test.jks │ │ ├── GeoIpTestData │ │ │ ├── lantern-blocks-expected.csv │ │ │ ├── GeoLiteCity-Blocks.csv │ │ │ ├── lantern-location-expected.csv │ │ │ └── GeoLiteCity-Location.csv │ │ ├── kscope_payload.json │ │ └── logging.properties │ └── java │ │ └── org │ │ └── lantern │ │ ├── AllTests.java │ │ ├── TestCategories.java │ │ ├── AllCensored.java │ │ ├── TestCensored.java │ │ ├── FirefoxExtensionTest.java │ │ ├── NotificationDialogTest.java │ │ ├── xmpp │ │ └── XmppTest.java │ │ ├── loggly │ │ ├── LogglyTest.java │ │ └── LogglyMessageTest.java │ │ ├── geoip │ │ ├── TestBitInputStream.java │ │ └── TestBitOutputStream.java │ │ ├── VersionTest.java │ │ ├── MessagesTest.java │ │ ├── stubs │ │ ├── PeerFactoryStub.java │ │ └── ProxyTrackerStub.java │ │ ├── TrTest.java │ │ ├── util │ │ └── CounterTest.java │ │ ├── ProxySocketFactoryTest.java │ │ ├── PacFileGeneratorTest.java │ │ ├── TestsThatFailTogether.java │ │ ├── JsonModelModifierTest.java │ │ ├── GoogleOauth2CallbackServletTest.java │ │ ├── KscopeAdTest.java │ │ ├── FallbackProxyClientTest.java │ │ ├── RoundTripTest.java │ │ ├── ProxifierTest.java │ │ ├── win │ │ └── WindowsRegCommandTest.java │ │ └── LaePinnedCertTest.java └── site │ └── site.xml ├── get.bash ├── give.bash ├── GeoIP.dat ├── bsh-2.0b4.jar ├── debDeploy32Bit.bash ├── debDeploy64Bit.bash ├── testkeystore.jks ├── proxy_off.pac ├── certs ├── littleproxy.cer ├── equifaxsecureca.cer └── DigiCertHighAssuranceCA-3.cer ├── configureNetworkServices ├── debug.bash ├── google-equifax-root.crt ├── winAwsExample.txt ├── lib └── linux │ ├── x86 │ └── libunix-java.so │ └── x86_64 │ └── libunix-java.so ├── pginstrument-0.1.0-shadow.jar ├── quickDebug.bash ├── LanternBrowser ├── LanternBrowser │ ├── en.lproj │ │ ├── InfoPlist.strings │ │ └── Credits.rtf │ ├── LanternBrowser-Prefix.pch │ ├── main.m │ ├── AppDelegate.h │ ├── AppDelegate.m │ └── LanternBrowser-Info.plist ├── LanternBrowserTests │ ├── en.lproj │ │ └── InfoPlist.strings │ ├── LanternBrowserTests.h │ ├── LanternBrowserTests.m │ └── LanternBrowserTests-Info.plist └── LanternBrowser.iconset │ ├── icon_128x128.png │ ├── icon_16x16.png │ ├── icon_256x256.png │ ├── icon_32x32.png │ ├── icon_512x512.png │ ├── icon_16x16@2x.png │ ├── icon_32x32@2x.png │ ├── icon_128x128@2x.png │ ├── icon_256x256@2x.png │ └── icon_512x512@2x.png ├── signToolExample.txt ├── bin ├── remoteScript.bash ├── i18.bash ├── checkDependencies.bash ├── remoteLocalize.bash ├── travis-encrypt.rb ├── releasePerform.exp ├── travis-key.py ├── travis-encrypt.py ├── dep.bash ├── mvnrelease.bash ├── linesCommitted.py ├── searchForJava7ClassFiles.bash ├── releasePrepare.exp ├── localize.bash └── deployGData.bash ├── proguard.bash ├── setNetUidOsx.bash ├── run.bash ├── fallback.bash ├── firefox └── lantern@getlantern.org │ ├── chrome.manifest │ ├── chrome │ └── content │ │ └── lantern.xul │ └── install.rdf ├── start.bash ├── proxy_all.pac ├── .gitmodules ├── copyPolicy ├── Makefile.unix ├── Makefile.win32 └── make-policy-jars-header.py ├── etc └── travis.key.txt ├── install.bash ├── debInstall32Bit.bash ├── parseversionfrompom.py ├── debInstall64Bit.bash ├── .gitattributes ├── .gitignore ├── allInstallers.bash ├── debDeploy.bash ├── osxInstall.bash ├── winInstall.bash ├── clientTest.bash ├── copys3file.py ├── debInstall.bash ├── release.bash ├── copylatestwrapper.py ├── releaseExisting.bash ├── launch ├── quickRun.bash ├── shell └── installMetaRefresh.bash /COPYING: -------------------------------------------------------------------------------- 1 | LICENSE -------------------------------------------------------------------------------- /install/osx/log.txt: -------------------------------------------------------------------------------- 1 | placeholder 2 | -------------------------------------------------------------------------------- /src/main/resources/whitelists/1.0.1.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /install/osx/Lantern.app/Contents/PkgInfo: -------------------------------------------------------------------------------- 1 | APPL???? -------------------------------------------------------------------------------- /get.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ./start.bash --force-get 4 | -------------------------------------------------------------------------------- /give.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ./start.bash --force-give 4 | -------------------------------------------------------------------------------- /GeoIP.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/GeoIP.dat -------------------------------------------------------------------------------- /install/wrapper/.lantern-configurl.txt: -------------------------------------------------------------------------------- 1 | config folder would go here 2 | -------------------------------------------------------------------------------- /bsh-2.0b4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/bsh-2.0b4.jar -------------------------------------------------------------------------------- /debDeploy32Bit.bash: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ./debDeploy.bash $* 32 4 | -------------------------------------------------------------------------------- /debDeploy64Bit.bash: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ./debDeploy.bash $* 64 4 | -------------------------------------------------------------------------------- /testkeystore.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/testkeystore.jks -------------------------------------------------------------------------------- /proxy_off.pac: -------------------------------------------------------------------------------- 1 | function FindProxyForURL(url, host) { 2 | return "DIRECT"; 3 | } 4 | -------------------------------------------------------------------------------- /certs/littleproxy.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/certs/littleproxy.cer -------------------------------------------------------------------------------- /install/win/128on.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/install/win/128on.ico -------------------------------------------------------------------------------- /configureNetworkServices: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/configureNetworkServices -------------------------------------------------------------------------------- /debug.bash: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | RUN_LANTERN_DEBUG_PORT=9339 exec bash ./run.bash $@ 4 | -------------------------------------------------------------------------------- /google-equifax-root.crt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/google-equifax-root.crt -------------------------------------------------------------------------------- /install/common/128on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/install/common/128on.png -------------------------------------------------------------------------------- /install/common/16off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/install/common/16off.png -------------------------------------------------------------------------------- /install/common/16on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/install/common/16on.png -------------------------------------------------------------------------------- /install/common/32off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/install/common/32off.png -------------------------------------------------------------------------------- /install/common/32on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/install/common/32on.png -------------------------------------------------------------------------------- /install/common/64on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/install/common/64on.png -------------------------------------------------------------------------------- /install/common/GeoIP.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/install/common/GeoIP.dat -------------------------------------------------------------------------------- /install/win/osslsigncode: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/install/win/osslsigncode -------------------------------------------------------------------------------- /winAwsExample.txt: -------------------------------------------------------------------------------- 1 | java -jar c:/cygwin/usr/local/aws-0.3/s3.jar -putp lantern lantern-0.87.exe 2 | -------------------------------------------------------------------------------- /certs/equifaxsecureca.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/certs/equifaxsecureca.cer -------------------------------------------------------------------------------- /install/osx/copyPolicy.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/install/osx/copyPolicy.exe -------------------------------------------------------------------------------- /install/win/copyPolicy.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/install/win/copyPolicy.exe -------------------------------------------------------------------------------- /src/test/resources/cacerts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/src/test/resources/cacerts -------------------------------------------------------------------------------- /install/common/lantern.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/install/common/lantern.icns -------------------------------------------------------------------------------- /install/linux/copyPolicy.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/install/linux/copyPolicy.exe -------------------------------------------------------------------------------- /lib/linux/x86/libunix-java.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/lib/linux/x86/libunix-java.so -------------------------------------------------------------------------------- /pginstrument-0.1.0-shadow.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/pginstrument-0.1.0-shadow.jar -------------------------------------------------------------------------------- /quickDebug.bash: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | RUN_LANTERN_DEBUG_PORT=9339 exec bash ./quickRun.bash $@ 4 | -------------------------------------------------------------------------------- /src/test/resources/test.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/src/test/resources/test.jks -------------------------------------------------------------------------------- /LanternBrowser/LanternBrowser/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /install/java6/local_policy.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/install/java6/local_policy.jar -------------------------------------------------------------------------------- /install/java7/local_policy.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/install/java7/local_policy.jar -------------------------------------------------------------------------------- /LanternBrowser/LanternBrowserTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /install/java6/US_export_policy.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/install/java6/US_export_policy.jar -------------------------------------------------------------------------------- /install/java7/US_export_policy.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/install/java7/US_export_policy.jar -------------------------------------------------------------------------------- /lib/linux/x86_64/libunix-java.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/lib/linux/x86_64/libunix-java.so -------------------------------------------------------------------------------- /certs/DigiCertHighAssuranceCA-3.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/certs/DigiCertHighAssuranceCA-3.cer -------------------------------------------------------------------------------- /install/common/bcprov-jdk16-1.46.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/install/common/bcprov-jdk16-1.46.jar -------------------------------------------------------------------------------- /signToolExample.txt: -------------------------------------------------------------------------------- 1 | signtool sign /f cert_path /p "" /v /t http://timestamp.comodoca.com/authenticode lantern-0.82.exe 2 | -------------------------------------------------------------------------------- /bin/remoteScript.bash: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | ssh -i ~/.ec2/id_rsa-gsg-keypair root@issues.littleshoot.org "bash -s" < $1 3 | -------------------------------------------------------------------------------- /install/wrapper/InstallDownloader.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/install/wrapper/InstallDownloader.class -------------------------------------------------------------------------------- /proguard.bash: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | java -Xmx600m -jar /Users/afisk/code/proguard4.6/lib/proguard.jar @proguard.cfg 4 | -------------------------------------------------------------------------------- /bin/i18.bash: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ./remoteLocalize.bash 4 | pushd .. 5 | mvn -Dtest=ResourceBundleTest test 6 | popd 7 | -------------------------------------------------------------------------------- /src/main/java/org/lantern/event/UiLoadedEvent.java: -------------------------------------------------------------------------------- 1 | package org.lantern.event; 2 | 3 | public class UiLoadedEvent { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /setNetUidOsx.bash: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | sudo chown root:wheel configureNetworkServices 3 | sudo chmod 4755 configureNetworkServices 4 | -------------------------------------------------------------------------------- /install/osx/Lantern.app/Contents/MacOS/Lantern: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/install/osx/Lantern.app/Contents/MacOS/Lantern -------------------------------------------------------------------------------- /run.bash: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | LANTERN_DIR=`dirname $0` 4 | $LANTERN_DIR/install.bash $* || exit 5 | $LANTERN_DIR/quickRun.bash $* 6 | -------------------------------------------------------------------------------- /fallback.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ./run.bash --server-port 45000 --as-fallback-proxy --keystore ../too-many-secrets/littleproxy_keystore.jks 4 | -------------------------------------------------------------------------------- /src/main/java/org/lantern/event/SyncType.java: -------------------------------------------------------------------------------- 1 | package org.lantern.event; 2 | 3 | public enum SyncType { 4 | REPLACE, ADD, DELETE; 5 | } 6 | -------------------------------------------------------------------------------- /bin/checkDependencies.bash: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # see http://mojo.codehaus.org/versions-maven-plugin/ 3 | mvn versions:display-dependency-updates 4 | -------------------------------------------------------------------------------- /LanternBrowser/LanternBrowser.iconset/icon_128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/LanternBrowser/LanternBrowser.iconset/icon_128x128.png -------------------------------------------------------------------------------- /LanternBrowser/LanternBrowser.iconset/icon_16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/LanternBrowser/LanternBrowser.iconset/icon_16x16.png -------------------------------------------------------------------------------- /LanternBrowser/LanternBrowser.iconset/icon_256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/LanternBrowser/LanternBrowser.iconset/icon_256x256.png -------------------------------------------------------------------------------- /LanternBrowser/LanternBrowser.iconset/icon_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/LanternBrowser/LanternBrowser.iconset/icon_32x32.png -------------------------------------------------------------------------------- /LanternBrowser/LanternBrowser.iconset/icon_512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/LanternBrowser/LanternBrowser.iconset/icon_512x512.png -------------------------------------------------------------------------------- /LanternBrowser/LanternBrowser.iconset/icon_16x16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/LanternBrowser/LanternBrowser.iconset/icon_16x16@2x.png -------------------------------------------------------------------------------- /LanternBrowser/LanternBrowser.iconset/icon_32x32@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/LanternBrowser/LanternBrowser.iconset/icon_32x32@2x.png -------------------------------------------------------------------------------- /LanternBrowser/LanternBrowser.iconset/icon_128x128@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/LanternBrowser/LanternBrowser.iconset/icon_128x128@2x.png -------------------------------------------------------------------------------- /LanternBrowser/LanternBrowser.iconset/icon_256x256@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/LanternBrowser/LanternBrowser.iconset/icon_256x256@2x.png -------------------------------------------------------------------------------- /LanternBrowser/LanternBrowser.iconset/icon_512x512@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/LanternBrowser/LanternBrowser.iconset/icon_512x512@2x.png -------------------------------------------------------------------------------- /install/osx/Lantern.app/Contents/Resources/LanternBrowser.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/install/osx/Lantern.app/Contents/Resources/LanternBrowser.icns -------------------------------------------------------------------------------- /install/osx/Lantern.app/Contents/Resources/en.lproj/MainMenu.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/install/osx/Lantern.app/Contents/Resources/en.lproj/MainMenu.nib -------------------------------------------------------------------------------- /src/test/resources/GeoIpTestData/lantern-blocks-expected.csv: -------------------------------------------------------------------------------- 1 | I'm a copyright notice 2 | startIpNum,endIpNum,pixelId 3 | 0,257,3 4 | 258,769,2 5 | 770,1025,1 6 | 1026,1538,0 7 | -------------------------------------------------------------------------------- /src/test/resources/kscope_payload.json: -------------------------------------------------------------------------------- 1 | { 2 | "jid": "spiritjig@gmail.com/-lan-DEADBEEF", 3 | "address": "127.0.0.1", 4 | "port": 12345, 5 | "ttl": 5 6 | } 7 | -------------------------------------------------------------------------------- /install/wrapper/dpkg.bash: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | echo "Running at path $1" 4 | sudo dpkg -i $1 || echo "Error installing deb file" 5 | echo "Finished installing deb at $1" 6 | -------------------------------------------------------------------------------- /firefox/lantern@getlantern.org/chrome.manifest: -------------------------------------------------------------------------------- 1 | content lantern chrome/content/ 2 | 3 | # Firefox 4 | overlay chrome://browser/content/browser.xul chrome://lantern/content/lantern.xul 5 | -------------------------------------------------------------------------------- /install/osx/Lantern.app/Contents/Resources/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lite/lantern/master/install/osx/Lantern.app/Contents/Resources/en.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /src/main/java/org/lantern/event/QuitEvent.java: -------------------------------------------------------------------------------- 1 | package org.lantern.event; 2 | 3 | /** 4 | * Event created when we're shutting down. 5 | */ 6 | public class QuitEvent { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/org/lantern/event/ResetEvent.java: -------------------------------------------------------------------------------- 1 | package org.lantern.event; 2 | 3 | /** 4 | * Event created when the user wishes to reset lantern. 5 | */ 6 | public class ResetEvent { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /src/main/resources/lantern-version.properties: -------------------------------------------------------------------------------- 1 | lantern.version = ${project.version} 2 | git.commit.id = ${git.commit.id} 3 | git.build.time = ${git.build.time} 4 | lantern.devmode = ${lantern.devmode} 5 | -------------------------------------------------------------------------------- /src/test/resources/GeoIpTestData/GeoLiteCity-Blocks.csv: -------------------------------------------------------------------------------- 1 | I'm a copyright notice 2 | startIpNum,endIpNum,locId 3 | 2,257,5 4 | 258,513,4 5 | 514,769,4 6 | 770,1025,3 7 | 1026,1281,2 8 | 1282,1538,1 9 | -------------------------------------------------------------------------------- /src/main/java/org/lantern/event/SetupCompleteEvent.java: -------------------------------------------------------------------------------- 1 | package org.lantern.event; 2 | 3 | /** 4 | * Sent when all initial setup is complete. 5 | */ 6 | public class SetupCompleteEvent { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /start.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | nohup ./run.bash --disable-ui --oauth2-client-secrets-file=src/main/resources/client_secrets_installed.json --oauth2-user-credentials-file=/home/lantern/lantern_credentials.json $* & -------------------------------------------------------------------------------- /proxy_all.pac: -------------------------------------------------------------------------------- 1 | function FindProxyForURL(url, host) { 2 | if( host == "localhost" || 3 | host == "127.0.0.1") { 4 | return "DIRECT"; 5 | } 6 | return "PROXY 127.0.0.1:8787; DIRECT"; 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/org/freedesktop/Secret/Session.java: -------------------------------------------------------------------------------- 1 | package org.freedesktop.Secret; 2 | import org.freedesktop.dbus.DBusInterface; 3 | 4 | public interface Session extends DBusInterface 5 | { 6 | public void Close(); 7 | } 8 | -------------------------------------------------------------------------------- /src/test/java/org/lantern/AllTests.java: -------------------------------------------------------------------------------- 1 | package org.lantern; 2 | 3 | import org.junit.extensions.cpsuite.ClasspathSuite; 4 | import org.junit.runner.RunWith; 5 | 6 | @RunWith(ClasspathSuite.class) 7 | public class AllTests {} 8 | -------------------------------------------------------------------------------- /src/test/resources/GeoIpTestData/lantern-location-expected.csv: -------------------------------------------------------------------------------- 1 | I am a copyright notice 2 | pixelId,country,latitude,longitude, 3 | 0,UK,51.0000,0.0000 4 | 1,EG,30.2,31.31 5 | 2,US,49.0000,-100.0000 6 | 3,CA,49.0000,-100.0000 7 | 8 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "lantern-ui"] 2 | path = lantern-ui 3 | url = https://github.com/getlantern/lantern-ui.git 4 | [submodule "lantern-common"] 5 | path = lantern-common 6 | url = https://github.com/getlantern/lantern-common.git 7 | -------------------------------------------------------------------------------- /LanternBrowser/LanternBrowser/LanternBrowser-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'LanternBrowser' target in the 'LanternBrowser' project 3 | // 4 | 5 | #ifdef __OBJC__ 6 | #import 7 | #endif 8 | -------------------------------------------------------------------------------- /install/common/all-lantern.js: -------------------------------------------------------------------------------- 1 | pref("network.proxy.http", "127.0.0.1"); 2 | pref("network.proxy.http_port", 8787); 3 | pref("network.proxy.ssl", "127.0.0.1"); 4 | pref("network.proxy.ssl_port", 8787); 5 | pref("network.proxy.type", 5); 6 | 7 | -------------------------------------------------------------------------------- /src/main/java/org/lantern/ConnectivityStatus.java: -------------------------------------------------------------------------------- 1 | package org.lantern; 2 | 3 | /** 4 | * Enumeration of connectivity statuses. 5 | */ 6 | public enum ConnectivityStatus { 7 | 8 | DISCONNECTED, 9 | CONNECTING, 10 | CONNECTED; 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/org/lantern/Shutdownable.java: -------------------------------------------------------------------------------- 1 | package org.lantern; 2 | 3 | public interface Shutdownable { 4 | 5 | /** 6 | * Stops the service. This method blocks until the service has completely 7 | * shut down. 8 | */ 9 | void stop(); 10 | } 11 | -------------------------------------------------------------------------------- /copyPolicy/Makefile.unix: -------------------------------------------------------------------------------- 1 | 2 | all: copyPolicy.exe 3 | 4 | copyPolicy.exe: copyPolicy.c policy_jars.h 5 | gcc -o copyPolicy.exe copyPolicy.c -std=c99 6 | 7 | policy_jars.h: ../install/java7/US_export_policy.jar ../install/java7/local_policy.jar 8 | ./make-policy-jars-header.py 9 | -------------------------------------------------------------------------------- /bin/remoteLocalize.bash: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | ./remoteScript.bash localize.bash 3 | scp -i ~/.ec2/id_rsa-gsg-keypair root@issues.littleshoot.org:/home/lantern/lantern/po/*.po ../po/ 4 | scp -i ~/.ec2/id_rsa-gsg-keypair root@issues.littleshoot.org:/home/lantern/lantern/po/keys.pot ../po/ 5 | -------------------------------------------------------------------------------- /etc/travis.key.txt: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PUBLIC KEY----- 2 | MIGJAoGBAPj5XJ/dxNsc4rzW389RVMit8Q/ghicgM4VRcKCZH8wMMyIm6NI9xEcl 3 | tFPZKk1EbJQCjN5G0mbp/e8dhPjWA/uYZ5o5Gnjv9GbQbtCsc0W3eH5igciJccAS 4 | CTbk9g4iUTFmQa3FPfbsZuqY0F/5CrZ9c4mrWX+/1YF9Ydsb7QKxAgMBAAE= 5 | -----END RSA PUBLIC KEY----- 6 | -------------------------------------------------------------------------------- /bin/travis-encrypt.rb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | require "openssl" 4 | require "base64" 5 | 6 | pub_key = File.open("etc/travis.key.txt", "r").read 7 | 8 | imp_key = OpenSSL::PKey::RSA.new(pub_key) 9 | 10 | puts Base64.encode64(imp_key.public_encrypt(ARGF.read)) 11 | -------------------------------------------------------------------------------- /copyPolicy/Makefile.win32: -------------------------------------------------------------------------------- 1 | 2 | all: copyPolicy.exe 3 | 4 | copyPolicy.exe: copyPolicy.c policy_jars.h 5 | gcc -o copyPolicy.exe copyPolicy.c -mno-cygwin -std=c99 6 | 7 | policy_jars.h: ../install/java7/US_export_policy.jar ../install/java7/local_policy.jar 8 | ./make-policy-jars-header.py 9 | -------------------------------------------------------------------------------- /install/linux/lantern-autostart.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Exec=/bin/sh "/opt/lantern/lantern" 4 | Icon=/opt/lantern/.install4j/lantern.png 5 | Hidden=false 6 | NoDisplay=false 7 | X-GNOME-Autostart-enabled=true 8 | Name[en_US]=Lantern 9 | Name=Lantern 10 | Comment[en_US]= 11 | Comment= 12 | -------------------------------------------------------------------------------- /src/main/java/org/lantern/LanternService.java: -------------------------------------------------------------------------------- 1 | package org.lantern; 2 | 3 | public interface LanternService extends Shutdownable { 4 | 5 | /** 6 | * Starts the service. This method blocks until the service has completely 7 | * started. 8 | */ 9 | void start() throws Exception; 10 | 11 | } 12 | -------------------------------------------------------------------------------- /bin/releasePerform.exp: -------------------------------------------------------------------------------- 1 | #!/usr/bin/expect -f 2 | if {[llength $argv] != 1} { 3 | puts "usage: /releasePerform.exp gpg-password" 4 | exit 1 5 | } 6 | 7 | set timeout 100 8 | set newpass [lindex $argv 0] 9 | 10 | spawn mvn release:perform 11 | 12 | expect "GPG Passphrase: *" 13 | send "$newpass\r" 14 | 15 | expect eof 16 | -------------------------------------------------------------------------------- /src/test/java/org/lantern/TestCategories.java: -------------------------------------------------------------------------------- 1 | package org.lantern; 2 | 3 | public class TestCategories { 4 | 5 | public interface SlowTests {} 6 | public interface IntegrationTests extends SlowTests {} 7 | public interface PerformanceTests extends SlowTests {} 8 | 9 | public interface TrustStoreTests {} 10 | } 11 | -------------------------------------------------------------------------------- /bin/travis-key.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | if __name__ == "__main__": 4 | 5 | import urllib2 6 | import json 7 | 8 | resp = urllib2.urlopen("https://api.travis-ci.org/repos/getlantern/lantern/key") 9 | 10 | dat = json.loads(resp.read()) 11 | rsakey = dat.get("key", False) 12 | 13 | print rsakey.strip() 14 | -------------------------------------------------------------------------------- /install/osx/latest.dmg: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | Get Lantern 8 | 9 | 10 | -------------------------------------------------------------------------------- /install/win/latest.exe: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | Get Lantern 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/main/java/org/lantern/event/SubscribeEvent.java: -------------------------------------------------------------------------------- 1 | package org.lantern.event; 2 | 3 | public class SubscribeEvent { 4 | 5 | private final String email; 6 | 7 | public SubscribeEvent(String email) { 8 | this.email = email; 9 | } 10 | 11 | public String getEmail() { 12 | return email; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /install/linux/latest-32.deb: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | Get Lantern 8 | 9 | 10 | -------------------------------------------------------------------------------- /install/linux/latest-64.deb: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | Get Lantern 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/main/java/org/lantern/GoogleTalkState.java: -------------------------------------------------------------------------------- 1 | package org.lantern; 2 | 3 | import org.lantern.annotation.Keep; 4 | 5 | /** 6 | * Enumeration of connectivity statuses. 7 | */ 8 | @Keep 9 | public enum GoogleTalkState { 10 | 11 | notConnected, 12 | //LOGGING_OUT, 13 | connecting, 14 | connected, 15 | LOGIN_FAILED 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/org/lantern/linux/Glib.java: -------------------------------------------------------------------------------- 1 | package org.lantern.linux; 2 | 3 | import com.sun.jna.Library; 4 | import com.sun.jna.Pointer; 5 | 6 | public interface Glib extends Library { 7 | Pointer g_main_context_new(); 8 | Pointer g_main_loop_new(Pointer context, int is_running); 9 | void g_main_loop_run(Pointer main_loop); 10 | } 11 | -------------------------------------------------------------------------------- /LanternBrowser/LanternBrowserTests/LanternBrowserTests.h: -------------------------------------------------------------------------------- 1 | // 2 | // LanternBrowserTests.h 3 | // LanternBrowserTests 4 | // 5 | // Created by Leah Schmidt on 5/21/13. 6 | // Copyright (c) 2013 Brave New Software. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LanternBrowserTests : SenTestCase 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /src/test/resources/GeoIpTestData/GeoLiteCity-Location.csv: -------------------------------------------------------------------------------- 1 | I am a copyright notice 2 | locId,country,region,city,postalCode,latitude,longitude,metroCode,areaCode 3 | 1,"UK","","","",51.0000,0.0000,, 4 | 2,"UK","","","",51.0001,0.0000,, 5 | 3,"EG","","","",30.2,31.31,, 6 | 4,"US","on the border","","",49.0000,-100.0000,, 7 | 5,"CA","on the border","","",49.0000,-100.0000,, 8 | -------------------------------------------------------------------------------- /LanternBrowser/LanternBrowser/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // LanternBrowser 4 | // 5 | // Created by Leah Schmidt on 5/21/13. 6 | // Copyright (c) 2013 Brave New Software. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | int main(int argc, char *argv[]) 12 | { 13 | 14 | return NSApplicationMain(argc, (const char **)argv); 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/org/lantern/SystemTray.java: -------------------------------------------------------------------------------- 1 | package org.lantern; 2 | 3 | import java.util.Map; 4 | 5 | /** 6 | * Interface for system tray implementations. 7 | */ 8 | public interface SystemTray extends LanternService { 9 | 10 | void createTray(); 11 | 12 | void addUpdate(Map updateData); 13 | 14 | boolean isActive(); 15 | 16 | boolean isSupported(); 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/org/lantern/event/RefreshTokenEvent.java: -------------------------------------------------------------------------------- 1 | package org.lantern.event; 2 | 3 | public class RefreshTokenEvent { 4 | 5 | private final String refreshToken; 6 | 7 | public RefreshTokenEvent(final String refreshToken) { 8 | this.refreshToken = refreshToken; 9 | } 10 | 11 | public String getRefreshToken() { 12 | return refreshToken; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/org/lantern/BrowserService.java: -------------------------------------------------------------------------------- 1 | package org.lantern; 2 | 3 | 4 | public interface BrowserService extends LanternService { 5 | 6 | void openBrowser(); 7 | 8 | void openBrowser(int port, final String prefix); 9 | 10 | void openBrowserWhenPortReady(int port, final String prefix); 11 | 12 | void openBrowserWhenPortReady(); 13 | 14 | void reopenBrowser(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/org/lantern/MessageService.java: -------------------------------------------------------------------------------- 1 | package org.lantern; 2 | 3 | import org.lantern.event.MessageEvent; 4 | 5 | import com.google.common.eventbus.Subscribe; 6 | 7 | public interface MessageService { 8 | 9 | void showMessage(String title, String message); 10 | 11 | boolean askQuestion(String title, String message); 12 | 13 | @Subscribe 14 | void onMessageEvent(MessageEvent me); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/org/lantern/event/FriendStatusChangedEvent.java: -------------------------------------------------------------------------------- 1 | package org.lantern.event; 2 | 3 | import org.lantern.state.Friend; 4 | 5 | public class FriendStatusChangedEvent { 6 | 7 | private final Friend friend; 8 | 9 | public FriendStatusChangedEvent(final Friend friend) { 10 | this.friend = friend; 11 | } 12 | 13 | public Friend getFriend() { 14 | return friend; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/org/freedesktop/Secret/Pair.java: -------------------------------------------------------------------------------- 1 | package org.freedesktop.Secret; 2 | 3 | import org.freedesktop.dbus.Position; 4 | import org.freedesktop.dbus.Tuple; 5 | 6 | /** Just a typed container class */ 7 | public final class Pair extends Tuple { 8 | @Position(0) 9 | public final A a; 10 | @Position(1) 11 | public final B b; 12 | public Pair(A a, B b) { 13 | this.a = a; 14 | this.b = b; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/org/lantern/event/UpdatePresenceEvent.java: -------------------------------------------------------------------------------- 1 | package org.lantern.event; 2 | 3 | import org.jivesoftware.smack.packet.Presence; 4 | 5 | public class UpdatePresenceEvent { 6 | 7 | private final Presence presence; 8 | 9 | public UpdatePresenceEvent(final Presence presence) { 10 | this.presence = presence; 11 | } 12 | 13 | public Presence getPresence() { 14 | return presence; 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/org/lantern/state/PeerLastConnectedChangedEvent.java: -------------------------------------------------------------------------------- 1 | package org.lantern.state; 2 | 3 | public class PeerLastConnectedChangedEvent { 4 | private Peer peer; 5 | 6 | PeerLastConnectedChangedEvent (Peer peer) { 7 | this.setPeer(peer); 8 | } 9 | 10 | public Peer getPeer() { 11 | return peer; 12 | } 13 | 14 | public void setPeer(Peer peer) { 15 | this.peer = peer; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /install.bash: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | function die() { 3 | echo $* 4 | exit 1 5 | } 6 | 7 | mvn --version || die "Please install maven from http://maven.apache.org" 8 | 9 | if [ $(uname) == "Darwin" ] 10 | then 11 | ls -la configureNetworkServices | grep rwsr | grep wheel || ./setNetUidOsx.bash 12 | fi 13 | 14 | rm -f target/lantern*-small.jar 15 | mvn -U package -Dmaven.artifact.threads=1 -Dmaven.test.skip=true || die "Could not package" 16 | -------------------------------------------------------------------------------- /src/main/java/org/lantern/annotation/Keep.java: -------------------------------------------------------------------------------- 1 | package org.lantern.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * Marker annotation for proguard 10 | * 11 | */ 12 | @Retention(RetentionPolicy.CLASS) 13 | @Target({ElementType.TYPE}) 14 | @Keep 15 | public @interface Keep { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/org/lantern/event/KscopeAdEvent.java: -------------------------------------------------------------------------------- 1 | package org.lantern.event; 2 | 3 | import org.lantern.kscope.LanternKscopeAdvertisement; 4 | 5 | public class KscopeAdEvent { 6 | 7 | private final LanternKscopeAdvertisement ad; 8 | 9 | public KscopeAdEvent(final LanternKscopeAdvertisement ad) { 10 | this.ad = ad; 11 | } 12 | 13 | public LanternKscopeAdvertisement getAd() { 14 | return ad; 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /bin/travis-encrypt.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | if __name__ == "__main__": 4 | 5 | from Crypto.PublicKey import RSA 6 | from Crypto.Cipher import PKCS1_OAEP 7 | import sys 8 | import base64 9 | 10 | pub_key = open("etc/travis.key.txt", "r").read() 11 | 12 | imp_key = RSA.importKey(pub_key) 13 | 14 | cipher = PKCS1_OAEP.new(imp_key) 15 | ciphertext = cipher.encrypt(sys.stdin.read()) 16 | 17 | print base64.b64encode(ciphertext) 18 | -------------------------------------------------------------------------------- /src/main/resources/client_secrets_installed.json: -------------------------------------------------------------------------------- 1 | {"installed":{"auth_uri":"https://accounts.google.com/o/oauth2/auth","client_secret":"fNNHFqjX6hEeTC6sFL_aUKNd","token_uri":"https://accounts.google.com/o/oauth2/token","client_email":"","redirect_uris":["urn:ietf:wg:oauth:2.0:oob","http://localhost"],"client_x509_cert_url":"","client_id":"323232879315-bea7ng41i8fsvua1takpcprbpd38nal9.apps.googleusercontent.com","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs"}} -------------------------------------------------------------------------------- /LanternBrowser/LanternBrowser/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // LanternBrowser 4 | // 5 | // Created by Leah Schmidt on 5/21/13. 6 | // Copyright (c) 2013 Brave New Software. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface AppDelegate : NSObject 13 | 14 | @property (assign) IBOutlet NSWindow *window; 15 | @property (assign) IBOutlet WebView *webView; 16 | 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /src/main/java/org/lantern/TokenResponseEvent.java: -------------------------------------------------------------------------------- 1 | package org.lantern; 2 | 3 | import com.google.api.client.auth.oauth2.TokenResponse; 4 | 5 | public class TokenResponseEvent { 6 | 7 | private final TokenResponse tokenResponse; 8 | 9 | public TokenResponseEvent(final TokenResponse tokenResponse) { 10 | this.tokenResponse = tokenResponse; 11 | } 12 | 13 | public TokenResponse getTokenResponse() { 14 | return tokenResponse; 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /debInstall32Bit.bash: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | function die() { 4 | echo $* 5 | exit 1 6 | } 7 | 8 | if [ $# -ne "2" ] 9 | then 10 | die "$0: Received $# args... version and whether or not this is a release required" 11 | fi 12 | 13 | test -d install/linux/lib || mkdir -p install/linux/lib || die "Could not create install/linux/lib" 14 | cp lib/linux/x86/libunix-java.so install/linux/lib/ || die "Could not copy libunix?" 15 | ./debInstall.bash $* 32 690 16 | rm install/linux/lib/* 17 | -------------------------------------------------------------------------------- /parseversionfrompom.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | from xml.etree import ElementTree as et 4 | import re 5 | 6 | pom = et.parse('pom.xml') 7 | # I could just say pom.findtext('{http://maven.apache.org/POM/4.0.0}version') 8 | # instead, but that would break if we upgraded POM versions. 9 | version_tag = re.compile('{http://maven.apache.org/POM/.*}version') 10 | for element in pom.getroot(): 11 | if version_tag.match(element.tag): 12 | print element.text 13 | break 14 | 15 | -------------------------------------------------------------------------------- /src/main/java/org/lantern/Censored.java: -------------------------------------------------------------------------------- 1 | package org.lantern; 2 | 3 | import java.io.IOException; 4 | 5 | import org.lantern.annotation.Keep; 6 | /** 7 | * Interface for classes that keep track of censored countries. 8 | */ 9 | @Keep 10 | public interface Censored { 11 | 12 | boolean isExportRestricted(String string) throws IOException; 13 | 14 | boolean isCensored(); 15 | 16 | boolean isCensored(Country country); 17 | 18 | boolean isCountryCodeCensored(String cc); 19 | 20 | } 21 | -------------------------------------------------------------------------------- /debInstall64Bit.bash: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | function die() { 4 | echo $* 5 | exit 1 6 | } 7 | 8 | if [ $# -ne "2" ] 9 | then 10 | die "$0: Received $# args... version and whether or not this is a release required" 11 | fi 12 | #RELEASE=$2 13 | 14 | test -d install/linux/lib || mkdir -p install/linux/lib || die "Could not create install/linux/lib" 15 | cp lib/linux/x86_64/libunix-java.so install/linux/lib/ || die "Could not copy libunix?" 16 | ./debInstall.bash $* 64 579 17 | rm install/linux/lib/* 18 | -------------------------------------------------------------------------------- /src/main/java/org/lantern/state/SyncStrategy.java: -------------------------------------------------------------------------------- 1 | package org.lantern.state; 2 | 3 | import org.cometd.bayeux.server.ServerSession; 4 | import org.lantern.annotation.Keep; 5 | import org.lantern.event.SyncType; 6 | 7 | /** 8 | * Interface for supporting various methods of syncing with clients using some 9 | * form of server-side push. 10 | */ 11 | @Keep 12 | public interface SyncStrategy { 13 | 14 | void sync(ServerSession session, SyncType syncType, String path, 15 | Object value); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/org/lantern/event/ModeChangedEvent.java: -------------------------------------------------------------------------------- 1 | package org.lantern.event; 2 | 3 | import org.lantern.state.Mode; 4 | 5 | public class ModeChangedEvent { 6 | 7 | private final Mode newMode; 8 | 9 | public ModeChangedEvent(final Mode newMode) { 10 | this.newMode = newMode; 11 | } 12 | 13 | public Mode getNewMode() { 14 | return newMode; 15 | } 16 | 17 | @Override 18 | public String toString() { 19 | return "ModeChangedEvent [newMode=" + newMode + "]"; 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/org/lantern/FallbackProxies.java: -------------------------------------------------------------------------------- 1 | package org.lantern; 2 | 3 | import java.util.Collection; 4 | import java.util.HashSet; 5 | 6 | public class FallbackProxies { 7 | 8 | private Collection proxies = new HashSet(); 9 | 10 | public FallbackProxies() {} 11 | 12 | public Collection getProxies() { 13 | return proxies; 14 | } 15 | 16 | public void setProxies(Collection proxies) { 17 | this.proxies = proxies; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/org/lantern/NotInClosedBetaException.java: -------------------------------------------------------------------------------- 1 | package org.lantern; 2 | 3 | /** 4 | * Exception for when we're not in closed beta. 5 | */ 6 | public class NotInClosedBetaException extends Exception { 7 | 8 | /** 9 | * Generated. 10 | */ 11 | private static final long serialVersionUID = 5717671520113126464L; 12 | 13 | public NotInClosedBetaException() { 14 | super(); 15 | } 16 | 17 | public NotInClosedBetaException(final String msg) { 18 | super(msg); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/org/lantern/kscope/ReceivedKScopeAd.java: -------------------------------------------------------------------------------- 1 | package org.lantern.kscope; 2 | 3 | public final class ReceivedKScopeAd { 4 | private String from; 5 | private LanternKscopeAdvertisement ad; 6 | 7 | public ReceivedKScopeAd(String from, LanternKscopeAdvertisement ad) { 8 | super(); 9 | this.from = from; 10 | this.ad = ad; 11 | } 12 | 13 | public String getFrom() { 14 | return from; 15 | } 16 | 17 | public LanternKscopeAdvertisement getAd() { 18 | return ad; 19 | } 20 | } -------------------------------------------------------------------------------- /src/main/java/org/lantern/state/NUsers.java: -------------------------------------------------------------------------------- 1 | package org.lantern.state; 2 | 3 | import org.lantern.annotation.Keep; 4 | 5 | @Keep 6 | public class NUsers { 7 | private long online; 8 | private long ever; 9 | 10 | public long getOnline() { 11 | return online; 12 | } 13 | 14 | public void setOnline(long online) { 15 | this.online = online; 16 | } 17 | 18 | public long getEver() { 19 | return ever; 20 | } 21 | 22 | public void setEver(long ever) { 23 | this.ever = ever; 24 | } 25 | } -------------------------------------------------------------------------------- /src/main/java/org/lantern/event/SystemProxyChangedEvent.java: -------------------------------------------------------------------------------- 1 | package org.lantern.event; 2 | 3 | public class SystemProxyChangedEvent { 4 | 5 | private final boolean systemProxy; 6 | 7 | public SystemProxyChangedEvent(final boolean systemProxy) { 8 | this.systemProxy = systemProxy; 9 | } 10 | 11 | public boolean isSystemProxy() { 12 | return systemProxy; 13 | } 14 | 15 | @Override 16 | public String toString() { 17 | return "SystemProxyChangedEvent [systemProxy=" + systemProxy + "]"; 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/org/lantern/privacy/InvalidKeyException.java: -------------------------------------------------------------------------------- 1 | package org.lantern.privacy; 2 | 3 | import java.security.GeneralSecurityException; 4 | 5 | /* may be thrown if the key is invalid or user provided incorrect password */ 6 | public class InvalidKeyException extends GeneralSecurityException { 7 | public InvalidKeyException() { super(); } 8 | public InvalidKeyException(String msg) { super(msg); } 9 | public InvalidKeyException(String message, Throwable cause) { super(message, cause); } 10 | public InvalidKeyException(Throwable cause) { super(cause); } 11 | } 12 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *.swp 3 | *.swo 4 | *.un~ 5 | *.*~ 6 | *.settings 7 | *.classpath 8 | *.project 9 | .idea 10 | lantern_getexceptional.txt 11 | nbactions.xml 12 | dependency-reduced-pom.xml 13 | .sass-cache 14 | *.log 15 | log.txt* 16 | target/ 17 | dashboard/assets/*.pac 18 | lib/bin 19 | install/lantern-32.deb 20 | install/md5sums 21 | install/output.txt 22 | install/updates.xml 23 | install/Lantern.dmg 24 | install/Lantern.exe 25 | install/common/lantern.jar 26 | install/jres 27 | logs 28 | tags 29 | src//tags 30 | */*/project.xcworkspace/ 31 | */*/xcuserdata/ 32 | */Build/ 33 | -------------------------------------------------------------------------------- /src/main/java/org/lantern/event/PeerCertEvent.java: -------------------------------------------------------------------------------- 1 | package org.lantern.event; 2 | 3 | import java.net.URI; 4 | import java.security.cert.Certificate; 5 | 6 | public class PeerCertEvent { 7 | 8 | private final URI jid; 9 | private final Certificate cert; 10 | 11 | public PeerCertEvent(URI jid, Certificate cert) { 12 | super(); 13 | this.jid = jid; 14 | this.cert = cert; 15 | } 16 | 17 | public URI getJid() { 18 | return jid; 19 | } 20 | 21 | public Certificate getCert() { 22 | return cert; 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /bin/dep.bash: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | function die() { 4 | echo $* 5 | exit 1 6 | } 7 | 8 | if [ $# -ne "5" ] 9 | then 10 | die "$0: Received $# args... group, artifact, version, file, and sources required" 11 | fi 12 | 13 | mvn deploy:deploy-file -DgeneratePom=true -DrepositoryId=aws-release -Durl=s3://lantern-mvn-repo/release -Dpackaging=jar -DgroupId=$1 -DartifactId=$2 -Dversion=$3 -Dfile=$4 -Dsources=$5 14 | #mvn deploy:deploy-file -DgeneratePom=true -DrepositoryId=aws-release -Durl=s3://lantern-mvn-repo/release -Dpackaging=jar -DgroupId=$1 -DartifactId=$2 -Dversion=$3 -Dfile=$4 15 | -------------------------------------------------------------------------------- /install/osx/org.lantern.plist: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | Label 7 | org.lantern 8 | ProgramArguments 9 | 10 | /Applications/Lantern/Lantern.app/Contents/MacOS/JavaApplicationStub 11 | --launchd 12 | 13 | 14 | RunAtLoad 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /LanternBrowser/LanternBrowser/en.lproj/Credits.rtf: -------------------------------------------------------------------------------- 1 | {\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;} 2 | {\colortbl;\red255\green255\blue255;} 3 | \paperw9840\paperh8400 4 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 5 | 6 | \f0\b\fs24 \cf0 Engineering: 7 | \b0 \ 8 | Some people\ 9 | \ 10 | 11 | \b Human Interface Design: 12 | \b0 \ 13 | Some other people\ 14 | \ 15 | 16 | \b Testing: 17 | \b0 \ 18 | Hopefully not nobody\ 19 | \ 20 | 21 | \b Documentation: 22 | \b0 \ 23 | Whoever\ 24 | \ 25 | 26 | \b With special thanks to: 27 | \b0 \ 28 | Mom\ 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/org/lantern/state/NPeers.java: -------------------------------------------------------------------------------- 1 | package org.lantern.state; 2 | 3 | import org.lantern.annotation.Keep; 4 | 5 | @Keep 6 | public class NPeers { 7 | private PeerCount online = new PeerCount(); 8 | private PeerCount ever = new PeerCount(); 9 | 10 | public PeerCount getOnline() { 11 | return online; 12 | } 13 | 14 | public void setOnline(PeerCount online) { 15 | this.online = online; 16 | } 17 | 18 | public PeerCount getEver() { 19 | return ever; 20 | } 21 | 22 | public void setEver(PeerCount ever) { 23 | this.ever = ever; 24 | } 25 | } -------------------------------------------------------------------------------- /src/main/resources/proxy_on.pac.template: -------------------------------------------------------------------------------- 1 | var proxyDomains = new Array(); 2 | var i=0; 3 | 4 | allDomainsTok 5 | 6 | for(i in proxyDomains) { 7 | proxyDomains[i] = proxyDomains[i].split(/\./).join("\\."); 8 | } 9 | 10 | var proxyDomainsRegx = new RegExp("(" + proxyDomains.join("|") + ")$", "i"); 11 | 12 | function FindProxyForURL(url, host) { 13 | if( host == "localhost" || 14 | host == "127.0.0.1") { 15 | return "DIRECT"; 16 | } 17 | 18 | if (proxyDomainsRegx.exec(host)) { 19 | return "PROXY 127.0.0.1:8787; DIRECT"; 20 | } 21 | 22 | return "DIRECT"; 23 | } 24 | -------------------------------------------------------------------------------- /allInstallers.bash: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | function die() { 4 | echo $* 5 | exit 1 6 | } 7 | 8 | if [ $# -ne "3" ] 9 | then 10 | die "$0: Received $# args... version osx-cert-password win-cert-passwork required" 11 | fi 12 | 13 | VERSION=$1 14 | INSTALL4J_KEY_OSX=$2 15 | INSTALL4J_KEY_WIN=$2 16 | ./osxInstall.bash $VERSION $INSTALL4J_KEY_OSX || die "Could not build OSX" 17 | ./winInstall.bash $VERSION $INSTALL4J_KEY_WIN || die "Could not build windows" 18 | ./debInstall32Bit.bash $VERSION || die "Could not build linux 32 bit" 19 | ./debInstall64Bit.bash $VERSION || die "Could not build linux 64 bit" 20 | 21 | 22 | -------------------------------------------------------------------------------- /install/osx/Lantern.app/Contents/Resources/en.lproj/Credits.rtf: -------------------------------------------------------------------------------- 1 | {\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;} 2 | {\colortbl;\red255\green255\blue255;} 3 | \paperw9840\paperh8400 4 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 5 | 6 | \f0\b\fs24 \cf0 Engineering: 7 | \b0 \ 8 | Some people\ 9 | \ 10 | 11 | \b Human Interface Design: 12 | \b0 \ 13 | Some other people\ 14 | \ 15 | 16 | \b Testing: 17 | \b0 \ 18 | Hopefully not nobody\ 19 | \ 20 | 21 | \b Documentation: 22 | \b0 \ 23 | Whoever\ 24 | \ 25 | 26 | \b With special thanks to: 27 | \b0 \ 28 | Mom\ 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/org/lantern/event/ProxyConnectionEvent.java: -------------------------------------------------------------------------------- 1 | package org.lantern.event; 2 | 3 | import org.lantern.ConnectivityStatus; 4 | 5 | /** 6 | * Event created when we successfully connect to a proxy. 7 | */ 8 | public class ProxyConnectionEvent { 9 | 10 | private final ConnectivityStatus connectivityStatus; 11 | 12 | public ProxyConnectionEvent( 13 | final ConnectivityStatus connectivityStatus) { 14 | this.connectivityStatus = connectivityStatus; 15 | 16 | } 17 | 18 | public ConnectivityStatus getConnectivityStatus() { 19 | return connectivityStatus; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/test/java/org/lantern/AllCensored.java: -------------------------------------------------------------------------------- 1 | package org.lantern; 2 | 3 | import java.io.IOException; 4 | 5 | public class AllCensored implements Censored { 6 | 7 | @Override 8 | public boolean isExportRestricted(String string) throws IOException { 9 | return true; 10 | } 11 | 12 | @Override 13 | public boolean isCountryCodeCensored(String cc) { 14 | return true; 15 | } 16 | 17 | @Override 18 | public boolean isCensored(Country country) { 19 | return true; 20 | } 21 | 22 | @Override 23 | public boolean isCensored() { 24 | return true; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/test/java/org/lantern/TestCensored.java: -------------------------------------------------------------------------------- 1 | package org.lantern; 2 | 3 | import java.io.IOException; 4 | 5 | public class TestCensored implements Censored { 6 | 7 | @Override 8 | public boolean isExportRestricted(String string) throws IOException { 9 | return false; 10 | } 11 | 12 | @Override 13 | public boolean isCountryCodeCensored(String cc) { 14 | return false; 15 | } 16 | 17 | @Override 18 | public boolean isCensored(Country country) { 19 | return true; 20 | } 21 | 22 | @Override 23 | public boolean isCensored() { 24 | return true; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /firefox/lantern@getlantern.org/chrome/content/lantern.xul: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 |