ts-mls
Version:
[](https://github.com/LukaJCB/ts-mls/actions/workflows/ci.yml) [](https://badge.fury.io/js/ts-mls) [ • 2.33 kB
TypeScript
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 {};