Address kegan's comments

Minor fixes to the e2e spec as raiseds by kegan
pull/24/head
Richard van der Hoff 9 years ago
parent 7d805f105e
commit 8d41536757

@ -67,32 +67,35 @@ Messaging Algorithm Names
~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~
Messaging algorithm names use the extensible naming scheme used throughout this Messaging algorithm names use the extensible naming scheme used throughout this
specification. Algorithm names that start with "m." are reserved for algorithms specification. Algorithm names that start with `m.` are reserved for algorithms
defined by this specification. Implementations wanting to experiment with new defined by this specification. Implementations wanting to experiment with new
algorithms are encouraged to pick algorithm names that start with their algorithms are encouraged to pick algorithm names that start with their
domain to reduce the risk of collisions. domain to reduce the risk of collisions.
The name "m.olm.v1.curve25519-aes-sha2" corresponds to version 1 of the Olm Algorithm names should be short and meaningful, and should list the primitives
used by the algorithm so that it is easier to see if the algorithm is using a
broken primitive.
The name `m.olm.v1.curve25519-aes-sha2` corresponds to version 1 of the Olm
ratchet using Curve25519 for the initial key agreement, HKDF-SHA-256 for ratchet using Curve25519 for the initial key agreement, HKDF-SHA-256 for
ratchet key derivation, Curve25519 for the DH ratchet, HMAC-SHA-256 for the ratchet key derivation, Curve25519 for the DH ratchet, HMAC-SHA-256 for the
hash ratchet, and HKDF-SHA-256, AES-256 in CBC mode, and 8 byte truncated hash ratchet, and HKDF-SHA-256, AES-256 in CBC mode, and 8 byte truncated
HMAC-SHA-256 for authenticated encryption. HMAC-SHA-256 for authenticated encryption.
Algorithm names should be short and meaningful. A name of "m.olm.v1" is too A name of `m.olm.v1` is too short: it gives no information about the primitives
short. However a name of in use, and is difficult to extend for different primitives. However a name of
"m.olm.v1.ecdh-curve25519-hdkfsha256.hmacsha256.hkdfsha256-aes256-cbc-hmac64sha256" `m.olm.v1.ecdh-curve25519-hdkfsha256.hmacsha256.hkdfsha256-aes256-cbc-hmac64sha256`
is too long despite giving a more precise description of the algorithm. is too long despite giving a more precise description of the algorithm: it adds
to the data transfer overhead and sacrifices clarity for human readers without
Algorithm names should list the primitives used by the algorithm so that it adding any useful extra information.
easier to see if the algorithm is using a broken primitive.
Key Algorithms Key Algorithms
~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~
The name "ed25519" corresponds to the Ed25519 signature algorithm. The key is The name `ed25519` corresponds to the Ed25519 signature algorithm. The key is
a Base64 encoded 32-byte Ed25519 public key. a Base64 encoded 32-byte Ed25519 public key.
The name "curve25519" corresponds to the Curve25519 ECDH algorithm. The key is The name `curve25519` corresponds to the Curve25519 ECDH algorithm. The key is
a Base64 encoded 32-byte Curve25519 public key. a Base64 encoded 32-byte Curve25519 public key.
Client Behaviour Client Behaviour
@ -149,7 +152,7 @@ Downloading Keys
~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~
Keys are downloaded as a collection of signed JSON objects. There Keys are downloaded as a collection of signed JSON objects. There
will be a JSON object per device per user. If one of the user's will be one JSON object per device per user. If one of the user's
devices doesn't support end-to-end encryption then their devices doesn't support end-to-end encryption then their
homeserver must synthesise a JSON object without any device keys homeserver must synthesise a JSON object without any device keys
for that device. for that device.

Loading…
Cancel
Save