package dbus import ( "encoding/hex" ) // AuthExternal returns an Auth that authenticates as the given user with the // EXTERNAL mechanism. func AuthExternal(user string) Auth { return authExternal{user} } // AuthExternal implements the EXTERNAL authentication mechanism. type authExternal struct { user string } func (a authExternal) FirstData() ([]byte, []byte, AuthStatus) { b := make([]byte, 2*len(a.user)) hex.Encode(b, []byte(a.user)) return []byte("EXTERNAL"), b, AuthOk } func (a authExternal) HandleData(b []byte) ([]byte, AuthStatus) { return nil, AuthError }