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

79 lines (78 loc) 3.77 kB
import { Capabilities } from "./capabilities"; import { Decoder } from "./codec/tlsDecoder"; import { Encoder } from "./codec/tlsEncoder"; import { Credential } from "./credential"; import { Signature } from "./crypto/signature"; import { Extension } from "./extension"; import { LeafNodeSourceName } from "./leafNodeSource"; import { Lifetime } from "./lifetime"; export type LeafNodeData = { hpkePublicKey: Uint8Array; signaturePublicKey: Uint8Array; credential: Credential; capabilities: Capabilities; }; export declare const encodeLeafNodeData: Encoder<LeafNodeData>; export declare const decodeLeafNodeData: Decoder<LeafNodeData>; export type LeafNodeInfo = LeafNodeInfoKeyPackage | LeafNodeInfoUpdate | LeafNodeInfoCommit; export type LeafNodeInfoKeyPackage = { leafNodeSource: "key_package"; lifetime: Lifetime; }; export type LeafNodeInfoUpdate = { leafNodeSource: "update"; }; export type LeafNodeInfoCommit = { leafNodeSource: "commit"; parentHash: Uint8Array; }; export declare const encodeLeafNodeInfoLifetime: Encoder<LeafNodeInfoKeyPackage>; export declare const encodeLeafNodeInfoUpdate: Encoder<LeafNodeInfoUpdate>; export declare const encodeLeafNodeInfoCommit: Encoder<LeafNodeInfoCommit>; export declare const encodeLeafNodeInfo: Encoder<LeafNodeInfo>; export declare const decodeLeafNodeInfoLifetime: Decoder<LeafNodeInfoKeyPackage>; export declare const decodeLeafNodeInfoCommit: Decoder<LeafNodeInfoCommit>; export declare const decodeLeafNodeInfo: Decoder<LeafNodeInfo>; export type LeafNodeExtensions = { extensions: Extension[]; }; export declare const encodeLeafNodeExtensions: Encoder<LeafNodeExtensions>; export declare const decodeLeafNodeExtensions: Decoder<LeafNodeExtensions>; type GroupIdLeafIndex = { leafNodeSource: Exclude<LeafNodeSourceName, "key_package">; groupId: Uint8Array; leafIndex: number; }; export declare const encodeGroupIdLeafIndex: Encoder<GroupIdLeafIndex>; export type LeafNodeGroupInfo = GroupIdLeafIndex | { leafNodeSource: "key_package"; }; export declare const encodeLeafNodeGroupInfo: Encoder<LeafNodeGroupInfo>; export type LeafNodeTBS = LeafNodeData & LeafNodeInfo & LeafNodeExtensions & { info: LeafNodeGroupInfo; }; export type LeafNodeTBSCommit = LeafNodeData & LeafNodeInfoCommit & LeafNodeExtensions & { info: GroupIdLeafIndex; }; export type LeafNodeTBSKeyPackage = LeafNodeData & LeafNodeInfoKeyPackage & LeafNodeExtensions & { info: { leafNodeSource: "key_package"; }; }; export declare const encodeLeafNodeTBS: Encoder<LeafNodeTBS>; export type LeafNode = LeafNodeData & LeafNodeInfo & LeafNodeExtensions & { signature: Uint8Array; }; export declare const encodeLeafNode: Encoder<LeafNode>; export declare const decodeLeafNode: Decoder<LeafNode>; export type LeafNodeKeyPackage = LeafNode & LeafNodeInfoKeyPackage; export declare const decodeLeafNodeKeyPackage: Decoder<LeafNodeKeyPackage>; export type LeafNodeCommit = LeafNode & LeafNodeInfoCommit; export declare const decodeLeafNodeCommit: Decoder<LeafNodeCommit>; export type LeafNodeUpdate = LeafNode & LeafNodeInfoUpdate; export declare const decodeLeafNodeUpdate: Decoder<LeafNodeUpdate>; export declare function signLeafNodeCommit(tbs: LeafNodeTBSCommit, signaturePrivateKey: Uint8Array, sig: Signature): Promise<LeafNodeCommit>; export declare function signLeafNodeKeyPackage(tbs: LeafNodeTBSKeyPackage, signaturePrivateKey: Uint8Array, sig: Signature): Promise<LeafNodeKeyPackage>; export declare function verifyLeafNodeSignature(leaf: LeafNode, groupId: Uint8Array, leafIndex: number, sig: Signature): Promise<boolean>; export declare function verifyLeafNodeSignatureKeyPackage(leaf: LeafNodeKeyPackage, sig: Signature): Promise<boolean>; export {};