Version: v0.7.1 Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Aug 21, 2020 License: MPL-2.0 Imports: 6 Imported by: 150




This section is empty.


View Source
var (
	InvalidContentURI  = errors.New("invalid Matrix content URI")
	InputNotJSONString = errors.New("input doesn't look like a JSON string")


func DecodeUserLocalpart

func DecodeUserLocalpart(str string) (string, error)

DecodeUserLocalpart decodes the given string back into the original input string. Returns an error if the given string is not a valid user ID localpart encoding. See

This decodes quoted-printable bytes back into UTF8, and unescapes casing. For example:

_alph=40_bet=5f50up  =>  Alph@Bet_50up

Returns an error if the input string contains characters outside the range "a-z0-9._=-", has an invalid quote-printable byte (e.g. not hex), or has an invalid _ escaped byte (e.g. "_5").

func EncodeUserLocalpart

func EncodeUserLocalpart(str string) string

EncodeUserLocalpart encodes the given string into Matrix-compliant user ID localpart form. See

This returns a string with only the characters "a-z0-9._=-". The uppercase range A-Z are encoded using leading underscores ("_"). Characters outside the aforementioned ranges (including literal underscores ("_") and equals ("=")) are encoded as UTF8 code points (NOT NCRs) and converted to lower-case hex with a leading "=". For example:

Alph@Bet_50up  => _alph=40_bet=5f50up


type Algorithm

type Algorithm string

Algorithm is a Matrix message encryption algorithm.

const (
	AlgorithmOlmV1    Algorithm = "m.olm.v1.curve25519-aes-sha2"
	AlgorithmMegolmV1 Algorithm = "m.megolm.v1.aes-sha2"

type ContentURI

type ContentURI struct {
	Homeserver string
	FileID     string

ContentURI represents a Matrix content URI.

func MustParseContentURI

func MustParseContentURI(uri string) ContentURI

func ParseContentURI

func ParseContentURI(uri string) (parsed ContentURI, err error)

ParseContentURI parses a Matrix content URI.

func ParseContentURIBytes

func ParseContentURIBytes(uri []byte) (parsed ContentURI, err error)

func (*ContentURI) CUString

func (uri *ContentURI) CUString() ContentURIString

func (*ContentURI) IsEmpty

func (uri *ContentURI) IsEmpty() bool

func (*ContentURI) MarshalJSON

func (uri *ContentURI) MarshalJSON() ([]byte, error)

func (ContentURI) MarshalText added in v0.3.6

func (uri ContentURI) MarshalText() ([]byte, error)

func (*ContentURI) String

func (uri *ContentURI) String() string

func (*ContentURI) UnmarshalJSON

func (uri *ContentURI) UnmarshalJSON(raw []byte) (err error)

func (*ContentURI) UnmarshalText added in v0.3.6

func (uri *ContentURI) UnmarshalText(raw []byte) (err error)

type ContentURIString

type ContentURIString string

ContentURIString is a string that's expected to be a Matrix content URI. It's useful for delaying the parsing of the content URI to move errors from the event content JSON parsing step to a later step where more appropriate errors can be produced.

func (ContentURIString) Parse

func (uriString ContentURIString) Parse() (ContentURI, error)

func (ContentURIString) ParseOrIgnore

func (uriString ContentURIString) ParseOrIgnore() ContentURI

type Curve25519

type Curve25519 string

Curve25519 is the base64 representation of an Curve25519 public key

func (Curve25519) String

func (curve25519 Curve25519) String() string

type DeviceID

type DeviceID string

A DeviceID is an arbitrary string that references a specific device.

func (DeviceID) String

func (deviceID DeviceID) String() string

type DeviceKeyID

type DeviceKeyID string

A DeviceKeyID is a string formatted as <algorithm>:<device_id> that is used as the key in deviceid-key mappings.

func NewDeviceKeyID

func NewDeviceKeyID(algorithm KeyAlgorithm, deviceID DeviceID) DeviceKeyID

func (DeviceKeyID) Parse

func (deviceKeyID DeviceKeyID) Parse() (Algorithm, DeviceID)

func (DeviceKeyID) String

func (deviceKeyID DeviceKeyID) String() string

type Ed25519

type Ed25519 string

Ed25519 is the base64 representation of an Ed25519 public key

func (Ed25519) String

func (ed25519 Ed25519) String() string

type EventID

type EventID string

An EventID is a string starting with $ that references a specific event.

func (EventID) String

func (eventID EventID) String() string

type IdentityKey added in v0.5.5

type IdentityKey = Curve25519

type KeyAlgorithm

type KeyAlgorithm string
const (
	KeyAlgorithmCurve25519       KeyAlgorithm = "curve25519"
	KeyAlgorithmEd25519          KeyAlgorithm = "ed25519"
	KeyAlgorithmSignedCurve25519 KeyAlgorithm = "signed_curve25519"

type KeyID

type KeyID string

A KeyID a string formatted as <keyalgorithm>:<key_id> that is used as the key in one-time-key mappings.

func NewKeyID

func NewKeyID(algorithm KeyAlgorithm, keyID string) KeyID

func (KeyID) Parse

func (keyID KeyID) Parse() (KeyAlgorithm, string)

func (KeyID) String

func (keyID KeyID) String() string

type OlmMsgType

type OlmMsgType int

OlmMsgType is an Olm message type

const (
	OlmMsgTypePreKey OlmMsgType = 0
	OlmMsgTypeMsg    OlmMsgType = 1

type RoomAlias

type RoomAlias string

A RoomAlias is a string starting with # that can be resolved into.

func NewRoomAlias

func NewRoomAlias(localpart, server string) RoomAlias

func (RoomAlias) String

func (roomAlias RoomAlias) String() string

type RoomID

type RoomID string

A RoomID is a string starting with ! that references a specific room.

func (RoomID) String

func (roomID RoomID) String() string

type SenderKey

type SenderKey = Curve25519

type SessionID

type SessionID string

A SessionID is an arbitrary string that identifies an Olm or Megolm session.

func (SessionID) String

func (sessionID SessionID) String() string

type SigningKey added in v0.5.5

type SigningKey = Ed25519

type UserID

type UserID string

UserID represents a Matrix user ID.

func NewEncodedUserID

func NewEncodedUserID(localpart, homeserver string) UserID

func NewUserID

func NewUserID(localpart, homeserver string) UserID

func (UserID) Parse

func (userID UserID) Parse() (localpart, homeserver string, err error)

Parse parses the user ID into the localpart and server name. See

func (UserID) ParseAndDecode

func (userID UserID) ParseAndDecode() (localpart, homeserver string, err error)

func (UserID) String

func (userID UserID) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL