The cl-megolm Reference Manual

This is the cl-megolm Reference Manual, version 1.0.1, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sat Dec 03 20:24:10 2022 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 cl-megolm

A copy of the python functionality provided as bindings for Olm.
See: https://gitlab.matrix.org/matrix-org/olm/-/blob/master/python/. Big thanks to Borodust for creating the initial bindings using Claw.

Author

K1D77A

License

MIT

Version

1.0.1

Dependencies
  • ironclad (system).
  • claw-olm (system).
  • jonathan (system).
  • cffi (system).
  • lisp-unit (system).
  • s-base64 (system).
  • str (system).
  • alexandria (system).
Source

cl-megolm.asd.

Child Component

src (module).


3 Modules

Modules are listed depth-first from the system components tree.


3.1 cl-megolm/src

Source

cl-megolm.asd.

Parent Component

cl-megolm (system).

Child Components

4 Files

Files are sorted by type and then listed depth-first from the systems components trees.


4.1 Lisp


4.1.1 cl-megolm/cl-megolm.asd

Source

cl-megolm.asd.

Parent Component

cl-megolm (system).

ASDF Systems

cl-megolm.


4.1.2 cl-megolm/src/package.lisp

Source

cl-megolm.asd.

Parent Component

src (module).

Packages

cl-megolm.


4.1.3 cl-megolm/src/olm.lisp

Dependency

package.lisp (file).

Source

cl-megolm.asd.

Parent Component

src (module).


4.1.4 cl-megolm/src/conditions.lisp

Dependency

olm.lisp (file).

Source

cl-megolm.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.5 cl-megolm/src/classes.lisp

Dependency

conditions.lisp (file).

Source

cl-megolm.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.6 cl-megolm/src/helpers.lisp

Dependency

classes.lisp (file).

Source

cl-megolm.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.7 cl-megolm/src/utility.lisp

Dependency

helpers.lisp (file).

Source

cl-megolm.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.8 cl-megolm/src/session.lisp

Dependency

utility.lisp (file).

Source

cl-megolm.asd.

Parent Component

src (module).

Public Interface
Internals

%make-olm-message (function).


4.1.9 cl-megolm/src/account.lisp

Dependency

session.lisp (file).

Source

cl-megolm.asd.

Parent Component

src (module).

Public Interface
Internals

gen-account (function).


4.1.10 cl-megolm/src/group-session.lisp

Dependency

account.lisp (file).

Source

cl-megolm.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.11 cl-megolm/src/pk.lisp

Dependency

group-session.lisp (file).

Source

cl-megolm.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.12 cl-megolm/src/sas.lisp

Dependency

pk.lisp (file).

Source

cl-megolm.asd.

Parent Component

src (module).

Public Interface

5 Packages

Packages are listed by definition order.


5.1 cl-megolm

Source

package.lisp.

Use List

common-lisp.

Public Interface
Internals

6 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


6.1 Public Interface


6.1.1 Macros

Macro: check-error (object form)
Package

cl-megolm.

Source

helpers.lisp.

Macro: def-trivial-condition (name supers)
Package

cl-megolm.

Source

conditions.lisp.


6.1.2 Ordinary functions

Function: ed25519-verify-p (key message signature)
Package

cl-megolm.

Source

utility.lisp.

Function: make-account ()

Create a new Olm account. Creates a new account and its matching identity key pair. Signals ’olm-account-error on failure. If there weren’t enough random bytes signals ’olm-account-not-enough-random.

Package

cl-megolm.

Source

account.lisp.

Function: make-inbound-group-session (session-key)

Create a new inbound group session.
Start a new inbound group session, from a key exported from
an outbound group session. Signals ’olm-invalid-base64 if the session key is not valid base64 or ’olm-bad_session_key if the session key is invalid.

Package

cl-megolm.

Source

group-session.lisp.

Function: make-olm-message (ciphertext)

Create a new Olm message with the supplied ciphertext

Package

cl-megolm.

Source

session.lisp.

Function: make-olm-pre-key-message (ciphertext)

Create a make Olm prekey message with the supplied ciphertext

Package

cl-megolm.

Source

session.lisp.

Function: make-outbound-group-session ()

Create a new outbound group session.
Start a new outbound group session. Raises OlmGroupSessionError on failure.

Package

cl-megolm.

Source

group-session.lisp.

Function: make-pk-decryption ()

Create a new PK Decryption object. If fails signals either ’olm-input-buffer-too-small or ’output-buffer-too-small

Package

cl-megolm.

Source

pk.lisp.

Function: make-pk-encryption (recipient-key)

Create a new PK encryption object. Creates a pointer that has to be freed later.

Package

cl-megolm.

Source

pk.lisp.

Function: make-pk-signing ()

Creates a new instance of pk-signing from a randomly generated seed.

Package

cl-megolm.

Source

pk.lisp.

Function: make-sas (&optional other-user-pubkey)
Package

cl-megolm.

Source

sas.lisp.

Function: make-session ()
Package

cl-megolm.

Source

session.lisp.

Function: sha256 (input-string)
Package

cl-megolm.

Source

utility.lisp.

Function: to-bytes (seq &optional encoding)
Package

cl-megolm.

Source

helpers.lisp.


6.1.3 Generic functions

Generic Reader: account (object)
Package

cl-megolm.

Methods
Reader Method: account ((account account))

automatically generated reader method

Source

classes.lisp.

Target Slot

account.

Generic Writer: (setf account) (object)
Package

cl-megolm.

Methods
Writer Method: (setf account) ((account account))

automatically generated writer method

Source

classes.lisp.

Target Slot

account.

Generic Function: calculate-mac (sas message extra-info)
Package

cl-megolm.

Methods
Method: calculate-mac ((sas sas) (message string) (extra-info string))

Generate a message authentication code based on the shared secret.

Source

sas.lisp.

Generic Function: calculate-mac-long-kdf (sas message extra-info)
Package

cl-megolm.

Methods
Method: calculate-mac-long-kdf ((sas sas) (message string) (extra-info string))

Generate a message authentication code based on the shared secret.

This function should not be used unless compatibility with an older non-tagged Olm version is required.

Source

sas.lisp.

Generic Reader: ciphertext (object)
Package

cl-megolm.

Methods
Reader Method: ciphertext ((%olm-message %olm-message))

automatically generated reader method

Source

classes.lisp.

Target Slot

ciphertext.

Reader Method: ciphertext ((pk-message pk-message))

automatically generated reader method

Source

classes.lisp.

Target Slot

ciphertext.

Generic Writer: (setf ciphertext) (object)
Package

cl-megolm.

Methods
Writer Method: (setf ciphertext) ((%olm-message %olm-message))

automatically generated writer method

Source

classes.lisp.

Target Slot

ciphertext.

Writer Method: (setf ciphertext) ((pk-message pk-message))

automatically generated writer method

Source

classes.lisp.

Target Slot

ciphertext.

Generic Function: cleanup (object)

Used to free the pointer associated with the object.
Super important to call this when done using an object that needs it.

Package

cl-megolm.

Source

classes.lisp.

Methods
Method: cleanup ((utility utility))
Method: cleanup ((session session))
Method: cleanup ((sas sas))
Method: cleanup ((pk-signing pk-signing))
Method: cleanup ((pk-decryption pk-decryption))
Method: cleanup ((pk-encryption pk-encryption))
Method: cleanup ((account account))
Method: cleanup :before (object)
Generic Function: clear (account)
Package

cl-megolm.

Methods
Method: clear ((utility utility))
Source

classes.lisp.

Method: clear ((session outbound-group-session))
Source

classes.lisp.

Method: clear ((session inbound-group-session))
Source

classes.lisp.

Method: clear ((session session))
Source

classes.lisp.

Method: clear ((sas sas))
Source

classes.lisp.

Method: clear ((pk-signing pk-signing))
Source

classes.lisp.

Method: clear ((pk-decryption pk-decryption))
Source

