UNPKG

tlsn-wasm

Version:

A core WebAssembly package for TLSNotary.

311 lines (284 loc) 10.4 kB
/* tslint:disable */ /* eslint-disable */ /** * Initializes the module. */ export function initialize(logging_config: LoggingConfig | null | undefined, thread_count: number): Promise<void>; /** * Builds a presentation. */ export function build_presentation(attestation: Attestation, secrets: Secrets, reveal: Reveal): Presentation; export function web_spawn_start_worker(worker: number): void; export function web_spawn_recover_spawner(spawner: number): Spawner; /** * Starts the thread spawner on a dedicated worker thread. */ export function startSpawner(): Promise<any>; export type Body = JsonValue; export type Method = "GET" | "POST" | "PUT" | "DELETE"; export interface HttpRequest { uri: string; method: Method; headers: Map<string, number[]>; body: Body | undefined; } export interface HttpResponse { status: number; headers: [string, number[]][]; } export type TlsVersion = "V1_2" | "V1_3"; export interface TranscriptLength { sent: number; recv: number; } export interface ConnectionInfo { time: number; version: TlsVersion; transcript_length: TranscriptLength; } export interface Transcript { sent: number[]; recv: number[]; } export interface PartialTranscript { sent: number[]; sent_authed: { start: number; end: number }[]; recv: number[]; recv_authed: { start: number; end: number }[]; } export interface Commit { sent: { start: number; end: number }[]; recv: { start: number; end: number }[]; } export interface Reveal { sent: { start: number; end: number }[]; recv: { start: number; end: number }[]; server_identity: boolean; } export type KeyType = "P256"; export interface PresentationOutput { attestation: Attestation; server_name: string | undefined; connection_info: ConnectionInfo; transcript: PartialTranscript | undefined; } export interface VerifierOutput { server_name: string | undefined; connection_info: ConnectionInfo; transcript: PartialTranscript | undefined; } export interface VerifyingKey { alg: number; data: number[]; } export type NetworkSetting = "Bandwidth" | "Latency"; export interface VerifierConfig { max_sent_data: number; max_recv_data: number; max_sent_records: number | undefined; max_recv_records_online: number | undefined; } export interface ProverConfig { server_name: string; max_sent_data: number; max_sent_records: number | undefined; max_recv_data_online: number | undefined; max_recv_data: number; max_recv_records_online: number | undefined; defer_decryption_from_start: boolean | undefined; network: NetworkSetting; client_auth: [number[][], number[]] | undefined; } export interface CrateLogFilter { level: LoggingLevel; name: string; } export interface LoggingConfig { level: LoggingLevel | undefined; crate_filters: CrateLogFilter[] | undefined; span_events: SpanEvent[] | undefined; } export type SpanEvent = "New" | "Close" | "Active"; export type LoggingLevel = "Trace" | "Debug" | "Info" | "Warn" | "Error"; export class Attestation { private constructor(); free(): void; verifying_key(): VerifyingKey; /** * Serializes to a byte array. */ serialize(): Uint8Array; /** * Deserializes from a byte array. */ static deserialize(bytes: Uint8Array): Attestation; } export class NotarizationOutput { private constructor(); free(): void; attestation: Attestation; secrets: Secrets; } export class Presentation { private constructor(); free(): void; /** * Returns the verifying key. */ verifying_key(): VerifyingKey; /** * Verifies the presentation. */ verify(): PresentationOutput; serialize(): Uint8Array; static deserialize(bytes: Uint8Array): Presentation; } export class Prover { free(): void; constructor(config: ProverConfig); /** * Set up the prover. * * This performs all MPC setup prior to establishing the connection to the * application server. */ setup(verifier_url: string): Promise<void>; /** * Send the HTTP request to the server. */ send_request(ws_proxy_url: string, request: HttpRequest): Promise<HttpResponse>; /** * Returns the transcript. */ transcript(): Transcript; /** * Runs the notarization protocol. */ notarize(commit: Commit): Promise<NotarizationOutput>; /** * Reveals data to the verifier and finalizes the protocol. */ reveal(reveal: Reveal): Promise<void>; } export class Secrets { private constructor(); free(): void; /** * Returns the transcript. */ transcript(): Transcript; /** * Serializes to a byte array. */ serialize(): Uint8Array; /** * Deserializes from a byte array. */ static deserialize(bytes: Uint8Array): Secrets; } /** * Global spawner which spawns closures into web workers. */ export class Spawner { private constructor(); free(): void; intoRaw(): number; /** * Runs the spawner. */ run(url: string): Promise<void>; } export class Verifier { free(): void; constructor(config: VerifierConfig); /** * Connect to the prover. */ connect(prover_url: string): Promise<void>; /** * Verifies the connection and finalizes the protocol. */ verify(): Promise<VerifierOutput>; } export class WorkerData { private constructor(); free(): void; } export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module; export interface InitOutput { readonly __wbg_prover_free: (a: number, b: number) => void; readonly prover_new: (a: any) => number; readonly prover_setup: (a: number, b: number, c: number) => any; readonly prover_send_request: (a: number, b: number, c: number, d: any) => any; readonly prover_transcript: (a: number) => [number, number, number]; readonly prover_notarize: (a: number, b: any) => any; readonly prover_reveal: (a: number, b: any) => any; readonly __wbg_attestation_free: (a: number, b: number) => void; readonly attestation_verifying_key: (a: number) => any; readonly attestation_serialize: (a: number) => [number, number]; readonly attestation_deserialize: (a: number, b: number) => [number, number, number]; readonly __wbg_secrets_free: (a: number, b: number) => void; readonly secrets_transcript: (a: number) => any; readonly secrets_serialize: (a: number) => [number, number]; readonly secrets_deserialize: (a: number, b: number) => [number, number, number]; readonly __wbg_presentation_free: (a: number, b: number) => void; readonly presentation_verifying_key: (a: number) => any; readonly presentation_verify: (a: number) => [number, number, number]; readonly presentation_serialize: (a: number) => [number, number]; readonly presentation_deserialize: (a: number, b: number) => [number, number, number]; readonly __wbg_notarizationoutput_free: (a: number, b: number) => void; readonly __wbg_get_notarizationoutput_attestation: (a: number) => number; readonly __wbg_set_notarizationoutput_attestation: (a: number, b: number) => void; readonly __wbg_get_notarizationoutput_secrets: (a: number) => number; readonly __wbg_set_notarizationoutput_secrets: (a: number, b: number) => void; readonly initialize: (a: number, b: number) => any; readonly build_presentation: (a: number, b: number, c: any) => [number, number, number]; readonly __wbg_verifier_free: (a: number, b: number) => void; readonly verifier_new: (a: any) => number; readonly verifier_connect: (a: number, b: number, c: number) => any; readonly verifier_verify: (a: number) => any; readonly __wbg_workerdata_free: (a: number, b: number) => void; readonly web_spawn_start_worker: (a: number) => void; readonly __wbg_spawner_free: (a: number, b: number) => void; readonly spawner_intoRaw: (a: number) => number; readonly spawner_run: (a: number, b: number, c: number) => any; readonly web_spawn_recover_spawner: (a: number) => number; readonly startSpawner: () => any; readonly ring_core_0_17_14__bn_mul_mont: (a: number, b: number, c: number, d: number, e: number, f: number) => void; readonly memory: WebAssembly.Memory; readonly __wbindgen_malloc: (a: number, b: number) => number; readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number; readonly __wbindgen_exn_store: (a: number) => void; readonly __externref_table_alloc: () => number; readonly __wbindgen_export_5: WebAssembly.Table; readonly __wbindgen_free: (a: number, b: number, c: number) => void; readonly __wbindgen_export_7: WebAssembly.Table; readonly __externref_table_dealloc: (a: number) => void; readonly _dyn_core__ops__function__FnMut_____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h36d577a13c442f93: (a: number, b: number) => void; readonly closure1094_externref_shim: (a: number, b: number, c: any) => void; readonly closure3738_externref_shim: (a: number, b: number, c: any) => void; readonly closure4289_externref_shim: (a: number, b: number, c: any, d: any) => void; readonly __wbindgen_thread_destroy: (a?: number, b?: number, c?: number) => void; readonly __wbindgen_start: (a: number) => void; } export type SyncInitInput = BufferSource | WebAssembly.Module; /** * Instantiates the given `module`, which can either be bytes or * a precompiled `WebAssembly.Module`. * * @param {{ module: SyncInitInput, memory?: WebAssembly.Memory, thread_stack_size?: number }} module - Passing `SyncInitInput` directly is deprecated. * @param {WebAssembly.Memory} memory - Deprecated. * * @returns {InitOutput} */ export function initSync(module: { module: SyncInitInput, memory?: WebAssembly.Memory, thread_stack_size?: number } | SyncInitInput, memory?: WebAssembly.Memory): InitOutput; /** * If `module_or_path` is {RequestInfo} or {URL}, makes a request and * for everything else, calls `WebAssembly.instantiate` directly. * * @param {{ module_or_path: InitInput | Promise<InitInput>, memory?: WebAssembly.Memory, thread_stack_size?: number }} module_or_path - Passing `InitInput` directly is deprecated. * @param {WebAssembly.Memory} memory - Deprecated. * * @returns {Promise<InitOutput>} */ export default function __wbg_init (module_or_path?: { module_or_path: InitInput | Promise<InitInput>, memory?: WebAssembly.Memory, thread_stack_size?: number } | InitInput | Promise<InitInput>, memory?: WebAssembly.Memory): Promise<InitOutput>;