Twinds SDK

Building Blocks

API

zenroom

Android

iOS

Local Storage - Settings

Android

iOS

Remote Storage - ECIES colendi

Android

iOS

API

React Native - DisposableIdentityModule - Android

Twinds SDK - Kotlin Multiplatform

Javascript

Remote Storage

  • Gaia Protocol

Local Storage

  • Keys
  • Vault
  • Settings
  • SecuredSettings

zenroom

  • multiplatform
  • various scenarios: ecdh, secshare, w3c

Cryptography

Key generation, zenroom

  • deterministic, seed from user

Shamir's secret sharing, zenroom

  • 3 out of 5

Gaia file encryption, colendi

  • private key derived from seed from user
  • secp256k1 bouncycastle implementation

Proof of identity relationship, zenroom

  • double signature

Signed JWT, uport

  • sha256
  • komputing, spongycastle implementaiton

Derivation with zenroom

seed + path to create hmac (sha512 of 2048 bit)

key pair with hmac + hmac

 

BIP39 mnemonic / 24 words

           -> seed with salt

BIP32 derivation for main DIDs and disposable DIDs

           -> key pair

Key Derivation

 

Derivation Proof Credential (Verifiable Credential)

 

Linked Data Signature by disposable DI of claim, then

Linked Data Signature by main DID of signed claim

Proof of Identity Relationship

zenroom

scenario: web3 + ecdh

uport

sha256 + spongycastle

3 of 5

Shamir's Secret Sharing

zenroom

scenario: secshare

3 times 22 bytes to share 64 byte secret

 

Radical Open Security

Findings

TWF-010

Encrypted Settings

-> configure DI with appropriate libraries

TWF-004

Cryptographic
Implementation "seed from user"

-> ?

TWF-002

Logging

-> Disable

TWF-012

Naming passPhrase

-> ? / masterPrivateKey

TWF-005

Cyphertext + private key in during decryption with colandi

-> ?

TWF-001

React-Native Module initialisation

-> Remove Logging

Radical Open Security

Non-Findings

Production Readiness

  • Documentation
    • User guide
  • Code Quality
    • Remove partial implementations

Twinds SDK

By friedger

Twinds SDK

  • 247