classes.lisp.

Method: clear ((pk-encryption pk-encryption))
Source

classes.lisp.

Method: clear ((account account))
Source

classes.lisp.

Generic Function: clear-session (session)
Package

cl-megolm.

Methods
Method: clear-session ((session session))
Source

session.lisp.

Generic Function: create-sas (sas buf len)
Package

cl-megolm.

Methods
Method: create-sas ((sas sas) (buf array) len)
Source

sas.lisp.

Method: create-sas ((sas sas) buf len)
Source

sas.lisp.

Generic Function: curve (account)
Package

cl-megolm.

Methods
Method: curve ((account account))
Source

account.lisp.

Generic Function: decrypt (session message)
Package

cl-megolm.

Methods
Method: decrypt ((pk pk-decryption) (pk-message pk-message))

Decrypt a previously encrypted pk message.

Source

pk.lisp.

Method: decrypt ((session inbound-group-session) (cipher-text string))

Decrypt a message

Returns a tuple of the decrypted plain-text and the message index of the decrypted message or signals various conditions on failure. On failure the potential conditions are:

olm-invalid-base64 if the message is not valid base64 olm-bad-message-version if the message was encrypted with an unsupported version of the protocol
olm-bad-message-format if the message headers could not be decoded
olm-bad-message-mac if the message could not be verified olm-unknown-message-index if we do not have a session key corresponding to the message’s index (i.e., it was sent before the session key was shared with us)

Source

group-session.lisp.

Method: decrypt ((session session) (message %olm-message))

Decrypts a message using the session. Returns the plaintext string
on success. Raises OlmSessionError on failure. If the base64 couldn’t
be decoded then the error message will be ’invalid-base64. If the message is for an unsupported version of the protocol the condition signalled will be ’bad-message-version. if the message couldn’t be decoded then
the condition signalled will be ’bad-message-format. if the mac on the
message was invalid then the condition will be ’bad-message-mac

Source

session.lisp.

Generic Function: ed25519 (account)
Package

cl-megolm.

Methods
Method: ed25519 ((account account))
Source

account.lisp.

Generic Function: encrypt (session plaintext)
Package

cl-megolm.

Methods
Method: encrypt ((pk pk-encryption) (plaintext string))

Returns the encrypted pk-message instance.
Encrypt a plaintext for the recipient set using %olm:pk-encryption-set-recipient-key. Writes to the ciphertext, mac, and ephemeral_key buffers, whose values should be sent to the recipient. mac is a Message Authentication Code to ensure that the data is received and decrypted properly. ephemeral_key is the public part of the ephemeral key used (together with the recipient’s key) to generate a symmetric encryption key. If the ciphertext, mac, or
ephemeral_key buffers were too small then the condition
will be output-buffer-too-small. If there weren’t enough random bytes then the condition olm-input-buffer-too-small will be signalled.

Source

pk.lisp.

Method: encrypt ((session outbound-group-session) (plaintext string))

Encrypt a message. Returns the encrypted ciphertext.

Source

group-session.lisp.

Method: encrypt ((session session) (plaintext string))

Encrypts a message using the session. Returns the ciphertext as a base64 encoded string on success.

Source

session.lisp.

Generic Reader: ephemeral (object)
Package

cl-megolm.

Methods
Reader Method: ephemeral ((pk-message pk-message))

automatically generated reader method

Source

classes.lisp.

Target Slot

ephermal.

Generic Writer: (setf ephemeral) (object)
Package

cl-megolm.

Methods
Writer Method: (setf ephemeral) ((pk-message pk-message))

automatically generated writer method

Source

classes.lisp.

Target Slot

ephermal.

Generic Function: export-session (session message-index)
Package

cl-megolm.

Methods
Method: export-session ((session inbound-group-session) message-index)

Export an inbound group session

Export the base64-encoded ratchet key for this session, at the given index, in a format which can be used by import_session().

Signals olm-unknown-message-index if we do not have a session key corresponding to the given index (ie, it was sent before the session key was shared with us)

Source

group-session.lisp.

Generic Function: first-known-index (session)
Package

cl-megolm.

Methods
Method: first-known-index ((session inbound-group-session))

The first message index we know how to decrypt

Source

group-session.lisp.

Generic Function: from-pickle (type pickle passphrase)
Package

cl-megolm.

Methods
Method: from-pickle ((type (eql :pk-decrypt)) (pickle string) (passphrase string))

Restore a previously stored PkDecryption object.
Creates a PkDecryption object from a pickled base64 string. Decrypts
the pickled object using the supplied passphrase.
If the passphrase doesn’t match the one used to encrypt the
session then the error message for the condition ’bad-account-key is signalled. If the base64 the pickle couldn’t be decoded then the condition signalled will be ’invalid-base64

Source

pk.lisp.

Method: from-pickle ((type (eql :outbound-group)) (pickle string) (passphrase string))

Load a previously stored outbound group session.
loads an outbound group session from a pickled base64 string and
returns an outboundgroupsession object. decrypts the session using the supplied passphrase. raises olmsessionerror on failure. if the
passphrase doesn’t match the one used to encrypt the session then the condition signalled for the exception will be ’bad-account-key. if the base64 couldn’t be decoded then the condition signalled will be’invalid-base64.

Source

group-session.lisp.

Method: from-pickle ((type (eql :inbound-group)) (pickle string) (passphrase string))

Load a previously stored inbound group session.
Loads an inbound group session from a pickled base64 string and returns an inbound-group-session object. Decrypts the session using the supplied passphrase. If the passphrase doesn’t match the one used to encrypt the session then signals ’olm-inbound-bad-account-key. If the base64 couldn’t be decoded then signals ’olm-inbound-invalid-base-64.

Source

group-session.lisp.

Method: from-pickle ((type (eql :account)) (pickle string) (passphrase string))

Load a previously stored olm account.
Loads an account from a pickled base64-encoded string and returns an Account object. Decrypts the account using the supplied passphrase. If the passphrase doesn’t match the
one used to encrypt the account then the condition signalled for the exception will be ’bad-account-key. if the base64 couldn’t be decoded then the condition signalled will be ’invalid-base64.

Source

account.lisp.

Method: from-pickle ((type (eql :session)) (pickle string) (passphrase string))

Load a previously stored Olm session.

Loads a session from a pickled base64 string and returns a Session object. Decrypts the session using the supplied passphrase. Raises OlmSessionError on failure. If the passphrase doesn’t match the one used to encrypt the session then the error message for the exception will be ’bad-account-key. If the base64 couldn’t be decoded then the error message will be ’invalid-base64.

Source

session.lisp.

Generic Function: generate-bytes (sas extra-info length)
Package

cl-megolm.

Methods
Method: generate-bytes ((sas sas) (extra-info string) (length integer))

Generate bytes to use for the short authentication string.

Source

sas.lisp.

Generic Function: generate-one-time-keys (account n)
Package

cl-megolm.

Methods
Method: generate-one-time-keys ((account account) n)

Generate a number of new one-time keys.

If the total number of keys stored by this account exceeds max_one_time_keys() then the old keys are discarded. Signals olm-account-error on error.

Source

account.lisp.

Generic Function: id (session)
Package

cl-megolm.

Methods
Method: id ((session outbound-group-session))

A base64 encoded identifier for this session.

Source

group-session.lisp.

Method: id ((session inbound-group-session))

A base64 encoded identifier for this session.

Source

group-session.lisp.

Method: id ((session session))

An identifier for this session. Will be the same for both ends of the conversation.

Source

session.lisp.

Generic Reader: id-key (condition)
Generic Writer: (setf id-key) (condition)
Package

cl-megolm.

Methods
Reader Method: id-key ((condition empty-id-key))
Writer Method: (setf id-key) ((condition empty-id-key))
Source

conditions.lisp.

Target Slot

id-key.

Generic Function: identity-keys (account)
Package

cl-megolm.

