The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
✅ This version might be used instead of v4.0.0 ✅
### Changes
- Update underlying crypto with restored `Pythia` backward compatibility! 👍
- VirgilSDK -> 9.0.1
- VirgilCrypto -> 7.0.1
- VSCCrypto -> 0.17.1
- VirgilSDKPythia -> 0.12.1
- VirgilSDKRatchet -> 0.10.1
⚠️Please use v4.0.1 instead ⚠️
### Changes
- Remove support for Apple BITCODE
- Bump min supported macOS version to 10.13
- Update underlying Crypto and SDKs
### ⚠️ Breaking changes ⚠️
- Remove support for Carthage
- Change BrainKey implementation
- Remove usage of `VirgilSDKPythia`
- `CloudKeyManager` is not backward compatible, please do not update to this version if CloudKeyManager is used in production.
### Changes
- Added SPM support
- Updated dependencies
### Added
- Xcode 12.2+ support
- Apple Silicon support
- We’ve updated (extended) Backup & Restore methods with the new parameter - `key name`, so you can backup a user's private key not only with the default `key name` but allow developers to define `key name`. Therefore, from now you can encrypt the same user’s private key a few times with different options (e.g. password) and backup it into the Virgil Cloud, then use any of the options (e.g. password) to restore the private key.
New methods:
- `backupPrivateKey(password:keyName:completion:)`
- `restorePrivateKey(password:keyName:completion:)`
- `changePassword(from:to:keyName:completion)`
- `resetPrivateKeyBackup(keyName:completion:)`
### Breaking changes
- `restorePrivateKey(password:completion)` will now throw **EThreeError.privateKeyExists** if private key already exists in local storage
⚠️ **Carthage users** ⚠️
Starting from this version, we use *xcframeworks* to distribute our libraries.
You need to [reintegrate the framework with your project](https://github.com/Carthage/Carthage#migrating-a-project-from-framework-bundles-to-xcframeworks).
### Dependencies
- Updated `VirgilSDKPythia` **0.9.1 --> 0.10.0**
- Updated `VirgilSDKRatchet` **0.7.0 --> 0.8.0**
## Features
- Added ability to encrypt streams with a generated one-time asymmetric key that can be shared for other users alongside stream encrypted data.
## Changed
- Updated dependencies
## Added
- Convenience `EThreeParams` constructor with ability to pass initial JWT value
## Fixed
- Verifying stream signature
From now E3Kit has become well-tested and documented end-to-end security framework.
## Changes
- Added post-quantum documentation and samples
- Updated E3Kit documentation
## Added
- Post-quantum keys support for peer-to-peer encryption (post-quantum group chats and double ratchet are coming later)
- Fixed crash when using E3Kit along with Firebase due to common dependency
## Changed
- Renamed `UnsafeChannel` and all related methods to `TemporaryChannel`
- Deprecated `resetPrivateKeyBackup(password)` method in favor of `resetPrivateKeyBackup()`