UNPKG

ts-mls

Version:

[![CI](https://github.com/LukaJCB/ts-mls/actions/workflows/ci.yml/badge.svg)](https://github.com/LukaJCB/ts-mls/actions/workflows/ci.yml) [![npm version](https://badge.fury.io/js/ts-mls.svg)](https://badge.fury.io/js/ts-mls) [![Coverage Status](https://co

57 lines (56 loc) 2.31 kB
import { Decoder } from "./codec/tlsDecoder"; import { Encoder } from "./codec/tlsEncoder"; import { ContentTypeName } from "./contentType"; import { CiphersuiteImpl } from "./crypto/ciphersuite"; declare const senderTypes: { readonly member: 1; readonly external: 2; readonly new_member_proposal: 3; readonly new_member_commit: 4; }; export type SenderTypeName = keyof typeof senderTypes; export type SenderTypeValue = (typeof senderTypes)[SenderTypeName]; export declare const encodeSenderType: Encoder<SenderTypeName>; export declare const decodeSenderType: Decoder<SenderTypeName>; export type Sender = SenderMember | SenderNonMember; export type SenderMember = { senderType: "member"; leafIndex: number; }; export type SenderNonMember = SenderExternal | SenderNewMemberProposal | SenderNewMemberCommit; export type SenderExternal = { senderType: "external"; senderIndex: number; }; export type SenderNewMemberProposal = { senderType: "new_member_proposal"; }; export type SenderNewMemberCommit = { senderType: "new_member_commit"; }; export declare const encodeSender: Encoder<Sender>; export declare const decodeSender: Decoder<Sender>; export declare function getSenderLeafNodeIndex(sender: Sender): number | undefined; export type SenderData = { leafIndex: number; generation: number; reuseGuard: ReuseGuard; }; export type ReuseGuard = Uint8Array & { length: 4; }; export declare const encodeReuseGuard: Encoder<ReuseGuard>; export declare const decodeReuseGuard: Decoder<ReuseGuard>; export declare const encodeSenderData: Encoder<SenderData>; export declare const decodeSenderData: Decoder<SenderData>; export type SenderDataAAD = { groupId: Uint8Array; epoch: bigint; contentType: ContentTypeName; }; export declare const encodeSenderDataAAD: Encoder<SenderDataAAD>; export declare const decodeSenderDataAAD: Decoder<SenderDataAAD>; export declare function sampleCiphertext(cs: CiphersuiteImpl, ciphertext: Uint8Array): Uint8Array; export declare function expandSenderDataKey(cs: CiphersuiteImpl, senderDataSecret: Uint8Array, ciphertext: Uint8Array): Promise<Uint8Array>; export declare function expandSenderDataNonce(cs: CiphersuiteImpl, senderDataSecret: Uint8Array, ciphertext: Uint8Array): Promise<Uint8Array>; export {};