add information to check the key
This commit is contained in:
parent
943d9386bb
commit
4a3f9ec63a
2 changed files with 19 additions and 1 deletions
|
@ -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"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -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,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue