Authentication

Notes on new Telepathy interfaces for various authentication needs.

Scope

Out of scope?

Interface

Authentication is split into two kinds: local (we need to provide credentials) and remote (a peer needs to provide credentials).

Channel type LocalAuthentication

Created when a peer wants us to authenticate ourselves.

Interface SaslAuthentication

Interface TlsCertificateVerification

Channel type RemoteAuthentication

Created when we want to authenticate the peer.

Unified Interface

This is an attempt to make a unified interface for all types of authentication, TLS, SASL and protocol specific schemes like chatrooms or XTLS.

Use-case interface breakup

LocalAuthentication

RemoteAuthentication

AuthMechanismChooser

AuthMechanismAdvertiser

ChannelAuthentication

Client->Server TLS

Client->Server SASL

Server->Client SASL

Client->Chatroom Password

Client->Client XTLS

Type.Authentication

Interface.LocalAuthentication

Interface.RemoteAuthentication

Interface.ChannelAuthentication

Interface.AuthMechanismAdvertiser

Interface.AuthMechanismChooser

Open questions