Released on 2020-01-23.
- Internal performance improvements
- Simplify revocation handling in Tanker apps. Before version 2.2.2, you had to set the
connectDeviceRevokedHandlerto handle the revocation in this callback. Starting with this release, this is no longer necessary. Instead, calling any encryption method on Tanker while the device is revoked will throw a new TKRErrorDeviceRevoked exception, trigger the
connectDeviceRevokedHandlercallback, and close the session.
Released on 2019-10-29.
- Released a preview version of Identity Verification with OpenID Connect.
TKRTankerOptions.trustchainIDis now deprecated, use
Released on 2019-08-21.
This release adds a better way to encrypt large files: encryption streams. Their primary purpose is to greatly reduce memory footprint.
This is a major release with many backward incompatible changes. If you are using a SDK version in the 1.x series, make sure to read the migration guide before upgrading.
Table of contents:
The Tanker SDK now allows pre-registration sharing. This means you can share resources with users who do not have registered their identity with Tanker yet.
Multi-device support improvement¶
With a SDK version in the 1.x series, users could register an invalid email at account creation, thus making it impossible for them to recover access to their data in case of device loss.
This and similar problems have been fixed in this release:
- It is no longer possible to register a device with Tanker without any verification method.
- Once a verification method has been chosen it must be verified right away - this means you should adapt the UX flow of account creation in your application.
Renamed encryption methods¶
Some of the encryption methods' names were either tautological or confusing.
decryptDataFromDatahave been shortened to
encryptDataFromStringwas confusing, it has been renamed to
Improved asynchronous code handling¶
On iOS, the SDK used to depend on PromiseKit, which meant you had to integrate PromiseKit into your application if you decided to use Tanker.
This posed two problems:
- One, we needed to be compatible with both Objective-C and Swift, so we depended on a pretty old version of PromiseKit (1.7)
- Two, if you were already using a library for asynchronous code, you ended up with two different libraries for the same purpose in the same application.
So in the 2.0 version, the SDK no longer depends on
PromiseKit and you can use any asynchronous library you like.
The SDK version 1.10.x required IDs and user tokens to identify users of your application.
In 2.0, a single concept named "identity" is used instead.
Those identities can be sorted on two axes:
- Public identity: used to share encrypted data (either directly or within a group).
- Secret identity: used to match a user of the application with a user registered Tanker's servers. It should only be sent from the application server to the application after a successful authentication.
- Permanent identity: represents a user who is registered on Tanker's servers.
- Provisional identity: represents a user who is not yet registered Tanker's servers.
The concept of "unlock" has been renamed to "verification". For instance, instead of "unlock devices", we use the term "verify identities".
Please check the guide for more information.
Removal of deprecated features¶
The ChunkEncryptor class was deprecated in 1.10 and thus has been removed in the 2.0 release.
unlockRequired, waitingForValidation events¶
waitingForValidation events are gone. Instead of using a callback, use
tanker.verifyIdentity() after checking the returned value of