/** * Implementation of server-side secret storage * * @see https://spec.matrix.org/v1.6/client-server-api/#storage */ /** * Common base interface for Secret Storage Keys. * * The common properties for all encryption keys used in server-side secret storage. * * @see https://spec.matrix.org/v1.6/client-server-api/#key-storage */ export interface SecretStorageKeyDescriptionCommon { /** A human-readable name for this key. */ name: string; /** The encryption algorithm used with this key. */ algorithm: string; /** Information for deriving this key from a passphrase. */ passphrase: PassphraseInfo; } /** * Properties for a SSSS key using the `m.secret_storage.v1.aes-hmac-sha2` algorithm. * * Corresponds to `AesHmacSha2KeyDescription` in the specification. * * @see https://spec.matrix.org/v1.6/client-server-api/#msecret_storagev1aes-hmac-sha2 */ export interface SecretStorageKeyDescriptionAesV1 extends SecretStorageKeyDescriptionCommon { /** The 16-byte AES initialization vector, encoded as base64. */ iv: string; /** The MAC of the result of encrypting 32 bytes of 0, encoded as base64. */ mac: string; } /** * Union type for secret storage keys. * * For now, this is only {@link SecretStorageKeyDescriptionAesV1}, but other interfaces may be added in future. */ export type SecretStorageKeyDescription = SecretStorageKeyDescriptionAesV1; /** * Information on how to generate the key from a passphrase. * * @see https://spec.matrix.org/v1.6/client-server-api/#deriving-keys-from-passphrases */ export interface PassphraseInfo { /** The algorithm to be used to derive the key. */ algorithm: "m.pbkdf2"; /** The number of PBKDF2 iterations to use. */ iterations: number; /** The salt to be used for PBKDF2. */ salt: string; /** The number of bits to generate. Defaults to 256. */ bits?: number; } //# sourceMappingURL=secret-storage.d.ts.map