add information to check the key

This commit is contained in:
Hubert Chathi 2020-03-30 17:44:06 -04:00
parent 943d9386bb
commit 4a3f9ec63a
2 changed files with 19 additions and 1 deletions

View file

@ -141,13 +141,23 @@ is encrypted and MACed as follows:
(We use AES-CTR to match file encryption and key exports.) (We use AES-CTR to match file encryption and key exports.)
For the purposes of allowing clients to check whether a user has correctly
entered the key, clients should:
1. encrypt and MAC a message consisting of 32 bytes of 0 as described above,
using the empty string as the info parameter to the HKDF in step 1.
2. store the `iv` and `mac` in the `m.secret_storage.key.[key ID]`
account-data.
For example, the `m.secret_storage.key.key_id` for a key using this algorithm For example, the `m.secret_storage.key.key_id` for a key using this algorithm
could look like: could look like:
```json ```json
{ {
"name": "m.default", "name": "m.default",
"algorithm": "m.secret_storage.v1.aes-hmac-sha2" "algorithm": "m.secret_storage.v1.aes-hmac-sha2",
"iv": "random+data",
"mac": "mac+of+encrypted+zeros"
} }
``` ```

View file

@ -43,6 +43,14 @@ is able to store data.
bits that should be generated from PBKDF2 (in other words, the size of the bits that should be generated from PBKDF2 (in other words, the size of the
key). key).
* For the purposes of allowing clients to check whether a user has correctly
entered the key, clients should:
1. encrypt and MAC a message consisting of 32 bytes of 0 as described above,
using the empty string as the info parameter to the HKDF in step 1.
2. store the `iv` and `mac` in the `m.secret_storage.key.[key ID]`
account-data.
* The `passthrough` property specified in the "Enconding the recovery key for * The `passthrough` property specified in the "Enconding the recovery key for
server-side storage via MSC1946" section of MSC1219 is removed. The primary server-side storage via MSC1946" section of MSC1219 is removed. The primary
purpose of that property was to allow easy migration of pre-MSC1946 backups, purpose of that property was to allow easy migration of pre-MSC1946 backups,