Crypto Component Specification

Encryption

Drop messages

Drop messages are encrypted using Noise boxes with Curve25519 and AES256-GCM. See https://github.com/trevp/noise for further details on Noise.

Files

Files are encrypted with AES in Galois Counter Mode (GCM). The default key size is 256 bit. An IV consisting of a random nonce of 12 bytes and a counter of 4 bytes is used.

Keys

Curve25519 private keys are 32 bytes of random data. Public keys are the 32 bytes result from the scalar multiplication of the private key with the Curve25519 base point.

Key Management

Each Qabel identity consists of a Curve25519 key pair. Since Noise uses ephemeral key pairs for each created box, the key management is rather simple and requires no additional keys.

Crypto API

The focus of this API is to prevent misuse of crypto primitives.

Encrypt File

Symmetrically encrypt given data with a given key.

Encrypt Noise box

Creates a Noise box using the senders private key, the recipients public key and the Drop message.