Methods
Method: identity-keys ((account account))

Public part of the identity keys of the account.

Source

account.lisp.

Generic Function: import-session (type session-key)
Package

cl-megolm.

Methods
Method: import-session ((type (eql :inbound)) session-key)

Create an InboundGroupSession from an exported session key.
Creates an InboundGroupSession with an previously exported session key. Signals ’olm-invalid-base-64 if the session_key is not valid base64 or ’olm-bad-session-key if the session_key is invalid

Source

group-session.lisp.

Generic Reader: mac (object)
Package

cl-megolm.

Methods
Reader Method: mac ((pk-message pk-message))

automatically generated reader method

Source

classes.lisp.

Target Slot

mac.

Generic Writer: (setf mac) (object)
Package

cl-megolm.

Methods
Writer Method: (setf mac) ((pk-message pk-message))

automatically generated writer method

Source

classes.lisp.

Target Slot

mac.

Generic Function: make-inbound-session (account message id-key)
Package

cl-megolm.

Methods
Method: make-inbound-session ((account account) (message olm-message-pre-key) id-key)
Source

session.lisp.

Method: make-inbound-session ((account account) (message olm-message-pre-key) (id-key string))

Create a new inbound Olm session.

create a new in-bound session for sending/receiving messages from an incoming prekey message. raises olmsessionerror on failure. if the base64 couldn’t be decoded then condition signalled will be invalid-base64. if the message was for an unsupported protocol version then
the error message will be bad-message-version. if the message
couldn’t be decoded then then the condition signalled will be bad-message-format. if the message refers to an unknown one-time
key then the condition signalled will be bad-message-key-id.

Source

session.lisp.

Method: make-inbound-session :before ((account account) (message olm-message-pre-key) id-key)
Source

session.lisp.

Generic Function: make-outbound-session (account one-time-key id-key)
Package

cl-megolm.

Methods
Method: make-outbound-session ((account account) (one-time-key string) (id-key string))
Source

session.lisp.

Method: make-outbound-session :before ((account account) (one-time-key string) (id-key string))
Source

session.lisp.

Generic Function: mark-keys-as-published (account)
Package

cl-megolm.

Methods
Method: mark-keys-as-published ((account account))

Mark the current set of one-time keys as being published.

Source

account.lisp.

Generic Function: matchesp (session message id-key)
Package

cl-megolm.

Methods
Method: matchesp ((session session) (message olm-message-pre-key) (id-key null))
Source

session.lisp.

Method: matchesp ((session session) (message olm-message-pre-key) (id-key string))

Checks if the PRE_KEY message is for this in-bound session.
This can happen if multiple messages are sent to this session before this session sends a message in reply. Returns True if the session matches. returns false if the session does not match. raises olmsessionerror on failure. if the base64 couldn’t be decoded then the condition signalled will be ’invalid-base64. if the message was for an unsupported protocol version then the condition signalled will be ’bad-message-version. if the message couldn’t be decoded then then the condition signalled will be * ’bad-message-format.

Source

session.lisp.

Method: matchesp :before ((session session) (message olm-message-pre-key) id-key)
Source

session.lisp.

Method: matchesp ((session session) message id-key)
Source

session.lisp.

Method: matchesp :before ((session session) message id-key)
Source

session.lisp.

Generic Function: max-one-time-keys (account)
Package

cl-megolm.

Methods
Method: max-one-time-keys ((account account))

The maximum number of one-time keys the account can store.

Source

account.lisp.

Generic Function: message-index (session)
Package

cl-megolm.

Methods
Method: message-index ((session outbound-group-session))

The current message index of the session.
Each message is encrypted with an increasing index. This is the index for the next message.

Source

group-session.lisp.

Generic Reader: one-time-key (condition)
Generic Writer: (setf one-time-key) (condition)
Package

cl-megolm.

Methods
Reader Method: one-time-key ((condition empty-one-time-key))
Writer Method: (setf one-time-key) ((condition empty-one-time-key))
Source

conditions.lisp.

Target Slot

one-time-key.

Generic Function: one-time-keys (account)
Package

cl-megolm.

Methods
Method: one-time-keys ((account account))

The public part of the one-time keys for this account.

Source

account.lisp.

Generic Function: other-key-set-p (sas)
Package

cl-megolm.

Methods
Method: other-key-set-p ((sas sas))

Check if the other user’s pubkey has been set.

Source

sas.lisp.

Generic Function: pickle (session passphrase)
Package

cl-megolm.

Methods
Method: pickle ((pk pk-decryption) (passphrase string))

Stores decryption object as a base64 string. Encrypts the object using the supplied key. Returns the base64 string.

Source

pk.lisp.

Method: pickle ((session outbound-group-session) (passphrase string))

Store an outbound group session.
Stores a group session as a base64 string. Encrypts the session using the supplied passphrase. Returns a byte object containing the base64 encoded string of the pickled session.

Source

group-session.lisp.

Method: pickle ((session inbound-group-session) (passphrase string))

Store an inbound group session.

Stores a group session as a base64 string. Encrypts the session using the supplied passphrase. Returns a byte object containing the base64 encoded string of the pickled session.

Source

group-session.lisp.

Method: pickle ((account account) (passphrase string))

Store an Olm account.
Stores an account as a base64 string. Encrypts the account using the supplied passphrase. Returns a byte object containing the base64 encoded string of the pickled account. Signals ’olm-account-error on failure.

Source

account.lisp.

Method: pickle ((session session) (passphrase string))

Store an Olm session.
Stores a session as a base64 string. Encrypts the session using the supplied passphrase. Returns a byte object containing the base64 encoded string of the pickled session.

Source

session.lisp.

Generic Function: pubkey (sas)
Package

cl-megolm.

Methods
Method: pubkey ((sas sas))

Get the public key for the SAS object.

This returns the public key of the SAS object that can then be shared with another user to perform the authentication process.

Source

sas.lisp.

Generic Reader: public-key (object)
Package

cl-megolm.

Methods
Reader Method: public-key ((pk-signing pk-signing))

automatically generated reader method

Source

classes.lisp.

Target Slot

public-key.

Reader Method: public-key ((pk-decryption pk-decryption))

automatically generated reader method

Source

classes.lisp.

Target Slot

public-key.

Generic Writer: (setf public-key) (object)
Package

cl-megolm.

Methods
Writer Method: (setf public-key) ((pk-signing pk-signing))

automatically generated writer method

Source

classes.lisp.

Target Slot

public-key.

Writer Method: (setf public-key) ((pk-decryption pk-decryption))

automatically generated writer method

Source

classes.lisp.

Target Slot

public-key.

Generic Function: remove-one-time-keys (account session)
Package

cl-megolm.

Methods
Method: remove-one-time-keys ((account account) (session session))

Remove used one-time keys.

Removes the one-time keys that the session used from the account. Raises olm-account-error on failure. If the account doesn’t have any matching one-time keys then signals ’bad-message-key-id

Source

account.lisp.

Generic Reader: sas (object)
Package

cl-megolm.

Methods
Reader Method: sas ((sas sas))

automatically generated reader method

Source

classes.lisp.

Target Slot

sas.

Generic Writer: (setf sas) (object)
Package

cl-megolm.

Methods
Writer Method: (setf sas) ((sas sas))

automatically generated writer method

Source

classes.lisp.

Target Slot

sas.

Generic Reader: session (object)
Package

cl-megolm.

Methods
Reader Method: session ((session session))

automatically generated reader method

Source

classes.lisp.

Target Slot

session.

Generic Writer: (setf session) (object)
Package

cl-megolm.

Methods
Writer Method: (setf session) ((session session))

automatically generated writer method

Source

classes.lisp.

Target Slot

session.

Generic Function: session-key (session)
Package

cl-megolm.

Methods
Method: session-key ((session outbound-group-session))

The base64-encoded current ratchet key for this session.
Each message is encrypted with a different ratchet key. This function returns the ratchet key that will be used for the next message.

