Virgil E3Kit Objective-C/Swift

June 1, 2026 ยท View on GitHub

Build Status SPM compatible GitHub license API Reference

Introduction | Benefits | Features | Installation | Resources | Samples | License | Support

Introduction

Virgil Security provides Virgil E3Kit - an open-source client-side framework that allows developers to add end-to-end encryption to their messaging applications, file sharing programs, and other digital communication products in just a few simple steps to become HIPAA and GDPR compliant and more.

Benefits

  • Easy to setup and integrate into new or existing projects
  • Compatible with any CPaaS provider, including Nexmo, Firebase, Twilio, PubNub and etc.
  • Strong secret keys storage, integration with Keychain
  • Provides GDPR and HIPAA compliance
  • Immune to quantum computers attacks

Features

  • Strong one-to-one and group encryption
  • Files and stream end-to-end encryption
  • Data signature and verification as part of the encrypt and decrypt functions
  • Recoverable private encryption keys
  • Access to encrypted data from multiple user devices
  • Perfect forward secrecy with the Double Ratchet algorithm
  • Encryption for unregistered users
  • Post-quantum algorithms support: ML-KEM-768 (encryption), Falcon (signature)

Installation

Navigate to Developer Documentation to install and initialize Virgil E3Kit.

Resources

Samples

You can find the code samples for Objective-C/Swift here:

Sample type
iOS Demo

You can run the demo to see how to initialize the SDK, register users and encrypt messages using E3Kit.

Upgrading from v4.x

Cloud key backup (password-protected private key) is not compatible between v4.x and v5.0.

v5.0 switches the backup key derivation from the legacy Pythia protocol to the OPRF brainkey v3 protocol with DLEQ proof verification. These protocols produce different encryption keys, so a backup created by v4.x cannot be restored by v5.0 and vice versa.

Migration steps for your users:

  1. Upgrade the SDK to v5.0.
  2. After login, call backupPrivateKey(password:) to create a new backup under the new protocol.
  3. The old v4.x backup entry on Keyknox will remain but is no longer accessible โ€” it can be cleaned up by calling resetPrivateKeyBackup() before step 2.

Users who cannot re-backup (e.g. lost access to their device) must re-register with a new key pair.

Note: CocoaPods support was dropped in this release. Swift Package Manager is the only supported distribution method. See the Installation section.

License

This library is released under the 3-clause BSD License.

Support

Our developer support team is here to help you. Find out more information on our Help Center.

You can find us on Twitter or send us email support@VirgilSecurity.com.

Also, get extra help from our support team on Slack.