mirror of
https://github.com/matrix-org/matrix-spec
synced 2026-06-13 19:57:47 +02:00
85 lines
2.7 KiB
YAML
85 lines
2.7 KiB
YAML
|
|
# Copyright 2018-2026 The Matrix.org Foundation C.I.C.
|
|||
|
|
#
|
|||
|
|
# 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: EncryptedFile
|
|||
|
|
description: |
|
|||
|
|
Information on an encrypted media blob, including its location in the
|
|||
|
|
[content repository](/client-server-api/#content-repository), and the keys
|
|||
|
|
necessary to decrypt it.
|
|||
|
|
properties:
|
|||
|
|
url:
|
|||
|
|
type: string
|
|||
|
|
format: mx-mxc-uri
|
|||
|
|
description: The URL to the file.
|
|||
|
|
example: "mxc://example.org/FHyPlCeYUSFFxlgbQYZmoEoe"
|
|||
|
|
key:
|
|||
|
|
type: object
|
|||
|
|
title: JWK
|
|||
|
|
description: A [JSON Web Key](https://tools.ietf.org/html/rfc7517#appendix-A.3) object.
|
|||
|
|
properties:
|
|||
|
|
kty:
|
|||
|
|
type: string
|
|||
|
|
description: Key type. Must be `oct`.
|
|||
|
|
example: "oct"
|
|||
|
|
key_ops:
|
|||
|
|
type: array
|
|||
|
|
items:
|
|||
|
|
type: string
|
|||
|
|
description: Key operations. Must at least contain `encrypt` and `decrypt`.
|
|||
|
|
example: ["encrypt", "decrypt"]
|
|||
|
|
alg:
|
|||
|
|
type: string
|
|||
|
|
description: Algorithm. Must be `A256CTR`.
|
|||
|
|
example: A256CTR
|
|||
|
|
k:
|
|||
|
|
type: string
|
|||
|
|
description: The key, encoded as [URL-safe unpadded Base64](/appendices/#url-safe-unpadded-base64).
|
|||
|
|
example: "aWF6-32KGYaC3A_FEUCk1Bt0JA37zP0wrStgmdCaW-0"
|
|||
|
|
ext:
|
|||
|
|
type: boolean
|
|||
|
|
description: "Extractable. Must be `true`. This is a [W3C extension](https://w3c.github.io/webcrypto/#iana-section-jwk)."
|
|||
|
|
example: true
|
|||
|
|
required:
|
|||
|
|
- kty
|
|||
|
|
- key_ops
|
|||
|
|
- alg
|
|||
|
|
- k
|
|||
|
|
- ext
|
|||
|
|
iv:
|
|||
|
|
type: string
|
|||
|
|
description: The 128-bit unique counter block used by AES-CTR, encoded as [unpadded Base64](/appendices/#unpadded-base64).
|
|||
|
|
example: "w+sE15fzSc0AAAAAAAAAAA"
|
|||
|
|
hashes:
|
|||
|
|
type: object
|
|||
|
|
title: EncryptedFileHashes
|
|||
|
|
description:
|
|||
|
|
A map from an algorithm name to a hash of the ciphertext. Clients MUST support the SHA-256 hash, which uses the key `sha256`.
|
|||
|
|
properties:
|
|||
|
|
sha256:
|
|||
|
|
type: string
|
|||
|
|
description: The hash of the ciphertext. encoded as [unpadded Base64](/appendices/#unpadded-base64).
|
|||
|
|
example: "fdSLu/YkRx3Wyh3KQabP3rd6+SFiKg5lsJZQHtkSAYA"
|
|||
|
|
required: ['sha256']
|
|||
|
|
v:
|
|||
|
|
type: string
|
|||
|
|
description: Version of the encrypted attachment’s protocol. Must be `v2`.
|
|||
|
|
example: v2
|
|||
|
|
required:
|
|||
|
|
- url
|
|||
|
|
- key
|
|||
|
|
- iv
|
|||
|
|
- hashes
|
|||
|
|
- v
|