Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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!



What algorithms? Pretty bare README for a cryptography project.


Tanker 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.


Why would I use your library over the tried and true https://github.com/dchest/tweetnacl-js ?


TweetNaCl 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.


Can 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?


The 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.


This doesn’t answer the question. How come the app cannot see the keys? What about the key used to encrypt the client side key?


This 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.


Hi, 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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: