Package org.matrix.android.sdk.api.session.securestorage

Types

Link copied to clipboard
class EmptyKeySigner : KeySigner
Link copied to clipboard
@JsonClass(generateAdapter = true)
data class EncryptedSecretContent(    @Json(name = "ciphertext") val ciphertext: String? = null,     @Json(name = "mac") val mac: String? = null,     @Json(name = "ephemeral") val ephemeral: String? = null,     @Json(name = "iv") val initializationVector: String? = null) : AccountDataContent

The account_data will have an encrypted property that is a map from key ID to an object. The algorithm from the m.secret_storage.key.key ID data for the given key defines how the other properties are interpreted, though it's expected that most encryption schemes would have ciphertext and mac properties, where the ciphertext property is the unpadded base64-encoded ciphertext, and the mac is used to ensure the integrity of the data.

Link copied to clipboard
sealed class IntegrityResult
Link copied to clipboard
data class KeyInfo(val id: String, val content: SecretStorageKeyContent)

The contents of the account data for the key will include an algorithm property, which indicates the encryption algorithm used, as well as a name property, which is a human-readable name. The contents will be signed as signed JSON using the user's master cross-signing key. Other properties depend on the encryption algorithm.

Link copied to clipboard
sealed class KeyInfoResult
Link copied to clipboard
data class KeyRef(val keyId: String?, val keySpec: SsssKeySpec?)
Link copied to clipboard
interface KeySigner
Link copied to clipboard
data class RawBytesKeySpec(val privateKey: ByteArray) : SsssKeySpec
Link copied to clipboard
@JsonClass(generateAdapter = true)
data class SecretStorageKeyContent(    @Json(name = "algorithm") val algorithm: String? = null,     @Json(name = "name") val name: String? = null,     @Json(name = "passphrase") val passphrase: SsssPassphrase? = null,     @Json(name = "pubkey") val publicKey: String? = null,     @Json(name = "signatures") val signatures: Map<String, Map<String, String>>? = null)
Link copied to clipboard
sealed class SharedSecretStorageError : Throwable
Link copied to clipboard
interface SharedSecretStorageService

Some features may require clients to store encrypted data on the server so that it can be shared securely between clients. Clients may also wish to securely send such data directly to each other. For example, key backups (MSC1219) can store the decryption key for the backups on the server, or cross-signing (MSC1756) can store the signing keys.

Link copied to clipboard
data class SsssKeyCreationInfo(    val keyId: String = "",     val content: SecretStorageKeyContent?,     val recoveryKey: String = "",     val keySpec: SsssKeySpec)
Link copied to clipboard
interface SsssKeySpec

Tag class.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class SsssPassphrase(    @Json(name = "algorithm") val algorithm: String?,     @Json(name = "iterations") val iterations: Int,     @Json(name = "salt") val salt: String?)