All Projects → VirgilSecurity → demo-firebase-ios

VirgilSecurity / demo-firebase-ios

Licence: other
[DEPRECATED] See https://github.com/VirgilSecurity/demo-e3kit-ios and https://github.com/VirgilSecurity/virgil-e3kit-firebase-func for up-to-date code. -- A simple iOS application that demonstrates how the end-to-end encryption works. The application uses firebase as a backend service for authentication and chat messaging.

Programming Languages

swift
15916 projects
ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to demo-firebase-ios

onepile
Playground for the future of private notes and document management
Stars: ✭ 41 (+5.13%)
Mutual labels:  e2ee, end-to-end-encryption
bloom-legacy
End-to-end encrypted Notes, Files, Calendar, Contacts... for Android, IOS, Linux & MacOS - DEPRECATED
Stars: ✭ 44 (+12.82%)
Mutual labels:  e2ee, end-to-end-encryption
piping-vnc-web
VNC over pure HTTPS via Piping Server on Web browser
Stars: ✭ 57 (+46.15%)
Mutual labels:  e2ee, end-to-end-encryption
virgil-crypto
Virgil Crypto is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant. Crypto Library is written in C++, suitable for mobile and server platforms and supports bindings with: Swift, Obj-C, Java (Android), С#/.NET, …
Stars: ✭ 74 (+89.74%)
Mutual labels:  e2ee, end-to-end-encryption
termpair
View and control terminals from your browser with end-to-end encryption 🔒
Stars: ✭ 1,390 (+3464.1%)
Mutual labels:  e2ee, end-to-end-encryption
virgil-crypto-javascript
Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.
Stars: ✭ 31 (-20.51%)
Mutual labels:  e2ee, end-to-end-encryption
TeleType
Stream or share terminals over the web. Show off mad cli-fu, help a colleague, teach, or troubleshoot. end-to-end encrypted 🛡
Stars: ✭ 83 (+112.82%)
Mutual labels:  e2ee, end-to-end-encryption
piping-chat-web
💬 Chat via Piping Server with End-to-End Encryption
Stars: ✭ 22 (-43.59%)
Mutual labels:  e2ee, end-to-end-encryption
ipfs-chat
Real-time P2P messenger using go-ipfs pubsub. TUI. End-to-end encrypted texting & file-sharing. NAT traversal.
Stars: ✭ 84 (+115.38%)
Mutual labels:  end-to-end-encryption
IITC-Mobile
Ingress Intel Total Conversion Mobile for iOS
Stars: ✭ 16 (-58.97%)
Mutual labels:  ios-app
Harbour
Docker/Portainer management app for iOS
Stars: ✭ 210 (+438.46%)
Mutual labels:  ios-app
MoneyPlus
An open-source app which can help you record income and expense.一款开源的、帮助你记录收支的APP。
Stars: ✭ 29 (-25.64%)
Mutual labels:  ios-app
libe4
C library of Teserakt's E4 end-to-end security protocol
Stars: ✭ 15 (-61.54%)
Mutual labels:  end-to-end-encryption
SDK-Privacy-Report
Privacy details of SDKs for Apple Privacy Nutrition & Google Safety Section disclosure.
Stars: ✭ 219 (+461.54%)
Mutual labels:  ios-app
anonaddy
Mobile app for AnonAddy.com.
Stars: ✭ 50 (+28.21%)
Mutual labels:  ios-app
CustomKeyboard
A simple and fast implementation of a custom numeric keypad. There is always a keyboard for you.
Stars: ✭ 20 (-48.72%)
Mutual labels:  ios-app
imsdk-ios
Startalk is a high-performace IM software for business. It has been stably used in Qunar for more than 4 years, providing services as well as consultation after and before sales to business. Startalk is applicable to multiple scenarios, such as office automation, business services, and first-party SDKs for IM scenes
Stars: ✭ 30 (-23.08%)
Mutual labels:  ios-app
geopackage-mapcache-ios
GeoPackage MapCache iOS App
Stars: ✭ 20 (-48.72%)
Mutual labels:  ios-app
refugerestrooms-ios
[DECOMMISSIONED] iOS app for Refuge Restrooms, crowdsourcing safe restrooms for the trans community
Stars: ✭ 19 (-51.28%)
Mutual labels:  ios-app
fcmxmppserverv2
XMPP Connection Server for FCM using the latest version of the Smack library (4.3.4) + Connection Draining Implementation
Stars: ✭ 43 (+10.26%)
Mutual labels:  firebase-cloud-messaging

End-to-end encrypted, HIPAA-compliant iOS chat app for Firebase.

You can reuse this sample in any Firebase project where you want to end-to-end protect user data, documents, images using Virgil's end-to-end encryption. If you're working on a project that needs to be HIPAA-compliant, see our whitepaper for more technical and legal details .

Also, we've created a helpful video on YouTube to walk you through the steps below and explains what you'll be doing for the next 10 minutes or so. Popcorn not included.

This Demo is based on Virgil Objective-C/Swift SDK.

Looking for other client platforms?

Clone project

git clone https://github.com/VirgilSecurity/demo-firebase-ios
cd demo-firebase-ios

Connect your Virgil and Firebase accounts

In order for the app to work, you need to deploy a Firebase function that gives out Virgil JWT tokens for your authenticated users. You'll also need to create a Firestore database with a specific rule set.

You only need to do this once - if you already did it earlier or for your Android or JavaScript clients, you don't need to do it again.

Add your Firebase function URL and Firebase project config to your app

  • Copy your new Firebase function's URL: go to the Firebase console -> your project -> Functions tab and copy your new function's url
  • Go to Xcode -> Firebase Chat iOS/Helpers/Virgil/VirgilHelper.swift and change variable jwtEndpoint to:
    https://YOUR_FUNCTION_URL.cloudfunctions.net/api/generate_jwt
    
  • Go back to your project's page in Firebase console, click the gear icon -> Project settings
  • Click Add app and choose "iOS: Add Firebase to your iOS app"
  • Change the bundle ID to your own (or make one up), click Register app
  • Download GoogleService-Info.plist into the Firebase Chat iOS directory of this sample.

Install dependencies

The sample app uses several modules, including Virgil SDK and Firebase Firestore.

Cocoapods manages dependencies for your Xcode projects. If you don't have it, install it with Homebrew:

brew update
brew install cocoapods
  • Update dependencies The sample already has a Pod file with all required dependencies: run the following commands to update these dependencies:
    pod install
    open Firebase\ Chat\ iOS.xcworkspace/

Build and Run

At this point you are ready to build and run the application on your iPhone or Simulator.

You will want to try your new chat app with 2 users. Not sure how to run 2 simulators? Check out How to run multiple simulators on Xcode 9?

Remember, the app deletes messages right after delivery (it's a HIPAA requirement to meet the conduit exception). If you want to see encrypted messages in your Firestore database, run only 1 app instance, send a message to your chat partner and check Firestore DB's contents before opening the other user's app to receive the message. If you don't want to implement this behavior in your own app, you can remove it from this sample.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].