diaspora/diaspora_federation

View on GitHub
docs/federation/encryption.md

Summary

Maintainability
Test Coverage
---
title: Encryption
---

diaspora\* wraps the Salmon [Magic Envelope][magicsig] into a simple JSON structure, to encrypt private messages.

## Encrypted Magic Envelope

### JSON structure

~~~json
{
  "aes_key": "...",
  "encrypted_magic_envelope": "..."
}
~~~

| Key                        | Description                                                                                                             |
| -------------------------- |------------------------------------------------------------------------------------------------------------------------ |
| `aes_key`                  | The [AES Key JSON](#aes-key-json-structure) encrypted with the recipients public key using RSA and then base64 encoded. |
| `encrypted_magic_envelope` | The [Magic Envelope][magicsig] encrypted with the `aes_key` using AES-256-CBC and then base64 encoded.                  |

### AES Key JSON structure

~~~json
{
  "key": "...",
  "iv": "..."
}
~~~

| Key   | Description                 |
| ----- |---------------------------- |
| `key` | The base64 encoded AES key. |
| `iv`  | The base64 encoded AES iv.  |

Both `key` and `iv` have to be suitable for AES-256-CBC.

## Additional information and specifications

* [Magic Envelope][magicsig]

[magicsig]: {{ site.baseurl }}/federation/magicsig.html#magic-envelope