Source

group-session.lisp.

Generic Function: set-their-public-key (sas pubkey)
Package

cl-megolm.

Methods
Method: set-their-public-key ((sas sas) (pubkey string))

Set the public key of the other user.

This sets the public key of the other user, it needs to be set before bytes can be generated for the authentication string and a MAC can be calculated.

Source

sas.lisp.

Generic Function: sign (account message)
Package

cl-megolm.

Methods
Method: sign ((pk pk-signing) (message string))

Sign a message.

Source

pk.lisp.

Method: sign ((account account) (message string))

Signs a message with this account.

Signs a message with the private ed25519 identity key of this account. Returns the signature.
signals olm-account-error on failure.

Source

account.lisp.


6.1.4 Standalone methods

Method: print-object ((obj olm-message) stream)
Source

session.lisp.


6.1.5 Conditions

Condition: bad-account-key
Package

cl-megolm.

Source

conditions.lisp.

Direct superclasses

olm-error.

Condition: bad-message-format
Package

cl-megolm.

Source

conditions.lisp.

Direct superclasses

olm-error.

Condition: bad-message-key-id
Package

cl-megolm.

Source

conditions.lisp.

Direct superclasses

olm-error.

Condition: bad-message-mac
Package

cl-megolm.

Source

conditions.lisp.

Direct superclasses

olm-error.

Condition: bad-message-version
Package

cl-megolm.

Source

conditions.lisp.

Direct superclasses

olm-error.

Condition: condition-missing

Signalled when an attempt was made to signal a condition from SEARCHED-FOR but none were found.

Package

cl-megolm.

Source

conditions.lisp.

Direct superclasses

olm-error.

Direct methods
Direct slots
Slot: searched-for
Initargs

:searched-for

Readers

searched-for.

Writers

(setf searched-for).

Condition: empty-ciphertext

Signalled when ciphertext within object is empty

Package

cl-megolm.

Source

conditions.lisp.

Direct superclasses

olm-error.

Direct methods
Direct slots
Slot: object
Initargs

:object

Readers

object.

Writers

(setf object).

Condition: empty-id-key

Signalled when an empty id-key has been passed to a fun

Package

cl-megolm.

Source

conditions.lisp.

Direct superclasses

empty-string.

Direct methods
Direct slots
Slot: id-key
Initargs

:id-key

Readers

id-key.

Writers

(setf id-key).

Condition: empty-one-time-key

Signalled when an empty one-time-key has been passed to a fun

Package

cl-megolm.

Source

conditions.lisp.

Direct superclasses

empty-string.

Direct methods
Direct slots
Slot: one-time-key
Initargs

:one-time-key

Readers

one-time-key.

Writers

(setf one-time-key).

Condition: invalid-base64
Package

cl-megolm.

Source

conditions.lisp.

Direct superclasses

olm-error.

Condition: invalid-message-type
Package

cl-megolm.

Source

conditions.lisp.

Direct superclasses

olm-error.

Direct methods
Direct slots
Slot: message-type
Initargs

:message-type

Readers

message-type.

Writers

(setf message-type).

Condition: not-enough-random
Package

cl-megolm.

Source

conditions.lisp.

Direct superclasses

olm-error.

Condition: olm-bad-message-format
Package

cl-megolm.

Source

conditions.lisp.

Direct superclasses

olm-error.

Condition: olm-bad-message-mac
Package

cl-megolm.

Source

conditions.lisp.

Direct superclasses

olm-error.

Condition: olm-bad-message-version
Package

cl-megolm.

Source

conditions.lisp.

Direct superclasses

olm-error.

Condition: olm-error
Package

cl-megolm.

Source

conditions.lisp.

Direct superclasses

condition.

Direct subclasses
Condition: olm-group-session-error
Package

cl-megolm.

Source

conditions.lisp.

Direct superclasses

olm-error.

Condition: olm-input-buffer-too-small
Package

cl-megolm.

Source

conditions.lisp.

Direct superclasses

olm-error.

Condition: olm-invalid-base64
Package

cl-megolm.

Source

conditions.lisp.

Direct superclasses

olm-error.

Condition: olm-sas-their-key-not-set
Package

cl-megolm.

Source

conditions.lisp.

Direct superclasses

olm-error.

Condition: olm-unknown-message-index
Package

cl-megolm.

Source

conditions.lisp.

Direct superclasses

olm-error.

Condition: output-buffer-too-small
Package

cl-megolm.

Source

conditions.lisp.

Direct superclasses

olm-error.

Condition: unknown-message-index
Package

cl-megolm.

Source

conditions.lisp.

Direct superclasses

olm-error.


6.1.6 Classes

Class: account
Package

cl-megolm.

Source

classes.lisp.

Direct methods
Direct slots
Slot: account
Initargs

:account

Readers

account.

Writers

(setf account).

Class: inbound-group-session
Package

cl-megolm.

Source

classes.lisp.

Direct superclasses

session.

Direct methods
Class: inbound-session
Package

cl-megolm.

Source

classes.lisp.

Direct superclasses

session.

Class: olm-message
Package

cl-megolm.

Source

classes.lisp.

Direct superclasses

%olm-message.

Direct methods

print-object.

Direct slots
Slot: message-type
Initform

%olm:*message-type-message*

Class: olm-message-pre-key
Package

cl-megolm.

Source

classes.lisp.

Direct superclasses

%olm-message.

Direct methods
Direct slots
Slot: message-type
Initform

%olm:*message-type-pre-key*

Class: outbound-group-session
Package

cl-megolm.

Source

classes.lisp.

Direct superclasses

session.

Direct methods
Class: outbound-session
Package

cl-megolm.

Source

classes.lisp.

Direct superclasses

session.

Class: pk-decryption
Package

cl-megolm.

Source

classes.lisp.

Direct methods
Direct slots
Slot: pk-decrypt
Initargs

:pk-decrypt

Readers

pk-decrypt.

Writers

(setf pk-decrypt).

Slot: public-key
Initargs

:public-key

Readers

public-key.

Writers

(setf public-key).

Class: pk-encryption
Package

cl-megolm.

Source

classes.lisp.

Direct methods
Direct slots
Slot: pk-encrypt
Initargs

:pk-encrypt

Readers

pk-encrypt.

Writers

(setf pk-encrypt).

Class: pk-message
Package

cl-megolm.

Source

classes.lisp.

Direct methods
Direct slots
Slot: ephermal
Initargs

:ephemeral

Readers

ephemeral.

Writers

(setf ephemeral).

Slot: mac
Initargs

:mac

Readers

mac.

Writers

(setf mac).

Slot: ciphertext
Initargs

:ciphertext

Readers

ciphertext.

Writers

(setf ciphertext).

Class: pk-signing
Package

cl-megolm.

Source

classes.lisp.

Direct methods
Direct slots
Slot: pk-sign
Initargs

:pk-sign

Readers

pk-sign.

Writers

(setf pk-sign).

Slot: public-key
Initargs

:public-key

Readers

public-key.

Writers

(setf public-key).

Class: sas
Package

cl-megolm.

Source

classes.lisp.

Direct methods
Direct slots
Slot: sas
Initargs

:sas

Readers

sas.

Writers

(setf sas).

Class: session
Package

cl-megolm.

Source

classes.lisp.

Direct subclasses
Direct methods
Direct slots
Slot: session
Initargs

:session

Readers

session.

Writers

(setf session).


6.2 Internals


6.2.1 Special variables

Special Variable: *conditions*
Package

cl-megolm.

Source

conditions.lisp.


6.2.2 Macros

Macro: %pickle (object object-type accessor password)

An example of how common calls like ’pickle’ could be written

Package

cl-megolm.

Source

helpers.lisp.

Macro: clean-after (list-of-vars &body body)

Wraps body in an unwind-protect and then takes a list of lists, each list whose car is a pointer to foreign string and the second the length, then 0s the foreign string.

