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