nostr-double-ratchet
    Preparing search index...

    Interface SessionState

    State of a Double Ratchet session between two parties. Needed for persisting sessions.

    interface SessionState {
        ourCurrentNostrKey?: KeyPair;
        ourNextNostrKey: KeyPair;
        previousSendingChainMessageCount: number;
        receivingChainKey?: Uint8Array<ArrayBufferLike>;
        receivingChainMessageNumber: number;
        rootKey: Uint8Array;
        sendingChainKey?: Uint8Array<ArrayBufferLike>;
        sendingChainMessageNumber: number;
        skippedKeys: {
            [pubKey: string]: {
                headerKeys: Uint8Array<ArrayBufferLike>[];
                messageKeys: { [msgIndex: number]: Uint8Array<ArrayBufferLike> };
            };
        };
        theirCurrentNostrPublicKey?: string;
        theirNextNostrPublicKey: string;
    }
    Index

    Properties

    ourCurrentNostrKey?: KeyPair

    Our current Nostr keypair used for this session

    ourNextNostrKey: KeyPair

    Our next Nostr keypair, used when ratcheting forward. It is advertised in messages we send.

    previousSendingChainMessageCount: number

    Number of messages sent in previous sending chain

    receivingChainKey?: Uint8Array<ArrayBufferLike>

    Key for decrypting incoming messages in current chain

    receivingChainMessageNumber: number

    Number of messages received in current receiving chain

    rootKey: Uint8Array

    Root key used to derive new sending / receiving chain keys

    sendingChainKey?: Uint8Array<ArrayBufferLike>

    Key for encrypting outgoing messages in current chain

    sendingChainMessageNumber: number

    Number of messages sent in current sending chain

    skippedKeys: {
        [pubKey: string]: {
            headerKeys: Uint8Array<ArrayBufferLike>[];
            messageKeys: { [msgIndex: number]: Uint8Array<ArrayBufferLike> };
        };
    }

    Cache of message & header keys for handling out-of-order messages

    theirCurrentNostrPublicKey?: string

    The other party's current Nostr public key

    theirNextNostrPublicKey: string

    The other party's next Nostr public key