# Copyright 2016 OpenMarket Ltd # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. type: object title: DeviceKeys description: Device identity keys properties: user_id: type: string description: |- The ID of the user the device belongs to. Must match the user ID used when logging in. example: "@alice:example.com" device_id: type: string description: |- The ID of the device these keys belong to. Must match the device ID used when logging in. example: "JLAFKJWSCS" algorithms: type: array items: type: string description: |- The encryption algorithms supported by this device. example: ["m.olm.v1.curve25519-aes-sha2", "m.megolm.v1.aes-sha2"] keys: type: object description: |- Public identity keys. The names of the properties should be in the format ``:``. The keys themselves should be encoded as specified by the key algorithm. additionalProperties: type: string example: "curve25519:JLAFKJWSCS": "3C5BFWi2Y8MaVvjM8M22DBmh24PmgR0nPvJOIArzgyI" "ed25519:JLAFKJWSCS": "lEuiRJBit0IG6nUf5pUzWTUEsRVVe/HJkoKuEww9ULI" signatures: type: object title: Signatures description: |- Signatures for the device key object. A map from user ID, to a map from ``:`` to the signature. The signature is calculated using the process described at `Signing JSON`_. example: "@alice:example.com": "ed25519:JLAFKJWSCS": "dSO80A01XiigH3uBiDVx/EjzaoycHcjq9lfQX0uWsqxl2giMIiSPR8a4d291W1ihKJL/a+myXS367WT6NAIcBA" required: - user_id - device_id - algorithms - keys - signatures