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.33 kB
import { Decoder } from "./codec/tlsDecoder.js"; import { Encoder } from "./codec/tlsEncoder.js"; import { ContentTypeName } from "./contentType.js"; import { CiphersuiteImpl } from "./crypto/ciphersuite.js"; 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 interface SenderMember { senderType: "member"; leafIndex: number; } export type SenderNonMember = SenderExternal | SenderNewMemberProposal | SenderNewMemberCommit; export interface SenderExternal { senderType: "external"; senderIndex: number; } export interface SenderNewMemberProposal { senderType: "new_member_proposal"; } export interface SenderNewMemberCommit { senderType: "new_member_commit"; } export type Sender = SenderMember | SenderNonMember; export declare const encodeSender: Encoder<Sender>; export declare const decodeSender: Decoder<Sender>; export declare function getSenderLeafNodeIndex(sender: Sender): number | undefined; export interface 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 interface 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 {};