Package

cl-megolm.

Source

helpers.lisp.

Macro: pkv (plist key)
Package

cl-megolm.

Source

helpers.lisp.

Macro: with-foreign-strings-as-lisp (bindings &body body)

This is just a normal ’cffi:with-foreign-strings’ however each of the buffer names you assign ie (mapcar #’first bindings) has (cffi:foreign-string-to-lisp ..) called on it and the value assigned to a variable and returned as multiple return values, so you have to wrap this in a multiple-value-bind. The values are returned in the same order as the bindings so for example if bindings were the following: ((cipher-text (make-string cipher-len))
(mac (make-string mac-len))
(eph (make-string eph-key-size)))
then the final values are returned as cipher-text mac eph.

Package

cl-megolm.

Source

helpers.lisp.

Macro: with-foreign-vector (binding &body body)

binding should look like either ((buf buf-len) <bytes>) or (buf <bytes>)

Package

cl-megolm.

Source

helpers.lisp.


6.2.3 Ordinary functions

Function: %make-olm-message (ciphertext message-type)
Package

cl-megolm.

Source

session.lisp.

Function: ed25519-verify (key message signature)
Package

cl-megolm.

Source

utility.lisp.

Function: gen-account ()
Package

cl-megolm.

Source

account.lisp.

Function: gen-inbound-group-session ()
Package

cl-megolm.

Source

group-session.lisp.

Function: gen-outbound-group-session ()
Package

cl-megolm.

Source

group-session.lisp.

Function: gen-pk-decryption ()

Generates a new pk-decryption object. Creates a pointer that has to be freed later

Package

cl-megolm.

Source

pk.lisp.

Function: gen-utility ()
Package

cl-megolm.

Source

utility.lisp.

Function: make-pk-message (ephemeral-key mac ciphertext)
Package

cl-megolm.

Source

pk.lisp.

Function: mbyte-array (len)
Package

cl-megolm.

Source

helpers.lisp.

Function: plist-key-val (plist key)

Gets the value associated with KEY in PLIST.

Package

cl-megolm.

Source

helpers.lisp.

Function: random-string (len)
Package

cl-megolm.

Source

helpers.lisp.

Function: string->condition (string)

takes in a string (STRING) and looks in *conditions* for an associated condition if one is found then that condition is signalled, if not ’condition-missing is signalled.

Package

cl-megolm.

Source

conditions.lisp.

Function: to-bool (n &optional true false)
Package

cl-megolm.

Source

helpers.lisp.


6.2.4 Generic functions

Generic Function: %check-error (object to-check)

This generic is used to convert between the error strings and
lisp conditions. Firstly it will check if to-check is equal to (%olm:error) if so it calls the most applicable method for class

Package

cl-megolm.

Source

helpers.lisp.

Methods
Method: %check-error :around (object to-check)

Checks to make sure that TO-CHECK is actually in an error state before evaluating call-next-method

Method: %check-error ((utility utility) to-check)
Source

classes.lisp.

Method: %check-error ((outbound-group-session outbound-group-session) check-it)
Source

classes.lisp.

Method: %check-error ((inbound-group-session inbound-group-session) check-it)
Source

classes.lisp.

Method: %check-error ((session session) to-check)
Source

classes.lisp.

Method: %check-error ((sas sas) to-check)
Source

classes.lisp.

Method: %check-error ((pk-signing pk-signing) to-check)
Source

classes.lisp.

Method: %check-error ((pk-decryption pk-decryption) to-check)
Source

classes.lisp.

Method: %check-error ((pk-encryption pk-encryption) to-check)
Source

classes.lisp.

Method: %check-error ((account account) to-check)
Source

classes.lisp.

Generic Function: %ed25519-verify (utility key message signature)
Package

cl-megolm.

Methods
Method: %ed25519-verify ((utility utility) (key string) (message string) (signature string))
Source

utility.lisp.

Generic Function: %sha256 (utility message)
Package

cl-megolm.

Methods
Method: %sha256 ((utility utility) (message string))
Source

utility.lisp.

Generic Reader: message-type (condition)
Package

cl-megolm.

Methods
Reader Method: message-type ((%olm-message %olm-message))

automatically generated reader method

Source

classes.lisp.

Target Slot

message-type.

Reader Method: message-type ((condition invalid-message-type))
Source

conditions.lisp.

Target Slot

message-type.

Generic Writer: (setf message-type) (condition)
Package

cl-megolm.

Methods
Writer Method: (setf message-type) ((%olm-message %olm-message))

automatically generated writer method

Source

classes.lisp.

Target Slot

message-type.

Writer Method: (setf message-type) ((condition invalid-message-type))
Source

conditions.lisp.

Target Slot

message-type.

Generic Reader: object (condition)
Generic Writer: (setf object) (condition)
Package

cl-megolm.

Methods
Reader Method: object ((condition empty-ciphertext))
Writer Method: (setf object) ((condition empty-ciphertext))
Source

conditions.lisp.

Target Slot

object.

Generic Reader: pk-decrypt (object)
Package

cl-megolm.

Methods
Reader Method: pk-decrypt ((pk-decryption pk-decryption))

automatically generated reader method

Source

classes.lisp.

Target Slot

pk-decrypt.

Generic Writer: (setf pk-decrypt) (object)
Package

cl-megolm.

Methods
Writer Method: (setf pk-decrypt) ((pk-decryption pk-decryption))

automatically generated writer method

Source

classes.lisp.

Target Slot

pk-decrypt.

Generic Reader: pk-encrypt (object)
Package

cl-megolm.

Methods
Reader Method: pk-encrypt ((pk-encryption pk-encryption))

automatically generated reader method

Source

classes.lisp.

Target Slot

pk-encrypt.

Generic Writer: (setf pk-encrypt) (object)
Package

cl-megolm.

Methods
Writer Method: (setf pk-encrypt) ((pk-encryption pk-encryption))

automatically generated writer method

Source

classes.lisp.

Target Slot

pk-encrypt.

Generic Reader: pk-sign (object)
Package

cl-megolm.

Methods
Reader Method: pk-sign ((pk-signing pk-signing))

automatically generated reader method

Source

classes.lisp.

Target Slot

pk-sign.

Generic Writer: (setf pk-sign) (object)
Package

cl-megolm.

Methods
Writer Method: (setf pk-sign) ((pk-signing pk-signing))

automatically generated writer method

Source

classes.lisp.

Target Slot

pk-sign.

Generic Reader: searched-for (condition)
Generic Writer: (setf searched-for) (condition)
Package

cl-megolm.

Methods
Reader Method: searched-for ((condition condition-missing))
Writer Method: (setf searched-for) ((condition condition-missing))
Source

conditions.lisp.

Target Slot

searched-for.

Generic Reader: utility (object)
Package

cl-megolm.

Methods
Reader Method: utility ((utility utility))

automatically generated reader method

Source

classes.lisp.

Target Slot

utility.

Generic Writer: (setf utility) (object)
Package

cl-megolm.

Methods
Writer Method: (setf utility) ((utility utility))

automatically generated writer method

Source

classes.lisp.

Target Slot

utility.


6.2.5 Conditions

Condition: bad-session-key
Package

cl-megolm.

Source

conditions.lisp.

Direct superclasses

olm-error.

Condition: bad-signature
Package

cl-megolm.

Source

conditions.lisp.

Direct superclasses

olm-error.

Condition: empty-string
Package

cl-megolm.

Source

conditions.lisp.

Direct superclasses

olm-error.

Direct subclasses
Condition: unknown-pickle-version
Package

cl-megolm.

Source

conditions.lisp.

Direct superclasses

olm-error.


6.2.6 Classes

Class: %olm-message
Package

cl-megolm.

Source

classes.lisp.

Direct subclasses
Direct methods
Direct slots
Slot: ciphertext
Initargs

:ciphertext

Readers

ciphertext.

Writers

(setf ciphertext).

