4 ms·
Tanker is an open-source client SDK that can be embedded in any application. Encrypt data, share it between users, create groups, etc. The SDK handles key exch
by TankerHQ 7y ago
Tanker is an open-source client SDK that can be embedded in any application.
Encrypt data, share it between users, create groups, etc.
The SDK handles key exchanges, cryptographic operations, and identity verification for you.
Also available for iOS and Android!
- dieblur 7y agoWhat algorithms? Pretty bare README for a cryptography project.
- blastrock 7y agoTanker developer here. We use libsodium as our underlying cryptographic library. It uses XChacha20/Poly1305 for symmetric encryption, Curve25519 for asymmetric encryption and signature, and Blake2 for hashing.
- dieblur 7y agoWhy would I use your library over the tried and true https://github.com/dchest/tweetnacl-js https://github.com/dchest/tweetnacl-js ?
- blastrock 7y agoTweetNaCl is roughly equivalent to libsodium, on which Tanker builds. Tanker is easier to integrate into your app because it takes care of key sharing, multi-devices, user group managment, etc. These are all things you would have to handle by yourself using just a cryptographic library like TweetNaCl.
- mekane8 7y agoCan you describe (briefly, in plain english) how it is able to securely encrypt on the client side? i.e. how does it hide its secret key from prying eyes?
- TankerHQ 7y agoThe keys are generated client-side, and encryption is done client-side, the encrypted data is then sent to the app. On sharing, the key is encrypted for the recipient and sent to them through the Tanker server. Neither Tanker nor the app can see the clear data or keys.
- ricardobeat 7y agoThis doesn’t answer the question. How come the app cannot see the keys? What about the key used to encrypt the client side key?
- t2riRXawYxLGGYb 7y agoThis really does answer the question, spot on. The client side app does see the key(s) but it does not send them to the server. This is how E2E encryption works, browser or otherwise. I'm not sure specifically how Tanker is storing the client-side keys. Generally the client-side keys would be encrypted using an OS-level keychain.
- dmerej 7y agoHi, other Tanker dev here. In the browser, we use IndexedDB (via dexie). Keys are encrypted using a secret that has to be provided when starting a Tanker session. On mobile we use an SQLCipher DB encrypted with the same secret.