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