Slot: message-type
Initargs

:message-type

Readers

message-type.

Writers

(setf message-type).

Class: utility
Package

cl-megolm.

Source

classes.lisp.

Direct methods
Direct slots
Slot: utility
Initargs

:utility

Readers

utility.

Writers

(setf utility).


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   %   (  
A   C   D   E   F   G   I   M   O   P   R   S   T   U   W  
Index Entry  Section

%
%check-error: Private generic functions
%check-error: Private generic functions
%check-error: Private generic functions
%check-error: Private generic functions
%check-error: Private generic functions
%check-error: Private generic functions
%check-error: Private generic functions
%check-error: Private generic functions
%check-error: Private generic functions
%check-error: Private generic functions
%check-error: Private generic functions
%ed25519-verify: Private generic functions
%ed25519-verify: Private generic functions
%make-olm-message: Private ordinary functions
%pickle: Private macros
%sha256: Private generic functions
%sha256: Private generic functions

(
(setf account): Public generic functions
(setf account): Public generic functions
(setf ciphertext): Public generic functions
(setf ciphertext): Public generic functions
(setf ciphertext): Public generic functions
(setf ephemeral): Public generic functions
(setf ephemeral): Public generic functions
(setf id-key): Public generic functions
(setf id-key): Public generic functions
(setf mac): Public generic functions
(setf mac): Public generic functions
(setf message-type): Private generic functions
(setf message-type): Private generic functions
(setf message-type): Private generic functions
(setf object): Private generic functions
(setf object): Private generic functions
(setf one-time-key): Public generic functions
(setf one-time-key): Public generic functions
(setf pk-decrypt): Private generic functions
(setf pk-decrypt): Private generic functions
(setf pk-encrypt): Private generic functions
(setf pk-encrypt): Private generic functions
(setf pk-sign): Private generic functions
(setf pk-sign): Private generic functions
(setf public-key): Public generic functions
(setf public-key): Public generic functions
(setf public-key): Public generic functions
(setf sas): Public generic functions
(setf sas): Public generic functions
(setf searched-for): Private generic functions
(setf searched-for): Private generic functions
(setf session): Public generic functions
(setf session): Public generic functions
(setf utility): Private generic functions
(setf utility): Private generic functions

A
account: Public generic functions
account: Public generic functions

C
calculate-mac: Public generic functions
calculate-mac: Public generic functions
calculate-mac-long-kdf: Public generic functions
calculate-mac-long-kdf: Public generic functions
check-error: Public macros
ciphertext: Public generic functions
ciphertext: Public generic functions
ciphertext: Public generic functions
clean-after: Private macros
cleanup: Public generic functions
cleanup: Public generic functions
cleanup: Public generic functions
cleanup: Public generic functions
cleanup: Public generic functions
cleanup: Public generic functions
cleanup: Public generic functions
cleanup: Public generic functions
cleanup: Public generic functions
clear: Public generic functions
clear: Public generic functions
clear: Public generic functions
clear: Public generic functions
clear: Public generic functions
clear: Public generic functions
clear: Public generic functions
clear: Public generic functions
clear: Public generic functions
clear: Public generic functions
clear-session: Public generic functions
clear-session: Public generic functions
create-sas: Public generic functions
create-sas: Public generic functions
create-sas: Public generic functions
curve: Public generic functions
curve: Public generic functions

D
decrypt: Public generic functions
decrypt: Public generic functions
decrypt: Public generic functions
decrypt: Public generic functions
def-trivial-condition: Public macros

E
ed25519: Public generic functions
ed25519: Public generic functions
ed25519-verify: Private ordinary functions
ed25519-verify-p: Public ordinary functions
encrypt: Public generic functions
encrypt: Public generic functions
encrypt: Public generic functions
encrypt: Public generic functions
ephemeral: Public generic functions
ephemeral: Public generic functions
export-session: Public generic functions
export-session: Public generic functions

F
first-known-index: Public generic functions
first-known-index: Public generic functions
from-pickle: Public generic functions
from-pickle: Public generic functions
from-pickle: Public generic functions
from-pickle: Public generic functions
from-pickle: Public generic functions
from-pickle: Public generic functions
Function, %make-olm-message: Private ordinary functions
Function, ed25519-verify: Private ordinary functions
Function, ed25519-verify-p: Public ordinary functions
Function, gen-account: Private ordinary functions
Function, gen-inbound-group-session: Private ordinary functions
Function, gen-outbound-group-session: Private ordinary functions
Function, gen-pk-decryption: Private ordinary functions
Function, gen-utility: Private ordinary functions
Function, make-account: Public ordinary functions
Function, make-inbound-group-session: Public ordinary functions
Function, make-olm-message: Public ordinary functions
Function, make-olm-pre-key-message: Public ordinary functions
Function, make-outbound-group-session: Public ordinary functions
Function, make-pk-decryption: Public ordinary functions
Function, make-pk-encryption: Public ordinary functions
Function, make-pk-message: Private ordinary functions
Function, make-pk-signing: Public ordinary functions
Function, make-sas: Public ordinary functions
Function, make-session: Public ordinary functions
Function, mbyte-array: Private ordinary functions
Function, plist-key-val: Private ordinary functions
Function, random-string: Private ordinary functions
Function, sha256: Public ordinary functions
Function, string->condition: Private ordinary functions
Function, to-bool: Private ordinary functions
Function, to-bytes: Public ordinary functions

G
gen-account: Private ordinary functions
gen-inbound-group-session: Private ordinary functions
gen-outbound-group-session: Private ordinary functions
gen-pk-decryption: Private ordinary functions
gen-utility: Private ordinary functions
generate-bytes: Public generic functions
generate-bytes: Public generic functions
generate-one-time-keys: Public generic functions
generate-one-time-keys: Public generic functions
Generic Function, %check-error: Private generic functions
Generic Function, %ed25519-verify: Private generic functions
Generic Function, %sha256: Private generic functions
Generic Function, (setf account): Public generic functions
Generic Function, (setf ciphertext): Public generic functions
Generic Function, (setf ephemeral): Public generic functions
Generic Function, (setf id-key): Public generic functions
Generic Function, (setf mac): Public generic functions
Generic Function, (setf message-type): Private generic functions
Generic Function, (setf object): Private generic functions
Generic Function, (setf one-time-key): Public generic functions
Generic Function, (setf pk-decrypt): Private generic functions
Generic Function, (setf pk-encrypt): Private generic functions
Generic Function, (setf pk-sign): Private generic functions
Generic Function, (setf public-key): Public generic functions
Generic Function, (setf sas): Public generic functions
Generic Function, (setf searched-for): Private generic functions
Generic Function, (setf session): Public generic functions
Generic Function, (setf utility): Private generic functions
Generic Function, account: Public generic functions
Generic Function, calculate-mac: Public generic functions
Generic Function, calculate-mac-long-kdf: Public generic functions
Generic Function, ciphertext: Public generic functions
Generic Function, cleanup: Public generic functions
Generic Function, clear: Public generic functions
Generic Function, clear-session: Public generic functions
Generic Function, create-sas: Public generic functions
Generic Function, curve: Public generic functions
Generic Function, decrypt: Public generic functions
Generic Function, ed25519: Public generic functions
Generic Function, encrypt: Public generic functions
Generic Function, ephemeral: Public generic functions
Generic Function, export-session: Public generic functions
Generic Function, first-known-index: Public generic functions
Generic Function, from-pickle: Public generic functions
Generic Function, generate-bytes: Public generic functions
Generic Function, generate-one-time-keys: Public generic functions
Generic Function, id: Public generic functions
Generic Function, id-key: Public generic functions
Generic Function, identity-keys: Public generic functions
Generic Function, import-session: Public generic functions
Generic Function, mac: Public generic functions
Generic Function, make-inbound-session: Public generic functions
Generic Function, make-outbound-session: Public generic functions
Generic Function, mark-keys-as-published: Public generic functions
Generic Function, matchesp: Public generic functions
Generic Function, max-one-time-keys: Public generic functions
Generic Function, message-index: Public generic functions
Generic Function, message-type: Private generic functions
Generic Function, object: Private generic functions
Generic Function, one-time-key: Public generic functions
Generic Function, one-time-keys: Public generic functions
Generic Function, other-key-set-p: Public generic functions
Generic Function, pickle: Public generic functions
Generic Function, pk-decrypt: Private generic functions
Generic Function, pk-encrypt: Private generic functions
Generic Function, pk-sign: Private generic functions
Generic Function, pubkey: Public generic functions
Generic Function, public-key: Public generic functions
Generic Function, remove-one-time-keys: Public generic functions
Generic Function, sas: Public generic functions
Generic Function, searched-for: Private generic functions
Generic Function, session: Public generic functions
Generic Function, session-key: Public generic functions
Generic Function, set-their-public-key: Public generic functions
Generic Function, sign: Public generic functions
Generic Function, utility: Private generic functions

I
id: Public generic functions
id: Public generic functions
id: Public generic functions
id: Public generic functions
id-key: Public generic functions
id-key: Public generic functions
identity-keys: Public generic functions
identity-keys: Public generic functions
import-session: Public generic functions
import-session: Public generic functions

M
mac: Public generic functions
mac: Public generic functions
Macro, %pickle: Private macros
Macro, check-error: Public macros
Macro, clean-after: Private macros
Macro, def-trivial-condition: Public macros
Macro, pkv: Private macros
Macro, with-foreign-strings-as-lisp: Private macros
Macro, with-foreign-vector: Private macros
make-account: Public ordinary functions
make-inbound-group-session: Public ordinary functions
make-inbound-session: Public generic functions
make-inbound-session: Public generic functions
make-inbound-session: Public generic functions
make-inbound-session: Public generic functions
make-olm-message: Public ordinary functions
make-olm-pre-key-message: Public ordinary functions
make-outbound-group-session: Public ordinary functions
make-outbound-session: Public generic functions
make-outbound-session: Public generic functions
make-outbound-session: Public generic functions
make-pk-decryption: Public ordinary functions
make-pk-encryption: Public ordinary functions
make-pk-message: Private ordinary functions
make-pk-signing: Public ordinary functions
make-sas: Public ordinary functions
make-session: Public ordinary functions
mark-keys-as-published: Public generic functions
mark-keys-as-published: Public generic functions
matchesp: Public generic functions
matchesp: Public generic functions
matchesp: Public generic functions
matchesp: Public generic functions
matchesp: Public generic functions
matchesp: Public generic functions
max-one-time-keys: Public generic functions
max-one-time-keys: Public generic functions
mbyte-array: Private ordinary functions
message-index: Public generic functions
message-index: Public generic functions
message-type: Private generic functions
message-type: Private generic functions
message-type: Private generic functions
Method, %check-error: Private generic functions
Method, %check-error: Private generic functions
Method, %check-error: Private generic functions
Method, %check-error: Private generic functions
Method, %check-error: Private generic functions
Method, %check-error: Private generic functions
Method, %check-error: Private generic functions
Method, %check-error: Private generic functions
Method, %check-error: Private generic functions
Method, %check-error: Private generic functions
Method, %ed25519-verify: Private generic functions
Method, %sha256: Private generic functions
Method, (setf account): Public generic functions
Method, (setf ciphertext): Public generic functions
Method, (setf ciphertext): Public generic functions
Method, (setf ephemeral): Public generic functions
Method, (setf id-key): Public generic functions
Method, (setf mac): Public generic functions
Method, (setf message-type): Private generic functions
Method, (setf message-type): Private generic functions
Method, (setf object): Private generic functions
Method, (setf one-time-key): Public generic functions
Method, (setf pk-decrypt): Private generic functions
Method, (setf pk-encrypt): Private generic functions
Method, (setf pk-sign): Private generic functions
Method, (setf public-key): Public generic functions
Method, (setf public-key): Public generic functions
Method, (setf sas): Public generic functions
Method, (setf searched-for): Private generic functions
Method, (setf session): Public generic functions
Method, (setf utility): Private generic functions
Method, account: Public generic functions
Method, calculate-mac: Public generic functions
Method, calculate-mac-long-kdf: Public generic functions
Method, ciphertext: Public generic functions
Method, ciphertext: Public generic functions
Method, cleanup: Public generic functions
Method, cleanup: Public generic functions
Method, cleanup: Public generic functions
Method, cleanup: Public generic functions
Method, cleanup: Public generic functions
Method, cleanup: Public generic functions
Method, cleanup: Public generic functions
Method, cleanup: Public generic functions
Method, clear: Public generic functions
Method, clear: Public generic functions
Method, clear: Public generic functions
Method, clear: Public generic functions
Method, clear: Public generic functions
Method, clear: Public generic functions
Method, clear: Public generic functions
Method, clear: Public generic functions
Method, clear: Public generic functions
Method, clear-session: Public generic functions
Method, create-sas: Public generic functions
Method, create-sas: Public generic functions
Method, curve: Public generic functions
Method, decrypt: Public generic functions
Method, decrypt: Public generic functions
Method, decrypt: Public generic functions
Method, ed25519: Public generic functions
Method, encrypt: Public generic functions
Method, encrypt: Public generic functions
Method, encrypt: Public generic functions
Method, ephemeral: Public generic functions
Method, export-session: Public generic functions
Method, first-known-index: Public generic functions
Method, from-pickle: Public generic functions
Method, from-pickle: Public generic functions
Method, from-pickle: Public generic functions
Method, from-pickle: Public generic functions
Method, from-pickle: Public generic functions
Method, generate-bytes: Public generic functions
Method, generate-one-time-keys: Public generic functions
Method, id: Public generic functions
Method, id: Public generic functions
Method, id: Public generic functions
Method, id-key: Public generic functions
Method, identity-keys: Public generic functions
Method, import-session: Public generic functions
Method, mac: Public generic functions
Method, make-inbound-session: Public generic functions
Method, make-inbound-session: Public generic functions
Method, make-inbound-session: Public generic functions
Method, make-outbound-session: Public generic functions
Method, make-outbound-session: Public generic functions
Method, mark-keys-as-published: Public generic functions
Method, matchesp: Public generic functions
Method, matchesp: Public generic functions
Method, matchesp: Public generic functions
Method, matchesp: Public generic functions
Method, matchesp: Public generic functions
Method, max-one-time-keys: Public generic functions
Method, message-index: Public generic functions
Method, message-type: Private generic functions
Method, message-type: Private generic functions
Method, object: Private generic functions
Method, one-time-key: Public generic functions
Method, one-time-keys: Public generic functions
Method, other-key-set-p: Public generic functions
Method, pickle: Public generic functions
Method, pickle: Public generic functions
Method, pickle: Public generic functions
Method, pickle: Public generic functions
Method, pickle: Public generic functions
Method, pk-decrypt: Private generic functions
Method, pk-encrypt: Private generic functions
Method, pk-sign: Private generic functions
Method, print-object: Public standalone methods
Method, pubkey: Public generic functions
Method, public-key: Public generic functions
Method, public-key: Public generic functions
Method, remove-one-time-keys: Public generic functions
Method, sas: Public generic functions
Method, searched-for: Private generic functions
Method, session: Public generic functions
Method, session-key: Public generic functions
Method, set-their-public-key: Public generic functions
Method, sign: Public generic functions
Method, sign: Public generic functions
Method, utility: Private generic functions

O
object: Private generic functions
object: Private generic functions
one-time-key: Public generic functions
one-time-key: Public generic functions
one-time-keys: Public generic functions
one-time-keys: Public generic functions
other-key-set-p: Public generic functions
other-key-set-p: Public generic functions

P
pickle: Public generic functions
pickle: Public generic functions
pickle: Public generic functions
pickle: Public generic functions
pickle: Public generic functions
pickle: Public generic functions
pk-decrypt: Private generic functions
pk-decrypt: Private generic functions
pk-encrypt: Private generic functions
pk-encrypt: Private generic functions
pk-sign: Private generic functions
pk-sign: Private generic functions
pkv: Private macros
plist-key-val: Private ordinary functions
print-object: Public standalone methods
pubkey: Public generic functions
pubkey: Public generic functions
public-key: Public generic functions
public-key: Public generic functions
public-key: Public generic functions

R
random-string: Private ordinary functions
remove-one-time-keys: Public generic functions
remove-one-time-keys: Public generic functions

S
sas: Public generic functions
sas: Public generic functions
searched-for: Private generic functions
searched-for: Private generic functions
session: Public generic functions
session: Public generic functions
session-key: Public generic functions
session-key: Public generic functions
set-their-public-key: Public generic functions
set-their-public-key: Public generic functions
sha256: Public ordinary functions
sign: Public generic functions
sign: Public generic functions
sign: Public generic functions
string->condition: Private ordinary functions

T
to-bool: Private ordinary functions
to-bytes: Public ordinary functions

U
utility: Private generic functions
utility: Private generic functions

W
with-foreign-strings-as-lisp: Private macros
with-foreign-vector: Private macros


A.3 Variables

Jump to:   *  
A   C   E   I   M   O   P   S   U  
Index Entry  Section

*
*conditions*: Private special variables

A
account: Public classes

C
ciphertext: Public classes
ciphertext: Private classes

E
ephermal: Public classes

I
id-key: Public conditions

M
mac: Public classes
message-type: Public conditions
message-type: Public classes
message-type: Public classes
message-type: Private classes

O
object: Public conditions
one-time-key: Public conditions

P
pk-decrypt: Public classes
pk-encrypt: Public classes
pk-sign: Public classes
public-key: Public classes
public-key: Public classes

S
sas: Public classes
searched-for: Public conditions
session: Public classes
Slot, account: Public classes
Slot, ciphertext: Public classes
Slot, ciphertext: Private classes
Slot, ephermal: Public classes
Slot, id-key: Public conditions
Slot, mac: Public classes
Slot, message-type: Public conditions
Slot, message-type: Public classes
Slot, message-type: Public classes
Slot, message-type: Private classes
Slot, object: Public conditions
Slot, one-time-key: Public conditions
Slot, pk-decrypt: Public classes
Slot, pk-encrypt: Public classes
Slot, pk-sign: Public classes
Slot, public-key: Public classes
Slot, public-key: Public classes
Slot, sas: Public classes
Slot, searched-for: Public conditions
Slot, session: Public classes
Slot, utility: Private classes
Special Variable, *conditions*: Private special variables

U
utility: Private classes


A.4 Data types

Jump to:   %  
A   B   C   E   F   G   H   I   M   N   O   P   S   U  
Index Entry  Section

%
%olm-message: Private classes

A
account: Public classes
account.lisp: The cl-megolm/src/account․lisp file

B
bad-account-key: Public conditions
bad-message-format: Public conditions
bad-message-key-id: Public conditions
bad-message-mac: Public conditions
bad-message-version: Public conditions
bad-session-key: Private conditions
bad-signature: Private conditions

C
cl-megolm: The cl-megolm system
cl-megolm: The cl-megolm package
cl-megolm.asd: The cl-megolm/cl-megolm․asd file
Class, %olm-message: Private classes
Class, account: Public classes
Class, inbound-group-session: Public classes
Class, inbound-session: Public classes
Class, olm-message: Public classes
Class, olm-message-pre-key: Public classes
Class, outbound-group-session: Public classes
Class, outbound-session: Public classes
Class, pk-decryption: Public classes
Class, pk-encryption: Public classes
Class, pk-message: Public classes
Class, pk-signing: Public classes
Class, sas: Public classes
Class, session: Public classes
Class, utility: Private classes
classes.lisp: The cl-megolm/src/classes․lisp file
Condition, bad-account-key: Public conditions
Condition, bad-message-format: Public conditions
Condition, bad-message-key-id: Public conditions
Condition, bad-message-mac: Public conditions
Condition, bad-message-version: Public conditions
Condition, bad-session-key: Private conditions
Condition, bad-signature: Private conditions
Condition, condition-missing: Public conditions
Condition, empty-ciphertext: Public conditions
Condition, empty-id-key: Public conditions
Condition, empty-one-time-key: Public conditions
Condition, empty-string: Private conditions
Condition, invalid-base64: Public conditions
Condition, invalid-message-type: Public conditions
Condition, not-enough-random: Public conditions
Condition, olm-bad-message-format: Public conditions
Condition, olm-bad-message-mac: Public conditions
Condition, olm-bad-message-version: Public conditions
Condition, olm-error: Public conditions
Condition, olm-group-session-error: Public conditions
Condition, olm-input-buffer-too-small: Public conditions
Condition, olm-invalid-base64: Public conditions
Condition, olm-sas-their-key-not-set: Public conditions
Condition, olm-unknown-message-index: Public conditions
Condition, output-buffer-too-small: Public conditions
Condition, unknown-message-index: Public conditions
Condition, unknown-pickle-version: Private conditions
condition-missing: Public conditions
conditions.lisp: The cl-megolm/src/conditions․lisp file

E
empty-ciphertext: Public conditions
empty-id-key: Public conditions
empty-one-time-key: Public conditions
empty-string: Private conditions

F
File, account.lisp: The cl-megolm/src/account․lisp file
File, cl-megolm.asd: The cl-megolm/cl-megolm․asd file
File, classes.lisp: The cl-megolm/src/classes․lisp file
File, conditions.lisp: The cl-megolm/src/conditions․lisp file
File, group-session.lisp: The cl-megolm/src/group-session․lisp file
File, helpers.lisp: The cl-megolm/src/helpers․lisp file
File, olm.lisp: The cl-megolm/src/olm․lisp file
File, package.lisp: The cl-megolm/src/package․lisp file
File, pk.lisp: The cl-megolm/src/pk․lisp file
File, sas.lisp: The cl-megolm/src/sas․lisp file
File, session.lisp: The cl-megolm/src/session․lisp file
File, utility.lisp: The cl-megolm/src/utility․lisp file

G
group-session.lisp: The cl-megolm/src/group-session․lisp file

H
helpers.lisp: The cl-megolm/src/helpers․lisp file

I
inbound-group-session: Public classes
inbound-session: Public classes
invalid-base64: Public conditions
invalid-message-type: Public conditions

M
Module, src: The cl-megolm/src module

N
not-enough-random: Public conditions

O
olm-bad-message-format: Public conditions
olm-bad-message-mac: Public conditions
olm-bad-message-version: Public conditions
olm-error: Public conditions
olm-group-session-error: Public conditions
olm-input-buffer-too-small: Public conditions
olm-invalid-base64: Public conditions
olm-message: Public classes
olm-message-pre-key: Public classes
olm-sas-their-key-not-set: Public conditions
olm-unknown-message-index: Public conditions
olm.lisp: The cl-megolm/src/olm․lisp file
outbound-group-session: Public classes
outbound-session: Public classes
output-buffer-too-small: Public conditions

P
Package, cl-megolm: The cl-megolm package
package.lisp: The cl-megolm/src/package․lisp file
pk-decryption: Public classes
pk-encryption: Public classes
pk-message: Public classes
pk-signing: Public classes
pk.lisp: The cl-megolm/src/pk․lisp file

S
sas: Public classes
sas.lisp: The cl-megolm/src/sas․lisp file
session: Public classes
session.lisp: The cl-megolm/src/session․lisp file
src: The cl-megolm/src module
System, cl-megolm: The cl-megolm system

U
unknown-message-index: Public conditions
unknown-pickle-version: Private conditions
utility: Private classes
utility.lisp: The cl-megolm/src/utility․lisp file