Package-level declarations

Types

Link copied to clipboard

The AES-GCM variants the default manager supports. Determines the required key length.

Link copied to clipboard
data class E2EEEvent(val type: E2EEEventType, val name: String, val userId: String?, val trackType: E2EETrackType?, val keyIndex: Int?, val version: Int?, val reason: String?, val keyState: E2EEKeyState?, val encodePerformance: List<E2EETrackPerformance>, val decodePerformance: List<E2EETrackPerformance>)

A state change reported by StreamEncryptionManager, most usefully a decryption failure for a specific participant. Encryption problems are otherwise silent — media simply arrives undecodable — so this is the main signal for surfacing "you are on a different key" in a UI.

Link copied to clipboard
fun interface E2EEEventListener

Receives E2EEEvents from StreamEncryptionManager. Invoked on a WebRTC internal thread.

Link copied to clipboard

The kinds of E2EEEvent the native layer reports. UNKNOWN covers constants added by a newer WebRTC build than this SDK was compiled against.

Link copied to clipboard
data class E2EEKeyState(val perUserKeys: List<E2EEUserKey>, val sharedKeys: List<E2EESharedKey>)

A snapshot of the keys the manager currently holds. See StreamEncryptionManager.requestKeyState.

Link copied to clipboard
interface E2EEManager

Attaches end-to-end encryption to the media that flows through a call.

Link copied to clipboard
data class E2EESharedKey(val keyIndex: Int, val fingerprint: String, val isActive: Boolean)

A key held for every participant. isActive marks the index used for outgoing frames.

Link copied to clipboard
data class E2EETrackPerformance(val userId: String, val trackType: E2EETrackType?, val codec: String?, val fps: Double, val maxCryptoMs: Double)

Crypto cost for one track, reported while StreamEncryptionManager.enablePerformanceReporting is on.

Link copied to clipboard

The kind of track being encrypted or decrypted, passed to E2EEManager so implementations can key or tag frames per media type.

Link copied to clipboard
data class E2EEUserKey(val userId: String, val keyIndex: Int, val fingerprint: String)

A key held for one participant. fingerprint is a digest, not the key material, and is safe to log — it is there so two devices can confirm they agree without exchanging keys.

Link copied to clipboard

The SDK's default E2EEManager, backed by WebRTC's framed AES-GCM encryption. Frames are encrypted before they leave the device and decrypted after they arrive, so the SFU forwards media it cannot read.